1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-31 22:04:40 +03:00

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 ...
This commit is contained in:
Tom Lane
2002-08-22 00:01:51 +00:00
parent 606c9b9d4f
commit b663f3443b
126 changed files with 2005 additions and 1205 deletions

View File

@ -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;

View File

@ -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';

View File

@ -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)
{

View File

@ -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;

View File

@ -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" (

View File

@ -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:

View File

@ -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

View File

@ -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';
#

View File

@ -1,3 +1,3 @@
create function fti() returns opaque as
create function fti() returns trigger as
'MODULE_PATHNAME'
language 'C';

View File

@ -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;

View File

@ -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';

View File

@ -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';

View File

@ -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

View File

@ -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;

View File

@ -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
#

View File

@ -1,6 +1,6 @@
DROP FUNCTION noup ();
CREATE FUNCTION noup ()
RETURNS opaque
RETURNS trigger
AS 'MODULE_PATHNAME'
LANGUAGE 'C';

View File

@ -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";
}
}

View File

@ -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);

View File

@ -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'
;

View File

@ -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;

View File

@ -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)
{

View File

@ -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;

View File

@ -1,6 +1,6 @@
DROP FUNCTION autoinc();
CREATE FUNCTION autoinc()
RETURNS opaque
RETURNS trigger
AS 'MODULE_PATHNAME'
LANGUAGE 'C';

View File

@ -1,6 +1,6 @@
DROP FUNCTION insert_username();
CREATE FUNCTION insert_username()
RETURNS opaque
RETURNS trigger
AS 'MODULE_PATHNAME'
LANGUAGE 'C';

View File

@ -1,6 +1,6 @@
DROP FUNCTION moddatetime();
CREATE FUNCTION moddatetime()
RETURNS opaque
RETURNS trigger
AS 'MODULE_PATHNAME'
LANGUAGE 'C';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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;