Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b663f34

Browse files
committed
Add a bunch of pseudo-types to replace the behavior formerly associated
with OPAQUE, as per recent pghackers discussion. I still want to do some more work on the 'cstring' pseudo-type, but I'm going to commit the bulk of the changes now before the tree starts shifting under me ...
1 parent 606c9b9 commit b663f34

File tree

126 files changed

+2002
-1202
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+2002
-1202
lines changed

contrib/btree_gist/btree_gist.sql.in

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ begin transaction;
44
SET search_path = public;
55

66
-- create type of int4 key
7-
CREATE FUNCTION int4key_in(opaque)
8-
RETURNS opaque
7+
CREATE FUNCTION int4key_in(cstring)
8+
RETURNS int4key
99
AS 'MODULE_PATHNAME'
1010
LANGUAGE 'c' with (isstrict);
1111

12-
CREATE FUNCTION int4key_out(opaque)
13-
RETURNS opaque
12+
CREATE FUNCTION int4key_out(int4key)
13+
RETURNS cstring
1414
AS 'MODULE_PATHNAME'
1515
LANGUAGE 'c' with (isstrict);
1616

@@ -29,19 +29,19 @@ output = int4key_out
2929
--
3030
--
3131
-- define the GiST support methods
32-
create function gint4_consistent(opaque,int4,int2) returns bool as 'MODULE_PATHNAME' language 'C';
32+
create function gint4_consistent(internal,int4,int2) returns bool as 'MODULE_PATHNAME' language 'C';
3333

34-
create function gint4_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
34+
create function gint4_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
3535

36-
create function btree_decompress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
36+
create function btree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
3737

38-
create function gint4_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict);
38+
create function gint4_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict);
3939

40-
create function gint4_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
40+
create function gint4_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C';
4141

42-
create function gint4_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C';
42+
create function gint4_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C';
4343

44-
create function gint4_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
44+
create function gint4_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C';
4545

4646
-- Create the operator class
4747
CREATE OPERATOR CLASS gist_int4_ops
@@ -51,13 +51,13 @@ CREATE OPERATOR CLASS gist_int4_ops
5151
OPERATOR 3 = ,
5252
OPERATOR 4 >= ,
5353
OPERATOR 5 > ,
54-
FUNCTION 1 gint4_consistent (opaque, int4, int2),
55-
FUNCTION 2 gint4_union (bytea, opaque),
56-
FUNCTION 3 gint4_compress (opaque),
57-
FUNCTION 4 btree_decompress (opaque),
58-
FUNCTION 5 gint4_penalty (opaque, opaque, opaque),
59-
FUNCTION 6 gint4_picksplit (opaque, opaque),
60-
FUNCTION 7 gint4_same (opaque, opaque, opaque),
54+
FUNCTION 1 gint4_consistent (internal, int4, int2),
55+
FUNCTION 2 gint4_union (bytea, internal),
56+
FUNCTION 3 gint4_compress (internal),
57+
FUNCTION 4 btree_decompress (internal),
58+
FUNCTION 5 gint4_penalty (internal, internal, internal),
59+
FUNCTION 6 gint4_picksplit (internal, internal),
60+
FUNCTION 7 gint4_same (internal, internal, internal),
6161
STORAGE int4key;
6262

6363

@@ -70,13 +70,13 @@ CREATE OPERATOR CLASS gist_int4_ops
7070
--
7171
-- create type of timestamp key
7272

73-
CREATE FUNCTION tskey_in(opaque)
74-
RETURNS opaque
73+
CREATE FUNCTION tskey_in(cstring)
74+
RETURNS tskey
7575
AS 'MODULE_PATHNAME'
7676
LANGUAGE 'c' with (isstrict);
7777

78-
CREATE FUNCTION tskey_out(opaque)
79-
RETURNS opaque
78+
CREATE FUNCTION tskey_out(tskey)
79+
RETURNS cstring
8080
AS 'MODULE_PATHNAME'
8181
LANGUAGE 'c' with (isstrict);
8282

@@ -86,17 +86,17 @@ input = tskey_in,
8686
output = tskey_out
8787
);
8888

89-
create function gts_consistent(opaque,timestamp,int2) returns bool as 'MODULE_PATHNAME' language 'C';
89+
create function gts_consistent(internal,timestamp,int2) returns bool as 'MODULE_PATHNAME' language 'C';
9090

