diff options
Diffstat (limited to 'contrib')
29 files changed, 265 insertions, 275 deletions
diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in index dbb68c7c74..a60a7c2706 100644 --- a/contrib/btree_gist/btree_gist.sql.in +++ b/contrib/btree_gist/btree_gist.sql.in @@ -4,13 +4,13 @@ begin transaction; SET search_path = public; -- create type of int4 key -CREATE FUNCTION int4key_in(opaque) -RETURNS opaque +CREATE FUNCTION int4key_in(cstring) +RETURNS int4key AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION int4key_out(opaque) -RETURNS opaque +CREATE FUNCTION int4key_out(int4key) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -29,19 +29,19 @@ output = int4key_out -- -- -- define the GiST support methods -create function gint4_consistent(opaque,int4,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +create function gint4_consistent(internal,int4,int2) returns bool as 'MODULE_PATHNAME' language 'C'; -create function gint4_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gint4_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function btree_decompress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function btree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gint4_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict); +create function gint4_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); -create function gint4_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gint4_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gint4_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C'; +create function gint4_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; -create function gint4_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gint4_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -- Create the operator class CREATE OPERATOR CLASS gist_int4_ops @@ -51,13 +51,13 @@ CREATE OPERATOR CLASS gist_int4_ops OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gint4_consistent (opaque, int4, int2), - FUNCTION 2 gint4_union (bytea, opaque), - FUNCTION 3 gint4_compress (opaque), - FUNCTION 4 btree_decompress (opaque), - FUNCTION 5 gint4_penalty (opaque, opaque, opaque), - FUNCTION 6 gint4_picksplit (opaque, opaque), - FUNCTION 7 gint4_same (opaque, opaque, opaque), + FUNCTION 1 gint4_consistent (internal, int4, int2), + FUNCTION 2 gint4_union (bytea, internal), + FUNCTION 3 gint4_compress (internal), + FUNCTION 4 btree_decompress (internal), + FUNCTION 5 gint4_penalty (internal, internal, internal), + FUNCTION 6 gint4_picksplit (internal, internal), + FUNCTION 7 gint4_same (internal, internal, internal), STORAGE int4key; @@ -70,13 +70,13 @@ CREATE OPERATOR CLASS gist_int4_ops -- -- create type of timestamp key -CREATE FUNCTION tskey_in(opaque) -RETURNS opaque +CREATE FUNCTION tskey_in(cstring) +RETURNS tskey AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION tskey_out(opaque) -RETURNS opaque +CREATE FUNCTION tskey_out(tskey) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -86,17 +86,17 @@ input = tskey_in, output = tskey_out ); -create function gts_consistent(opaque,timestamp,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +create function gts_consistent(internal,timestamp,int2) returns bool as 'MODULE_PATHNAME' language 'C'; -create function gts_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gts_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gts_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict); +create function gts_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); -create function gts_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gts_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gts_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C'; +create function gts_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; -create function gts_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gts_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -- Create the operator class CREATE OPERATOR CLASS gist_timestamp_ops @@ -106,13 +106,13 @@ CREATE OPERATOR CLASS gist_timestamp_ops OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gts_consistent (opaque, timestamp, int2), - FUNCTION 2 gts_union (bytea, opaque), - FUNCTION 3 gts_compress (opaque), - FUNCTION 4 btree_decompress (opaque), - FUNCTION 5 gts_penalty (opaque, opaque, opaque), - FUNCTION 6 gts_picksplit (opaque, opaque), - FUNCTION 7 gts_same (opaque, opaque, opaque), + FUNCTION 1 gts_consistent (internal, timestamp, int2), + FUNCTION 2 gts_union (bytea, internal), + FUNCTION 3 gts_compress (internal), + FUNCTION 4 btree_decompress (internal), + FUNCTION 5 gts_penalty (internal, internal, internal), + FUNCTION 6 gts_picksplit (internal, internal), + FUNCTION 7 gts_same (internal, internal, internal), STORAGE tskey; diff --git a/contrib/chkpass/chkpass.sql.in b/contrib/chkpass/chkpass.sql.in index 72ad5e559c..3e331509d7 100644 --- a/contrib/chkpass/chkpass.sql.in +++ b/contrib/chkpass/chkpass.sql.in @@ -4,7 +4,7 @@ -- darcy@druid.net -- http://www.druid.net/darcy/ -- --- $Header: /cvsroot/pgsql/contrib/chkpass/chkpass.sql.in,v 1.1 2001/08/23 16:50:33 tgl Exp $ +-- $Header: /cvsroot/pgsql/contrib/chkpass/chkpass.sql.in,v 1.2 2002/08/22 00:01:38 tgl Exp $ -- -- best viewed with tabs set to 4 -- @@ -13,13 +13,13 @@ -- Input and output functions and the type itself: -- -create function chkpass_in(opaque) - returns opaque +create function chkpass_in(cstring) + returns chkpass as 'MODULE_PATHNAME' language 'c'; -create function chkpass_out(opaque) - returns opaque +create function chkpass_out(chkpass) + returns cstring as 'MODULE_PATHNAME' language 'c'; diff --git a/contrib/cube/cube.c b/contrib/cube/cube.c index b0b479016a..afd69029c9 100644 --- a/contrib/cube/cube.c +++ b/contrib/cube/cube.c @@ -99,14 +99,6 @@ cube_in(char *str) return ((NDBOX *) result); } -/* - * You might have noticed a slight inconsistency between the following - * declaration and the SQL definition: - * CREATE FUNCTION cube_out(opaque) RETURNS opaque ... - * The reason is that the argument pass into cube_out is really just a - * pointer. POSTGRES thinks all output functions are: - * char *out_func(char *); - */ char * cube_out(NDBOX *cube) { diff --git a/contrib/cube/cube.sql.in b/contrib/cube/cube.sql.in index 0637fbedfd..5889c687a5 100644 --- a/contrib/cube/cube.sql.in +++ b/contrib/cube/cube.sql.in @@ -5,13 +5,13 @@ BEGIN TRANSACTION; -- Adjust this setting to control where the objects get created. SET search_path = public; -CREATE FUNCTION cube_in(opaque) -RETURNS opaque +CREATE FUNCTION cube_in(cstring) +RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict); -CREATE FUNCTION cube_out(opaque) -RETURNS opaque +CREATE FUNCTION cube_out(cube) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict); @@ -192,25 +192,25 @@ CREATE OPERATOR ~ ( -- define the GiST support methods -CREATE FUNCTION g_cube_consistent(opaque,cube,int4) RETURNS bool +CREATE FUNCTION g_cube_consistent(internal,cube,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_compress(opaque) RETURNS opaque +CREATE FUNCTION g_cube_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_decompress(opaque) RETURNS opaque +CREATE FUNCTION g_cube_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_penalty(opaque,opaque,opaque) RETURNS opaque +CREATE FUNCTION g_cube_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION g_cube_picksplit(opaque, opaque) RETURNS opaque +CREATE FUNCTION g_cube_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_union(bytea, opaque) RETURNS cube +CREATE FUNCTION g_cube_union(bytea, internal) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_same(cube, cube, opaque) RETURNS opaque +CREATE FUNCTION g_cube_same(cube, cube, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; @@ -226,13 +226,13 @@ CREATE OPERATOR CLASS gist_cube_ops OPERATOR 6 = , OPERATOR 7 @ , OPERATOR 8 ~ , - FUNCTION 1 g_cube_consistent (opaque, cube, int4), - FUNCTION 2 g_cube_union (bytea, opaque), - FUNCTION 3 g_cube_compress (opaque), - FUNCTION 4 g_cube_decompress (opaque), - FUNCTION 5 g_cube_penalty (opaque, opaque, opaque), - FUNCTION 6 g_cube_picksplit (opaque, opaque), - FUNCTION 7 g_cube_same (cube, cube, opaque); + FUNCTION 1 g_cube_consistent (internal, cube, int4), + FUNCTION 2 g_cube_union (bytea, internal), + FUNCTION 3 g_cube_compress (internal), + FUNCTION 4 g_cube_decompress (internal), + FUNCTION 5 g_cube_penalty (internal, internal, internal), + FUNCTION 6 g_cube_picksplit (internal, internal), + FUNCTION 7 g_cube_same (cube, cube, internal); END TRANSACTION; diff --git a/contrib/dbmirror/MirrorSetup.sql b/contrib/dbmirror/MirrorSetup.sql index b28b8e4104..8e03264165 100644 --- a/contrib/dbmirror/MirrorSetup.sql +++ b/contrib/dbmirror/MirrorSetup.sql @@ -1,5 +1,5 @@ -CREATE FUNCTION "recordchange" () RETURNS opaque AS +CREATE FUNCTION "recordchange" () RETURNS trigger AS '/usr/local/pgsql/lib/pending.so', 'recordchange' LANGUAGE 'C'; CREATE TABLE "MirrorHost" ( diff --git a/contrib/fulltextindex/README.fti b/contrib/fulltextindex/README.fti index 5c3d6362a6..cdf15c24da 100644 --- a/contrib/fulltextindex/README.fti +++ b/contrib/fulltextindex/README.fti @@ -58,7 +58,7 @@ sub-string will fit. The create the function that contains the trigger:: - create function fti() returns opaque as + create function fti() returns trigger as '/path/to/fti.so' language 'C'; And finally define the trigger on the 'cds' table: diff --git a/contrib/fulltextindex/fti.c b/contrib/fulltextindex/fti.c index 8050f2a9d7..0c4cceb3f5 100644 --- a/contrib/fulltextindex/fti.c +++ b/contrib/fulltextindex/fti.c @@ -21,7 +21,7 @@ * Example: * * -- Create the SQL function based on the compiled shared object - * create function fti() returns opaque as + * create function fti() returns trigger as * '/usr/local/pgsql/lib/contrib/fti.so' language 'C'; * * -- Create the FTI table diff --git a/contrib/fulltextindex/fti.pl b/contrib/fulltextindex/fti.pl index 58080a5425..5b660ed815 100644 --- a/contrib/fulltextindex/fti.pl +++ b/contrib/fulltextindex/fti.pl @@ -27,7 +27,7 @@ # # create index fti_idx on my_fti_table (string,id); # -# create function fti() returns opaque as +# create function fti() returns trigger as # '/path/to/fti/file/fti.so' # language 'C'; # diff --git a/contrib/fulltextindex/fti.sql.in b/contrib/fulltextindex/fti.sql.in index e0da2353c5..c8e705b90f 100644 --- a/contrib/fulltextindex/fti.sql.in +++ b/contrib/fulltextindex/fti.sql.in @@ -1,3 +1,3 @@ -create function fti() returns opaque as +create function fti() returns trigger as 'MODULE_PATHNAME' language 'C';
\ No newline at end of file diff --git a/contrib/intarray/_int.sql.in b/contrib/intarray/_int.sql.in index fe1a6f9d38..7f9a8082ca 100644 --- a/contrib/intarray/_int.sql.in +++ b/contrib/intarray/_int.sql.in @@ -7,13 +7,13 @@ BEGIN TRANSACTION; SET search_path = public; -- Query type -CREATE FUNCTION bqarr_in(opaque) -RETURNS opaque +CREATE FUNCTION bqarr_in(cstring) +RETURNS query_int AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION bqarr_out(opaque) -RETURNS opaque +CREATE FUNCTION bqarr_out(query_int) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -200,25 +200,25 @@ CREATE OPERATOR & ( -------------- -- define the GiST support methods -CREATE FUNCTION g_int_consistent(opaque,_int4,int4) RETURNS bool +CREATE FUNCTION g_int_consistent(internal,_int4,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_int_compress(opaque) RETURNS opaque +CREATE FUNCTION g_int_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_int_decompress(opaque) RETURNS opaque +CREATE FUNCTION g_int_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_int_penalty(opaque,opaque,opaque) RETURNS opaque +CREATE FUNCTION g_int_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION g_int_picksplit(opaque, opaque) RETURNS opaque +CREATE FUNCTION g_int_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_int_union(bytea, opaque) RETURNS _int4 +CREATE FUNCTION g_int_union(bytea, internal) RETURNS _int4 AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_int_same(_int4, _int4, opaque) RETURNS opaque +CREATE FUNCTION g_int_same(_int4, _int4, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; @@ -231,38 +231,38 @@ CREATE OPERATOR CLASS gist__int_ops OPERATOR 7 @, OPERATOR 8 ~, OPERATOR 20 @@ (_int4, query_int), - FUNCTION 1 g_int_consistent (opaque, _int4, int4), - FUNCTION 2 g_int_union (bytea, opaque), - FUNCTION 3 g_int_compress (opaque), - FUNCTION 4 g_int_decompress (opaque), - FUNCTION 5 g_int_penalty (opaque, opaque, opaque), - FUNCTION 6 g_int_picksplit (opaque, opaque), - FUNCTION 7 g_int_same (_int4, _int4, opaque); + FUNCTION 1 g_int_consistent (internal, _int4, int4), + FUNCTION 2 g_int_union (bytea, internal), + FUNCTION 3 g_int_compress (internal), + FUNCTION 4 g_int_decompress (internal), + FUNCTION 5 g_int_penalty (internal, internal, internal), + FUNCTION 6 g_int_picksplit (internal, internal), + FUNCTION 7 g_int_same (_int4, _int4, internal); --------------------------------------------- -- intbig --------------------------------------------- -- define the GiST support methods -CREATE FUNCTION g_intbig_consistent(opaque,_int4,int4) RETURNS bool +CREATE FUNCTION g_intbig_consistent(internal,_int4,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_intbig_compress(opaque) RETURNS opaque +CREATE FUNCTION g_intbig_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_intbig_decompress(opaque) RETURNS opaque +CREATE FUNCTION g_intbig_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_intbig_penalty(opaque,opaque,opaque) RETURNS opaque +CREATE FUNCTION g_intbig_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION g_intbig_picksplit(opaque, opaque) RETURNS opaque +CREATE FUNCTION g_intbig_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_intbig_union(bytea, opaque) RETURNS _int4 +CREATE FUNCTION g_intbig_union(bytea, internal) RETURNS _int4 AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_intbig_same(_int4, _int4, opaque) RETURNS opaque +CREATE FUNCTION g_intbig_same(_int4, _int4, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -- register the opclass for indexing (not as default) @@ -274,12 +274,12 @@ CREATE OPERATOR CLASS gist__intbig_ops OPERATOR 7 @ RECHECK, OPERATOR 8 ~ RECHECK, OPERATOR 20 @@ (_int4, query_int) RECHECK, - FUNCTION 1 g_intbig_consistent (opaque, _int4, int4), - FUNCTION 2 g_intbig_union (bytea, opaque), - FUNCTION 3 g_intbig_compress (opaque), - FUNCTION 4 g_intbig_decompress (opaque), - FUNCTION 5 g_intbig_penalty (opaque, opaque, opaque), - FUNCTION 6 g_intbig_picksplit (opaque, opaque), - FUNCTION 7 g_intbig_same (_int4, _int4, opaque); + FUNCTION 1 g_intbig_consistent (internal, _int4, int4), + FUNCTION 2 g_intbig_union (bytea, internal), + FUNCTION 3 g_intbig_compress (internal), + FUNCTION 4 g_intbig_decompress (internal), + FUNCTION 5 g_intbig_penalty (internal, internal, internal), + FUNCTION 6 g_intbig_picksplit (internal, internal), + FUNCTION 7 g_intbig_same (_int4, _int4, internal); END TRANSACTION; diff --git a/contrib/isbn_issn/isbn_issn.sql.in b/contrib/isbn_issn/isbn_issn.sql.in index 3a47621c2c..64767f8502 100644 --- a/contrib/isbn_issn/isbn_issn.sql.in +++ b/contrib/isbn_issn/isbn_issn.sql.in @@ -1,7 +1,7 @@ -- -- PostgreSQL code for ISSNs. -- --- $Id: isbn_issn.sql.in,v 1.5 2002/07/30 17:34:37 tgl Exp $ +-- $Id: isbn_issn.sql.in,v 1.6 2002/08/22 00:01:39 tgl Exp $ -- -- Adjust this setting to control where the objects get created. @@ -12,13 +12,13 @@ SET search_path = public; -- Input and output functions and the type itself: -- -create function issn_in(opaque) - returns opaque +create function issn_in(cstring) + returns issn as 'MODULE_PATHNAME' language 'c'; -create function issn_out(opaque) - returns opaque +create function issn_out(issn) + returns cstring as 'MODULE_PATHNAME' language 'c'; @@ -123,19 +123,19 @@ create operator <> ( -- -- PostgreSQL code for ISBNs. -- --- $Id: isbn_issn.sql.in,v 1.5 2002/07/30 17:34:37 tgl Exp $ +-- $Id: isbn_issn.sql.in,v 1.6 2002/08/22 00:01:39 tgl Exp $ -- -- -- Input and output functions and the type itself: -- -create function isbn_in(opaque) - returns opaque +create function isbn_in(cstring) + returns isbn as 'MODULE_PATHNAME' language 'c'; -create function isbn_out(opaque) - returns opaque +create function isbn_out(isbn) + returns cstring as 'MODULE_PATHNAME' language 'c'; diff --git a/contrib/lo/lo.sql.in b/contrib/lo/lo.sql.in index f9fed597fd..e60b46ce09 100644 --- a/contrib/lo/lo.sql.in +++ b/contrib/lo/lo.sql.in @@ -1,21 +1,21 @@ -- -- PostgreSQL code for LargeObjects -- --- $Id: lo.sql.in,v 1.6 2000/11/21 21:51:58 tgl Exp $ +-- $Id: lo.sql.in,v 1.7 2002/08/22 00:01:39 tgl Exp $ -- -- -- Create the data type -- -- used by the lo type, it takes an oid and returns an lo object -create function lo_in(opaque) - returns opaque +create function lo_in(cstring) + returns lo as 'MODULE_PATHNAME' language 'c'; -- used by the lo type, it returns the oid of the object -create function lo_out(opaque) - returns opaque +create function lo_out(lo) + returns cstring as 'MODULE_PATHNAME' language 'c'; @@ -51,6 +51,6 @@ create function lo(oid) -- This is used in triggers create function lo_manage() - returns opaque + returns trigger as 'MODULE_PATHNAME' language 'c'; diff --git a/contrib/lo/lo_drop.sql b/contrib/lo/lo_drop.sql index 2472715a3d..4e4602836c 100644 --- a/contrib/lo/lo_drop.sql +++ b/contrib/lo/lo_drop.sql @@ -6,16 +6,10 @@ -- remove our test table drop table a; --- now drop any sql based functions associated with the lo type -drop function oid(lo); +-- now drop the type and associated C functions +drop type lo CASCADE; --- now drop the type -drop type lo; - --- as the type is gone, remove the C based functions -drop function lo_in(opaque); -drop function lo_out(opaque); -drop function lo(oid); +-- the trigger function has no dependency on the type, so drop separately drop function lo_manage(); -- the lo stuff is now removed from the system diff --git a/contrib/ltree/ltree.sql.in b/contrib/ltree/ltree.sql.in index 4e0f52ea1f..ad7f61472b 100644 --- a/contrib/ltree/ltree.sql.in +++ b/contrib/ltree/ltree.sql.in @@ -3,13 +3,13 @@ BEGIN; -- Adjust this setting to control where the objects get created. SET search_path = public; -CREATE FUNCTION ltree_in(opaque) -RETURNS opaque +CREATE FUNCTION ltree_in(cstring) +RETURNS ltree AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION ltree_out(opaque) -RETURNS opaque +CREATE FUNCTION ltree_out(ltree) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -232,13 +232,13 @@ CREATE OPERATOR CLASS ltree_ops --lquery type -CREATE FUNCTION lquery_in(opaque) -RETURNS opaque +CREATE FUNCTION lquery_in(cstring) +RETURNS lquery AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION lquery_out(opaque) -RETURNS opaque +CREATE FUNCTION lquery_out(lquery) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -284,13 +284,13 @@ CREATE OPERATOR ^~ ( RESTRICT = contsel, JOIN = contjoinsel ); -CREATE FUNCTION ltxtq_in(opaque) -RETURNS opaque +CREATE FUNCTION ltxtq_in(cstring) +RETURNS ltxtquery AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION ltxtq_out(opaque) -RETURNS opaque +CREATE FUNCTION ltxtq_out(ltxtquery) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -339,13 +339,13 @@ CREATE OPERATOR ^@ ( ); --GiST support for ltree -CREATE FUNCTION ltree_gist_in(opaque) -RETURNS opaque +CREATE FUNCTION ltree_gist_in(cstring) +RETURNS ltree_gist AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION ltree_gist_out(opaque) -RETURNS opaque +CREATE FUNCTION ltree_gist_out(ltree_gist) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -357,13 +357,13 @@ CREATE TYPE ltree_gist ( ); -create function ltree_consistent(opaque,opaque,int2) returns bool as 'MODULE_PATHNAME' language 'C'; -create function ltree_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -create function ltree_decompress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -create function ltree_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict); -create function ltree_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -create function ltree_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C'; -create function ltree_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function ltree_consistent(internal,internal,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +create function ltree_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +create function ltree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +create function ltree_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); +create function ltree_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +create function ltree_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; +create function ltree_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; CREATE OPERATOR CLASS gist_ltree_ops DEFAULT FOR TYPE ltree USING gist AS @@ -378,13 +378,13 @@ CREATE OPERATOR CLASS gist_ltree_ops OPERATOR 13 ~ (lquery, ltree) , OPERATOR 14 @ (ltree, ltxtquery) , OPERATOR 15 @ (ltxtquery, ltree) , - FUNCTION 1 ltree_consistent (opaque, opaque, int2), - FUNCTION 2 ltree_union (bytea, opaque), - FUNCTION 3 ltree_compress (opaque), - FUNCTION 4 ltree_decompress (opaque), - FUNCTION 5 ltree_penalty (opaque, opaque, opaque), - FUNCTION 6 ltree_picksplit (opaque, opaque), - FUNCTION 7 ltree_same (opaque, opaque, opaque), + FUNCTION 1 ltree_consistent (internal, internal, int2), + FUNCTION 2 ltree_union (bytea, internal), + FUNCTION 3 ltree_compress (internal), + FUNCTION 4 ltree_decompress (internal), + FUNCTION 5 ltree_penalty (internal, internal, internal), + FUNCTION 6 ltree_picksplit (internal, internal), + FUNCTION 7 ltree_same (internal, internal, internal), STORAGE ltree_gist; @@ -566,12 +566,12 @@ CREATE OPERATOR ?@ ( ); --GiST support for ltree[] -create function _ltree_consistent(opaque,opaque,int2) returns bool as 'MODULE_PATHNAME' language 'C'; -create function _ltree_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -create function _ltree_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with(isstrict); -create function _ltree_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; -create function _ltree_union(bytea, opaque) returns int4 as 'MODULE_PATHNAME' language 'C'; -create function _ltree_same(opaque, opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function _ltree_consistent(internal,internal,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +create function _ltree_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +create function _ltree_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); +create function _ltree_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +create function _ltree_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; +create function _ltree_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; CREATE OPERATOR CLASS gist__ltree_ops DEFAULT FOR TYPE _ltree USING gist AS @@ -581,13 +581,13 @@ CREATE OPERATOR CLASS gist__ltree_ops OPERATOR 13 ~ (lquery, _ltree) RECHECK , OPERATOR 14 @ (_ltree, ltxtquery) RECHECK , OPERATOR 15 @ (ltxtquery, _ltree) RECHECK , - FUNCTION 1 _ltree_consistent (opaque, opaque, int2), - FUNCTION 2 _ltree_union (bytea, opaque), - FUNCTION 3 _ltree_compress (opaque), - FUNCTION 4 ltree_decompress (opaque), - FUNCTION 5 _ltree_penalty (opaque, opaque, opaque), - FUNCTION 6 _ltree_picksplit (opaque, opaque), - FUNCTION 7 _ltree_same (opaque, opaque, opaque), + FUNCTION 1 _ltree_consistent (internal, internal, int2), + FUNCTION 2 _ltree_union (bytea, internal), + FUNCTION 3 _ltree_compress (internal), + FUNCTION 4 ltree_decompress (internal), + FUNCTION 5 _ltree_penalty (internal, internal, internal), + FUNCTION 6 _ltree_picksplit (internal, internal), + FUNCTION 7 _ltree_same (internal, internal, internal), STORAGE ltree_gist; diff --git a/contrib/mysql/my2pg.pl b/contrib/mysql/my2pg.pl index 9ceaca46f5..737fdd57cd 100755 --- a/contrib/mysql/my2pg.pl +++ b/contrib/mysql/my2pg.pl @@ -36,7 +36,7 @@ # SUCH DAMAGE. # # $My2pg: my2pg.pl,v 1.24 2001/12/06 19:32:20 fonin Exp $ -# $Id: my2pg.pl,v 1.8 2002/04/24 01:42:29 momjian Exp $ +# $Id: my2pg.pl,v 1.9 2002/08/22 00:01:39 tgl Exp $ # TODO: # + Handle SETs @@ -47,6 +47,12 @@ # # $Log: my2pg.pl,v $ +# Revision 1.9 2002/08/22 00:01:39 tgl +# 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 ... +# # Revision 1.8 2002/04/24 01:42:29 momjian # Update to my2pg 1.24. # @@ -193,7 +199,7 @@ $libtypename.='/libtypes.so'; # push header to libtypes.c open(LIBTYPES,">$libtypesource"); print LIBTYPES "/******************************************************"; -print LIBTYPES "\n * My2Pg \$Revision: 1.8 $ \translated dump"; +print LIBTYPES "\n * My2Pg \$Revision: 1.9 $ \translated dump"; print LIBTYPES "\n * User types definitions"; print LIBTYPES "\n ******************************************************/"; print LIBTYPES "\n\n#include <postgres.h>\n"; @@ -308,11 +314,11 @@ int2* $typename"."_in (char *str) { print LIBTYPES "\n * Types for table ".uc($table_name); print LIBTYPES "\n */\n"; - $types.="\nCREATE FUNCTION $typename"."_in (opaque) + $types.="\nCREATE FUNCTION $typename"."_in (cstring) RETURNS $typename AS '$libtypename' LANGUAGE 'c' - WITH (ISCACHABLE);\n"; + WITH (ISSTRICT, ISCACHABLE);\n"; # creating output function my $func_out=" @@ -362,11 +368,11 @@ bool $typename"."_ge(int2* a, int2* b) { return (*a>=*b); }\n"; - $types.="\nCREATE FUNCTION $typename"."_out (opaque) - RETURNS opaque + $types.="\nCREATE FUNCTION $typename"."_out ($typename) + RETURNS cstring AS '$libtypename' LANGUAGE 'c' - WITH (ISCACHABLE);\n"; + WITH (ISSTRICT, ISCACHABLE);\n"; $types.="\nCREATE TYPE $typename ( internallength = 2, @@ -509,7 +515,7 @@ $typesize* $typename"."_in (char *str) { print LIBTYPES "\n * Types for table ".uc($table_name); print LIBTYPES "\n */\n"; - $types.="\nCREATE FUNCTION $typename"."_in (opaque) + $types.="\nCREATE FUNCTION $typename"."_in (cstring) RETURNS $typename AS '$libtypename' LANGUAGE 'c';\n"; @@ -561,8 +567,8 @@ $typesize find_in_set($typesize *a, $typesize *b) { \n"; - $types.="\nCREATE FUNCTION $typename"."_out (opaque) - RETURNS opaque + $types.="\nCREATE FUNCTION $typename"."_out ($typename) + RETURNS cstring AS '$libtypename' LANGUAGE 'c';\n"; @@ -725,7 +731,7 @@ close(LIBTYPES); open(MAKE,">Makefile"); print MAKE "# -# My2Pg \$Revision: 1.8 $ \translated dump +# My2Pg \$Revision: 1.9 $ \translated dump # Makefile # diff --git a/contrib/noupdate/noup.sql.in b/contrib/noupdate/noup.sql.in index abf92837d1..283876258b 100644 --- a/contrib/noupdate/noup.sql.in +++ b/contrib/noupdate/noup.sql.in @@ -1,6 +1,6 @@ DROP FUNCTION noup (); CREATE FUNCTION noup () - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/oracle/Ora2Pg.pm b/contrib/oracle/Ora2Pg.pm index e2dabfc75b..a11d836550 100644 --- a/contrib/oracle/Ora2Pg.pm +++ b/contrib/oracle/Ora2Pg.pm @@ -854,7 +854,7 @@ print STDERR "Add triggers definition...\n" if ($self->{debug}); # Escaping Single Quotes #$trig->[4] =~ s/'/''/sg; - $sql_output .= "CREATE FUNCTION pg_fct_\L$trig->[0]\E () RETURNS OPAQUE AS '\n$trig->[4]\n' LANGUAGE 'plpgsql'\n\n"; + $sql_output .= "CREATE FUNCTION pg_fct_\L$trig->[0]\E () RETURNS TRIGGER AS '\n$trig->[4]\n' LANGUAGE 'plpgsql'\n\n"; $sql_output .= "CREATE TRIGGER \L$trig->[0]\E\n\t$trig->[1] $trig->[2] ON \L$trig->[3]\E FOR EACH ROW\n\tEXECUTE PROCEDURE pg_fct_\L$trig->[0]\E();\n\n"; } } diff --git a/contrib/rserv/MasterInit.in b/contrib/rserv/MasterInit.in index 68854c743a..1bfe1c9776 100644 --- a/contrib/rserv/MasterInit.in +++ b/contrib/rserv/MasterInit.in @@ -89,7 +89,7 @@ RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); $result = $conn->exec("create sequence _rserv_sync_seq_"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); -$result = $conn->exec("CREATE FUNCTION _rserv_log_() RETURNS opaque" . +$result = $conn->exec("CREATE FUNCTION _rserv_log_() RETURNS trigger" . " AS '@MODULE_FILENAME@' LANGUAGE 'c'"); RollbackAndQuit($conn) if ($result->resultStatus ne PGRES_COMMAND_OK); diff --git a/contrib/rserv/master.sql.in b/contrib/rserv/master.sql.in index f8d37148b9..ed6d2045bc 100644 --- a/contrib/rserv/master.sql.in +++ b/contrib/rserv/master.sql.in @@ -79,7 +79,7 @@ create sequence _rserv_sync_seq_; drop function _rserv_log_(); CREATE FUNCTION _rserv_log_() - RETURNS opaque + RETURNS trigger AS '@MODULE_FILENAME@' LANGUAGE 'c' ; diff --git a/contrib/rtree_gist/rtree_gist.sql.in b/contrib/rtree_gist/rtree_gist.sql.in index df254404e1..b32671227f 100644 --- a/contrib/rtree_gist/rtree_gist.sql.in +++ b/contrib/rtree_gist/rtree_gist.sql.in @@ -11,19 +11,19 @@ SET search_path = public; -- -- -- define the GiST support methods -create function gbox_consistent(opaque,box,int4) returns bool as 'MODULE_PATHNAME' language 'C'; +create function gbox_consistent(internal,box,int4) returns bool as 'MODULE_PATHNAME' language 'C'; -create function gbox_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gbox_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function rtree_decompress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function rtree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gbox_penalty(opaque,opaque,opaque) returns opaque as 'MODULE_PATHNAME' language 'C' with (isstrict); +create function gbox_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with (isstrict); -create function gbox_picksplit(opaque, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gbox_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -create function gbox_union(bytea, opaque) returns box as 'MODULE_PATHNAME' language 'C'; +create function gbox_union(bytea, internal) returns box as 'MODULE_PATHNAME' language 'C'; -create function gbox_same(box, box, opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gbox_same(box, box, internal) returns internal as 'MODULE_PATHNAME' language 'C'; -- create the operator class CREATE OPERATOR CLASS gist_box_ops @@ -36,13 +36,13 @@ CREATE OPERATOR CLASS gist_box_ops OPERATOR 6 ~= , OPERATOR 7 ~ , OPERATOR 8 @ , - FUNCTION 1 gbox_consistent (opaque, box, int4), - FUNCTION 2 gbox_union (bytea, opaque), - FUNCTION 3 gbox_compress (opaque), - FUNCTION 4 rtree_decompress (opaque), - FUNCTION 5 gbox_penalty (opaque, opaque, opaque), - FUNCTION 6 gbox_picksplit (opaque, opaque), - FUNCTION 7 gbox_same (box, box, opaque); + FUNCTION 1 gbox_consistent (internal, box, int4), + FUNCTION 2 gbox_union (bytea, internal), + FUNCTION 3 gbox_compress (internal), + FUNCTION 4 rtree_decompress (internal), + FUNCTION 5 gbox_penalty (internal, internal, internal), + FUNCTION 6 gbox_picksplit (internal, internal), + FUNCTION 7 gbox_same (box, box, internal); -- @@ -53,9 +53,9 @@ CREATE OPERATOR CLASS gist_box_ops -- -- -- define the GiST support methods -create function gpoly_consistent(opaque,polygon,int4) returns bool as 'MODULE_PATHNAME' language 'C'; +create function gpoly_consistent(internal,polygon,int4) returns bool as 'MODULE_PATHNAME' language 'C'; -create function gpoly_compress(opaque) returns opaque as 'MODULE_PATHNAME' language 'C'; +create function gpoly_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; -- create the operator class CREATE OPERATOR CLASS gist_poly_ops @@ -68,13 +68,13 @@ CREATE OPERATOR CLASS gist_poly_ops OPERATOR 6 ~= RECHECK , OPERATOR 7 ~ RECHECK , OPERATOR 8 @ RECHECK , - FUNCTION 1 gpoly_consistent (opaque, polygon, int4), - FUNCTION 2 gbox_union (bytea, opaque), - FUNCTION 3 gpoly_compress (opaque), - FUNCTION 4 rtree_decompress (opaque), - FUNCTION 5 gbox_penalty (opaque, opaque, opaque), - FUNCTION 6 gbox_picksplit (opaque, opaque), - FUNCTION 7 gbox_same (box, box, opaque), + FUNCTION 1 gpoly_consistent (internal, polygon, int4), + FUNCTION 2 gbox_union (bytea, internal), + FUNCTION 3 gpoly_compress (internal), + FUNCTION 4 rtree_decompress (internal), + FUNCTION 5 gbox_penalty (internal, internal, internal), + FUNCTION 6 gbox_picksplit (internal, internal), + FUNCTION 7 gbox_same (box, box, internal), STORAGE box; diff --git a/contrib/seg/seg.c b/contrib/seg/seg.c index 097304b638..d7eea9cadd 100644 --- a/contrib/seg/seg.c +++ b/contrib/seg/seg.c @@ -114,14 +114,6 @@ seg_in(char *str) return (result); } -/* - * You might have noticed a slight inconsistency between the following - * declaration and the SQL definition: - * CREATE FUNCTION seg_out(opaque) RETURNS opaque ... - * The reason is that the argument passed into seg_out is really just a - * pointer. POSTGRES thinks all output functions are: - * char *out_func(char *); - */ char * seg_out(SEG * seg) { diff --git a/contrib/seg/seg.sql.in b/contrib/seg/seg.sql.in index 2da70ac682..cbeaa08d13 100644 --- a/contrib/seg/seg.sql.in +++ b/contrib/seg/seg.sql.in @@ -5,13 +5,13 @@ BEGIN TRANSACTION; -- Adjust this setting to control where the objects get created. SET search_path = public; -CREATE FUNCTION seg_in(opaque) -RETURNS opaque +CREATE FUNCTION seg_in(cstring) +RETURNS seg AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION seg_out(opaque) -RETURNS opaque +CREATE FUNCTION seg_out(seg) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c'; @@ -216,25 +216,25 @@ CREATE OPERATOR ~ ( -- define the GiST support methods -CREATE FUNCTION gseg_consistent(opaque,seg,int4) RETURNS bool +CREATE FUNCTION gseg_consistent(internal,seg,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gseg_compress(opaque) RETURNS opaque +CREATE FUNCTION gseg_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gseg_decompress(opaque) RETURNS opaque +CREATE FUNCTION gseg_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gseg_penalty(opaque,opaque,opaque) RETURNS opaque +CREATE FUNCTION gseg_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION gseg_picksplit(opaque, opaque) RETURNS opaque +CREATE FUNCTION gseg_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gseg_union(bytea, opaque) RETURNS seg +CREATE FUNCTION gseg_union(bytea, internal) RETURNS seg AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gseg_same(seg, seg, opaque) RETURNS opaque +CREATE FUNCTION gseg_same(seg, seg, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; @@ -250,13 +250,13 @@ CREATE OPERATOR CLASS gist_seg_ops OPERATOR 6 = , OPERATOR 7 @ , OPERATOR 8 ~ , - FUNCTION 1 gseg_consistent (opaque, seg, int4), - FUNCTION 2 gseg_union (bytea, opaque), - FUNCTION 3 gseg_compress (opaque), - FUNCTION 4 gseg_decompress (opaque), - FUNCTION 5 gseg_penalty (opaque, opaque, opaque), - FUNCTION 6 gseg_picksplit (opaque, opaque), - FUNCTION 7 gseg_same (seg, seg, opaque); + FUNCTION 1 gseg_consistent (internal, seg, int4), + FUNCTION 2 gseg_union (bytea, internal), + FUNCTION 3 gseg_compress (internal), + FUNCTION 4 gseg_decompress (internal), + FUNCTION 5 gseg_penalty (internal, internal, internal), + FUNCTION 6 gseg_picksplit (internal, internal), + FUNCTION 7 gseg_same (seg, seg, internal); END TRANSACTION; diff --git a/contrib/spi/autoinc.sql.in b/contrib/spi/autoinc.sql.in index 3676742943..172fdd74b2 100644 --- a/contrib/spi/autoinc.sql.in +++ b/contrib/spi/autoinc.sql.in @@ -1,6 +1,6 @@ DROP FUNCTION autoinc(); CREATE FUNCTION autoinc() - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/spi/insert_username.sql.in b/contrib/spi/insert_username.sql.in index 436fc88b73..b7689a4321 100644 --- a/contrib/spi/insert_username.sql.in +++ b/contrib/spi/insert_username.sql.in @@ -1,6 +1,6 @@ DROP FUNCTION insert_username(); CREATE FUNCTION insert_username() - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/spi/moddatetime.sql.in b/contrib/spi/moddatetime.sql.in index d497900ecf..07208787a6 100644 --- a/contrib/spi/moddatetime.sql.in +++ b/contrib/spi/moddatetime.sql.in @@ -1,6 +1,6 @@ DROP FUNCTION moddatetime(); CREATE FUNCTION moddatetime() - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/spi/refint.sql.in b/contrib/spi/refint.sql.in index d193319d9d..688d2abd44 100644 --- a/contrib/spi/refint.sql.in +++ b/contrib/spi/refint.sql.in @@ -2,11 +2,11 @@ DROP FUNCTION check_primary_key (); DROP FUNCTION check_foreign_key (); CREATE FUNCTION check_primary_key () - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; CREATE FUNCTION check_foreign_key () - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/spi/timetravel.sql.in b/contrib/spi/timetravel.sql.in index 46912abf6d..f519b93de1 100644 --- a/contrib/spi/timetravel.sql.in +++ b/contrib/spi/timetravel.sql.in @@ -2,7 +2,7 @@ DROP FUNCTION timetravel(); DROP FUNCTION set_timetravel(name, int4); CREATE FUNCTION timetravel() - RETURNS opaque + RETURNS trigger AS 'MODULE_PATHNAME' LANGUAGE 'C'; diff --git a/contrib/string/string_io.sql.in b/contrib/string/string_io.sql.in index 2a15e4b535..8718b812bb 100644 --- a/contrib/string/string_io.sql.in +++ b/contrib/string/string_io.sql.in @@ -9,21 +9,21 @@ -- Define the new output functions. -- -create function c_charout(opaque) returns int4 +create function c_charout(bpchar) returns cstring as 'MODULE_PATHNAME' language 'c'; -create function c_textout(opaque) returns int4 +create function c_textout(text) returns cstring as 'MODULE_PATHNAME' language 'c'; -create function c_varcharout(opaque) returns int4 +create function c_varcharout(varchar) returns cstring as 'MODULE_PATHNAME' language 'c'; -- This is not needed because escapes are handled by the parser -- --- create function c_textin(opaque) +-- create function c_textin(cstring) -- returns text -- as 'MODULE_PATHNAME' -- language 'c'; diff --git a/contrib/tsearch/tsearch.sql.in b/contrib/tsearch/tsearch.sql.in index 356427f2a4..a709a14758 100644 --- a/contrib/tsearch/tsearch.sql.in +++ b/contrib/tsearch/tsearch.sql.in @@ -5,13 +5,13 @@ SET search_path = public; -- TXTIDX type -CREATE FUNCTION txtidx_in(opaque) -RETURNS opaque +CREATE FUNCTION txtidx_in(cstring) +RETURNS txtidx AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION txtidx_out(opaque) -RETURNS opaque +CREATE FUNCTION txtidx_out(txtidx) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -34,13 +34,13 @@ LANGUAGE 'c' with (isstrict); --QUERYTYPES --without morphology -CREATE FUNCTION qtxt_in(opaque) -RETURNS opaque +CREATE FUNCTION qtxt_in(cstring) +RETURNS query_txt AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION qtxt_out(opaque) -RETURNS opaque +CREATE FUNCTION qtxt_out(query_txt) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -51,15 +51,21 @@ output = qtxt_out ); --with morphology -CREATE FUNCTION mqtxt_in(opaque) -RETURNS opaque +CREATE FUNCTION mqtxt_in(cstring) +RETURNS mquery_txt AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +--same C output function as for query_txt +CREATE FUNCTION mqtxt_out(mquery_txt) +RETURNS cstring +AS 'MODULE_PATHNAME', 'qtxt_out' +LANGUAGE 'c' with (isstrict); + CREATE TYPE mquery_txt ( internallength = -1, input = mqtxt_in, -output = qtxt_out +output = mqtxt_out ); --only for debug @@ -115,19 +121,19 @@ CREATE OPERATOR ~# ( ); --Trigger -create function tsearch() returns opaque as +create function tsearch() returns trigger as 'MODULE_PATHNAME' language 'C'; --GiST --GiST key type -CREATE FUNCTION gtxtidx_in(opaque) -RETURNS opaque +CREATE FUNCTION gtxtidx_in(cstring) +RETURNS gtxtidx AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION gtxtidx_out(opaque) -RETURNS opaque +CREATE FUNCTION gtxtidx_out(gtxtidx) +RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); @@ -138,25 +144,25 @@ output = gtxtidx_out ); -- support functions -CREATE FUNCTION gtxtidx_consistent(gtxtidx,opaque,int4) RETURNS bool +CREATE FUNCTION gtxtidx_consistent(gtxtidx,internal,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gtxtidx_compress(opaque) RETURNS opaque +CREATE FUNCTION gtxtidx_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gtxtidx_decompress(opaque) RETURNS opaque +CREATE FUNCTION gtxtidx_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gtxtidx_penalty(opaque,opaque,opaque) RETURNS opaque +CREATE FUNCTION gtxtidx_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); -CREATE FUNCTION gtxtidx_picksplit(opaque, opaque) RETURNS opaque +CREATE FUNCTION gtxtidx_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gtxtidx_union(bytea, opaque) RETURNS _int4 +CREATE FUNCTION gtxtidx_union(bytea, internal) RETURNS _int4 AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION gtxtidx_same(gtxtidx, gtxtidx, opaque) RETURNS opaque +CREATE FUNCTION gtxtidx_same(gtxtidx, gtxtidx, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -- create the operator class @@ -164,13 +170,13 @@ CREATE OPERATOR CLASS gist_txtidx_ops DEFAULT FOR TYPE txtidx USING gist AS OPERATOR 1 @@ (txtidx, query_txt) RECHECK , OPERATOR 2 ## (txtidx, mquery_txt) RECHECK , - FUNCTION 1 gtxtidx_consistent (gtxtidx, opaque, int4), - FUNCTION 2 gtxtidx_union (bytea, opaque), - FUNCTION 3 gtxtidx_compress (opaque), - FUNCTION 4 gtxtidx_decompress (opaque), - FUNCTION 5 gtxtidx_penalty (opaque, opaque, opaque), - FUNCTION 6 gtxtidx_picksplit (opaque, opaque), - FUNCTION 7 gtxtidx_same (gtxtidx, gtxtidx, opaque), + FUNCTION 1 gtxtidx_consistent (gtxtidx, internal, int4), + FUNCTION 2 gtxtidx_union (bytea, internal), + FUNCTION 3 gtxtidx_compress (internal), + FUNCTION 4 gtxtidx_decompress (internal), + FUNCTION 5 gtxtidx_penalty (internal, internal, internal), + FUNCTION 6 gtxtidx_picksplit (internal, internal), + FUNCTION 7 gtxtidx_same (gtxtidx, gtxtidx, internal), STORAGE gtxtidx; |
