diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-08-22 00:01:51 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-08-22 00:01:51 +0000 |
| commit | b663f3443ba096a06970214c3e83e79f6e570b84 (patch) | |
| tree | 049e26c1b02535c12bee6e60ba89cf1d42a41a72 /contrib | |
| parent | 606c9b9d4fafe9300d039c044edc9727c0ed43c9 (diff) | |
| download | postgresql-b663f3443ba096a06970214c3e83e79f6e570b84.tar.gz | |
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 ...
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; |