91-
create function gts_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
91+
create function gts_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
9292

93-
create function gts_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict);
93+
create function gts_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict);
9494

95-
create function gts_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
95+
create function gts_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C';
9696

97-
create function gts_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C';
97+
create function gts_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C';
9898

99-
create function gts_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C';
99+
create function gts_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C';
100100

101101
-- Create the operator class
102102
CREATE OPERATOR CLASS gist_timestamp_ops
@@ -106,13 +106,13 @@ CREATE OPERATOR CLASS gist_timestamp_ops
106106
OPERATOR 3 = ,
107107
OPERATOR 4 >= ,
108108
OPERATOR 5 > ,
109-
FUNCTION 1 gts_consistent (opaque, timestamp, int2),
110-
FUNCTION 2 gts_union (bytea, opaque),
111-
FUNCTION 3 gts_compress (opaque),
112-
FUNCTION 4 btree_decompress (opaque),
113-
FUNCTION 5 gts_penalty (opaque, opaque, opaque),
114-
FUNCTION 6 gts_picksplit (opaque, opaque),
115-
FUNCTION 7 gts_same (opaque, opaque, opaque),
109+
FUNCTION 1 gts_consistent (internal, timestamp, int2),
110+
FUNCTION 2 gts_union (bytea, internal),
111+
FUNCTION 3 gts_compress (internal),
112+
FUNCTION 4 btree_decompress (internal),
113+
FUNCTION 5 gts_penalty (internal, internal, internal),
114+
FUNCTION 6 gts_picksplit (internal, internal),
115+
FUNCTION 7 gts_same (internal, internal, internal),
116116
STORAGE tskey;
117117

118118

contrib/chkpass/chkpass.sql.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
-- darcy@druid.net
55
-- http://www.druid.net/darcy/
66
--
7-
-- $Header: /cvsroot/pgsql/contrib/chkpass/chkpass.sql.in,v 1.1 2001/08/23 16:50:33 tgl Exp $
7+
-- $Header: /cvsroot/pgsql/contrib/chkpass/chkpass.sql.in,v 1.2 2002/08/22 00:01:38 tgl Exp $
88
--
99
-- best viewed with tabs set to 4
1010
--
@@ -13,13 +13,13 @@
1313
-- Input and output functions and the type itself:
1414
--
1515

16-
create function chkpass_in(opaque)
17-
returns opaque
16+
create function chkpass_in(cstring)
17+
returns chkpass
1818
as 'MODULE_PATHNAME'
1919
language 'c';
2020

21-
create function chkpass_out(opaque)
22-
returns opaque
21+
create function chkpass_out(chkpass)
22+
returns cstring
2323
as 'MODULE_PATHNAME'
2424
language 'c';
2525

contrib/cube/cube.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,6 @@ cube_in(char *str)
9999
return ((NDBOX *) result);
100100
}
101101

102-
/*
103-
* You might have noticed a slight inconsistency between the following
104-
* declaration and the SQL definition:
105-
* CREATE FUNCTION cube_out(opaque) RETURNS opaque ...
106-
* The reason is that the argument pass into cube_out is really just a
107-
* pointer. POSTGRES thinks all output functions are:
108-
* char *out_func(char *);
109-
*/
110102
char *
111103
cube_out(NDBOX *cube)
112104
{

contrib/cube/cube.sql.in

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ BEGIN TRANSACTION;
55
-- Adjust this setting to control where the objects get created.
66
SET search_path = public;
77

8-
CREATE FUNCTION cube_in(opaque)
9-
RETURNS opaque
8+
CREATE FUNCTION cube_in(cstring)
9+
RETURNS cube
1010
AS 'MODULE_PATHNAME'
1111
LANGUAGE 'c' WITH (isStrict);
1212

13-
CREATE FUNCTION cube_out(opaque)
14-
RETURNS opaque
13+
CREATE FUNCTION cube_out(cube)
14+
RETURNS cstring
1515
AS 'MODULE_PATHNAME'
1616
LANGUAGE 'c' WITH (isStrict);
1717

@@ -192,25 +192,25 @@ CREATE OPERATOR ~ (
192192

193193

194194
-- define the GiST support methods
195-
CREATE FUNCTION g_cube_consistent(opaque,cube,int4) RETURNS bool
195+
CREATE FUNCTION g_cube_consistent(internal,cube,int4) RETURNS bool
196196
AS 'MODULE_PATHNAME' LANGUAGE 'c';
197197

198-
CREATE FUNCTION g_cube_compress(opaque) RETURNS opaque
198+
CREATE FUNCTION g_cube_compress(internal) RETURNS internal
199199
AS 'MODULE_PATHNAME' LANGUAGE 'c';
200200

201-
CREATE FUNCTION g_cube_decompress(opaque) RETURNS opaque
201+
CREATE FUNCTION g_cube_decompress(internal) RETURNS internal
202202
AS 'MODULE_PATHNAME' LANGUAGE 'c';
203203

204-
CREATE FUNCTION g_cube_penalty(opaque,opaque,opaque) RETURNS opaque
204+
CREATE FUNCTION g_cube_penalty(internal,internal,internal) RETURNS internal
205205
AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict);
206206

207-
CREATE FUNCTION g_cube_picksplit(opaque, opaque) RETURNS opaque
207+
CREATE FUNCTION g_cube_picksplit(internal, internal) RETURNS internal
208208
AS 'MODULE_PATHNAME' LANGUAGE 'c';
209209

210-
CREATE FUNCTION g_cube_union(bytea, opaque) RETURNS cube
210+
CREATE FUNCTION g_cube_union(bytea, internal) RETURNS cube
211211
AS 'MODULE_PATHNAME' LANGUAGE 'c';
212212

213-
CREATE FUNCTION g_cube_same(cube, cube, opaque) RETURNS opaque
213+
CREATE FUNCTION g_cube_same(cube, cube, internal) RETURNS internal
214214
AS 'MODULE_PATHNAME' LANGUAGE 'c';
215215

216216

@@ -226,13 +226,13 @@ CREATE OPERATOR CLASS gist_cube_ops
226226
OPERATOR 6 = ,
227227
OPERATOR 7 @ ,
228228
OPERATOR 8 ~ ,
229-
FUNCTION 1 g_cube_consistent (opaque, cube, int4),
230-
FUNCTION 2 g_cube_union (bytea, opaque),
231-
FUNCTION 3 g_cube_compress (opaque),
232-
FUNCTION 4 g_cube_decompress (opaque),
233-
FUNCTION 5 g_cube_penalty (opaque, opaque, opaque),
234-
FUNCTION 6 g_cube_picksplit (opaque, opaque),
235-
FUNCTION 7 g_cube_same (cube, cube, opaque);
229+
FUNCTION 1 g_cube_consistent (internal, cube, int4),
230+
FUNCTION 2 g_cube_union (bytea, internal),
231+
FUNCTION 3 g_cube_compress (internal),
232+
FUNCTION 4 g_cube_decompress (internal),
233+
FUNCTION 5 g_cube_penalty (internal, internal, internal),
234+
FUNCTION 6 g_cube_picksplit (internal, internal),
235+
FUNCTION 7 g_cube_same (cube, cube, internal);
236236

237237

238238
END TRANSACTION;

contrib/dbmirror/MirrorSetup.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
CREATE FUNCTION "recordchange" () RETURNS opaque AS
2+
CREATE FUNCTION "recordchange" () RETURNS trigger AS
33
'/usr/local/pgsql/lib/pending.so', 'recordchange' LANGUAGE 'C';
44

55
CREATE TABLE "MirrorHost" (

contrib/fulltextindex/README.fti

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ sub-string will fit.
5858

5959
The create the function that contains the trigger::
6060

61-
create function fti() returns opaque as
61+
create function fti() returns trigger as
6262
'/path/to/fti.so' language 'C';
6363

6464
And finally define the trigger on the 'cds' table:

contrib/fulltextindex/fti.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* Example:
2222
*
2323
* -- Create the SQL function based on the compiled shared object
24-
* create function fti() returns opaque as
24+
* create function fti() returns trigger as
2525
* '/usr/local/pgsql/lib/contrib/fti.so' language 'C';
2626
*
2727
* -- Create the FTI table

contrib/fulltextindex/fti.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#
2828
# create index fti_idx on my_fti_table (string,id);
2929
#
30-
# create function fti() returns opaque as
30+
# create function fti() returns trigger as
3131
# '/path/to/fti/file/fti.so'
3232
# language 'C';
3333
#

contrib/fulltextindex/fti.sql.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
create function fti() returns opaque as
1+
create function fti() returns trigger as
22
'MODULE_PATHNAME'
33
language 'C';

0 commit comments

Comments
 (0)