aboutsummaryrefslogtreecommitdiff
path: root/contrib/btree_gist/btree_gist.sql.in
diff options
context:
space:
mode:
authorTeodor Sigaev <teodor@sigaev.ru>2004-05-28 10:43:32 +0000
committerTeodor Sigaev <teodor@sigaev.ru>2004-05-28 10:43:32 +0000
commit42d069886f38687839388c615af608706508b557 (patch)
tree0409615407a17d22e2511ac14745277467853453 /contrib/btree_gist/btree_gist.sql.in
parent1a321f26d88e5c64bccba9d36920aede1e201729 (diff)
downloadpostgresql-42d069886f38687839388c615af608706508b557.tar.gz
postgresql-42d069886f38687839388c615af608706508b557.zip
New version. Add support for int2, int8, float4, float8, timestamp with/without time zone, time with/without time zone, date, interval, oid, money and macaddr, char, varchar/text, bytea, numeric, bit, varbit, inet/cidr types for GiST
Diffstat (limited to 'contrib/btree_gist/btree_gist.sql.in')
-rw-r--r--contrib/btree_gist/btree_gist.sql.in1075
1 files changed, 906 insertions, 169 deletions
diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in
index b453d3029fe..a99c1ea6edb 100644
--- a/contrib/btree_gist/btree_gist.sql.in
+++ b/contrib/btree_gist/btree_gist.sql.in
@@ -1,131 +1,185 @@
-- Adjust this setting to control where the objects get created.
SET search_path = public;
--- create type of int2 key
-CREATE FUNCTION int2key_in(cstring)
-RETURNS int2key
-AS 'MODULE_PATHNAME'
+CREATE FUNCTION gbtreekey4_in(cstring)
+RETURNS gbtreekey4
+AS 'MODULE_PATHNAME', 'gbtreekey_in'
LANGUAGE 'c' WITH (isstrict);
-CREATE FUNCTION int2key_out(int2key)
+CREATE FUNCTION gbtreekey4_out(gbtreekey4)
RETURNS cstring
-AS 'MODULE_PATHNAME'
+AS 'MODULE_PATHNAME', 'gbtreekey_out'
LANGUAGE 'c' WITH (isstrict);
-CREATE TYPE int2key (
+CREATE TYPE gbtreekey4 (
INTERNALLENGTH = 4,
-INPUT = int2key_in,
-OUTPUT = int2key_out
+INPUT = gbtreekey4_in,
+OUTPUT = gbtreekey4_out
);
--- create type of int4 key
-CREATE FUNCTION int4key_in(cstring)
-RETURNS int4key
-AS 'MODULE_PATHNAME'
+CREATE FUNCTION gbtreekey8_in(cstring)
+RETURNS gbtreekey8
+AS 'MODULE_PATHNAME', 'gbtreekey_in'
LANGUAGE 'c' WITH (isstrict);
-CREATE FUNCTION int4key_out(int4key)
+CREATE FUNCTION gbtreekey8_out(gbtreekey8)
RETURNS cstring
-AS 'MODULE_PATHNAME'
+AS 'MODULE_PATHNAME', 'gbtreekey_out'
LANGUAGE 'c' WITH (isstrict);
-CREATE TYPE int4key (
+CREATE TYPE gbtreekey8 (
INTERNALLENGTH = 8,
-INPUT = int4key_in,
-OUTPUT = int4key_out
+INPUT = gbtreekey8_in,
+OUTPUT = gbtreekey8_out
);
--- create type of int8 key
-CREATE FUNCTION int8key_in(cstring)
-RETURNS int8key
-AS 'MODULE_PATHNAME'
+CREATE FUNCTION gbtreekey16_in(cstring)
+RETURNS gbtreekey16
+AS 'MODULE_PATHNAME', 'gbtreekey_in'
LANGUAGE 'c' WITH (isstrict);
-CREATE FUNCTION int8key_out(int8key)
+CREATE FUNCTION gbtreekey16_out(gbtreekey16)
RETURNS cstring
-AS 'MODULE_PATHNAME'
+AS 'MODULE_PATHNAME', 'gbtreekey_out'
LANGUAGE 'c' WITH (isstrict);
-CREATE TYPE int8key (
+CREATE TYPE gbtreekey16 (
INTERNALLENGTH = 16,
-INPUT = int8key_in,
-OUTPUT = int8key_out
+INPUT = gbtreekey16_in,
+OUTPUT = gbtreekey16_out
);
--- create type of float4 key
-CREATE FUNCTION float4key_in(cstring)
-RETURNS float4key
-AS 'MODULE_PATHNAME'
+CREATE FUNCTION gbtreekey24_in(cstring)
+RETURNS gbtreekey24
+AS 'MODULE_PATHNAME', 'gbtreekey_in'
LANGUAGE 'c' WITH (isstrict);
-CREATE FUNCTION float4key_out(float4key)
+CREATE FUNCTION gbtreekey24_out(gbtreekey24)
RETURNS cstring
-AS 'MODULE_PATHNAME'
+AS 'MODULE_PATHNAME', 'gbtreekey_out'
LANGUAGE 'c' WITH (isstrict);
-CREATE TYPE float4key (
-INTERNALLENGTH = 8,
-INPUT = float4key_in,
-OUTPUT = float4key_out
+CREATE TYPE gbtreekey24 (
+INTERNALLENGTH = 24,
+INPUT = gbtreekey24_in,
+OUTPUT = gbtreekey24_out
);
-
--- create type of float8 key
-CREATE FUNCTION float8key_in(cstring)
-RETURNS float8key
-AS 'MODULE_PATHNAME'
+CREATE FUNCTION gbtreekey_var_in(cstring)
+RETURNS gbtreekey_var
+AS 'MODULE_PATHNAME', 'gbtreekey_in'
LANGUAGE 'c' WITH (isstrict);
-CREATE FUNCTION float8key_out(float8key)
+CREATE FUNCTION gbtreekey_var_out(gbtreekey_var)
RETURNS cstring
-AS 'MODULE_PATHNAME'
+AS 'MODULE_PATHNAME', 'gbtreekey_out'
LANGUAGE 'c' WITH (isstrict);
-CREATE TYPE float8key (
-INTERNALLENGTH = 16,
-INPUT = float8key_in,
-OUTPUT = float8key_out
+CREATE TYPE gbtreekey_var (
+INTERNALLENGTH = VARIABLE,
+INPUT = gbtreekey_var_in,
+OUTPUT = gbtreekey_var_out,
+STORAGE = EXTENDED
);
+
+
--
--
--
--- int2 ops
+-- oid ops
--
--
--
-- define the GiST support methods
-CREATE FUNCTION gint2_consistent(internal,int2,int2)
+CREATE FUNCTION gbt_oid_consistent(internal,oid,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint2_compress(internal)
+CREATE FUNCTION gbt_oid_compress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION btree_decompress(internal)
+CREATE FUNCTION gbt_decompress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint2_penalty(internal,internal,internal)
+CREATE FUNCTION gbt_oid_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gint2_picksplit(internal, internal)
+CREATE FUNCTION gbt_oid_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint2_union(internal, internal)
-RETURNS int4
+CREATE FUNCTION gbt_oid_union(bytea, internal)
+RETURNS gbtreekey8
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint2_same(internal, internal, internal)
+CREATE FUNCTION gbt_oid_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_oid_ops
+DEFAULT FOR TYPE oid USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_oid_consistent (internal, oid, int2),
+ FUNCTION 2 gbt_oid_union (bytea, internal),
+ FUNCTION 3 gbt_oid_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_oid_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_oid_picksplit (internal, internal),
+ FUNCTION 7 gbt_oid_same (internal, internal, internal),
+ STORAGE gbtreekey8;
+
+
+--
+--
+--
+-- int2 ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_int2_consistent(internal,int2,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_int2_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_int2_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_int2_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_int2_union(bytea, internal)
+RETURNS gbtreekey4
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_int2_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
@@ -134,19 +188,19 @@ LANGUAGE 'C';
CREATE OPERATOR CLASS gist_int2_ops
DEFAULT FOR TYPE int2 USING gist
AS
- OPERATOR 1 < ,
+ OPERATOR 1 < ,
OPERATOR 2 <= ,
- OPERATOR 3 = ,
+ OPERATOR 3 = ,
OPERATOR 4 >= ,
- OPERATOR 5 > ,
- FUNCTION 1 gint2_consistent (internal, int2, int2),
- FUNCTION 2 gint2_union (internal, internal),
- FUNCTION 3 gint2_compress (internal),
- FUNCTION 4 btree_decompress (internal),
- FUNCTION 5 gint2_penalty (internal, internal, internal),
- FUNCTION 6 gint2_picksplit (internal, internal),
- FUNCTION 7 gint2_same (internal, internal, internal),
- STORAGE int2key;
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_int2_consistent (internal, int2, int2),
+ FUNCTION 2 gbt_int2_union (bytea, internal),
+ FUNCTION 3 gbt_int2_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_int2_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_int2_picksplit (internal, internal),
+ FUNCTION 7 gbt_int2_same (internal, internal, internal),
+ STORAGE gbtreekey4;
--
--
@@ -156,32 +210,32 @@ AS
--
--
-- define the GiST support methods
-CREATE FUNCTION gint4_consistent(internal,int4,int2)
+CREATE FUNCTION gbt_int4_consistent(internal,int4,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint4_compress(internal)
+CREATE FUNCTION gbt_int4_compress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint4_penalty(internal,internal,internal)
+CREATE FUNCTION gbt_int4_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gint4_picksplit(internal, internal)
+CREATE FUNCTION gbt_int4_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint4_union(internal, internal)
-RETURNS int4
+CREATE FUNCTION gbt_int4_union(bytea, internal)
+RETURNS gbtreekey8
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint4_same(internal, internal, internal)
+CREATE FUNCTION gbt_int4_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
@@ -190,19 +244,19 @@ LANGUAGE 'C';
CREATE OPERATOR CLASS gist_int4_ops
DEFAULT FOR TYPE int4 USING gist
AS
- OPERATOR 1 < ,
+ OPERATOR 1 < ,
OPERATOR 2 <= ,
- OPERATOR 3 = ,
+ OPERATOR 3 = ,
OPERATOR 4 >= ,
- OPERATOR 5 > ,
- FUNCTION 1 gint4_consistent (internal, int4, int2),
- FUNCTION 2 gint4_union (internal, 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;
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_int4_consistent (internal, int4, int2),
+ FUNCTION 2 gbt_int4_union (bytea, internal),
+ FUNCTION 3 gbt_int4_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_int4_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_int4_picksplit (internal, internal),
+ FUNCTION 7 gbt_int4_same (internal, internal, internal),
+ STORAGE gbtreekey8;
--
--
@@ -212,32 +266,32 @@ AS
--
--
-- define the GiST support methods
-CREATE FUNCTION gint8_consistent(internal,int8,int2)
+CREATE FUNCTION gbt_int8_consistent(internal,int8,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint8_compress(internal)
+CREATE FUNCTION gbt_int8_compress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint8_penalty(internal,internal,internal)
+CREATE FUNCTION gbt_int8_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gint8_picksplit(internal, internal)
+CREATE FUNCTION gbt_int8_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint8_union(internal, internal)
-RETURNS int8key
+CREATE FUNCTION gbt_int8_union(bytea, internal)
+RETURNS gbtreekey16
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gint8_same(int8key, int8key, internal)
+CREATE FUNCTION gbt_int8_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
@@ -246,19 +300,19 @@ LANGUAGE 'C';
CREATE OPERATOR CLASS gist_int8_ops
DEFAULT FOR TYPE int8 USING gist
AS
- OPERATOR 1 < ,
+ OPERATOR 1 < ,
OPERATOR 2 <= ,
- OPERATOR 3 = ,
+ OPERATOR 3 = ,
OPERATOR 4 >= ,
- OPERATOR 5 > ,
- FUNCTION 1 gint8_consistent (internal, int8, int2),
- FUNCTION 2 gint8_union (internal, internal),
- FUNCTION 3 gint8_compress (internal),
- FUNCTION 4 btree_decompress (internal),
- FUNCTION 5 gint8_penalty (internal, internal, internal),
- FUNCTION 6 gint8_picksplit (internal, internal),
- FUNCTION 7 gint8_same (int8key, int8key, internal),
- STORAGE int8key;
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_int8_consistent (internal, int8, int2),
+ FUNCTION 2 gbt_int8_union (bytea, internal),
+ FUNCTION 3 gbt_int8_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_int8_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_int8_picksplit (internal, internal),
+ FUNCTION 7 gbt_int8_same (internal, internal, internal),
+ STORAGE gbtreekey16;
--
@@ -269,32 +323,32 @@ AS
--
--
-- define the GiST support methods
-CREATE FUNCTION gfloat4_consistent(internal,float4,int2)
+CREATE FUNCTION gbt_float4_consistent(internal,float4,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat4_compress(internal)
+CREATE FUNCTION gbt_float4_compress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat4_penalty(internal,internal,internal)
+CREATE FUNCTION gbt_float4_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gfloat4_picksplit(internal, internal)
+CREATE FUNCTION gbt_float4_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat4_union(internal, internal)
-RETURNS int4
+CREATE FUNCTION gbt_float4_union(bytea, internal)
+RETURNS gbtreekey8
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat4_same(internal, internal, internal)
+CREATE FUNCTION gbt_float4_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
@@ -303,19 +357,19 @@ LANGUAGE 'C';
CREATE OPERATOR CLASS gist_float4_ops
DEFAULT FOR TYPE float4 USING gist
AS
- OPERATOR 1 < ,
+ OPERATOR 1 < ,
OPERATOR 2 <= ,
- OPERATOR 3 = ,
+ OPERATOR 3 = ,
OPERATOR 4 >= ,
- OPERATOR 5 > ,
- FUNCTION 1 gfloat4_consistent (internal, float4, int2),
- FUNCTION 2 gfloat4_union (internal, internal),
- FUNCTION 3 gfloat4_compress (internal),
- FUNCTION 4 btree_decompress (internal),
- FUNCTION 5 gfloat4_penalty (internal, internal, internal),
- FUNCTION 6 gfloat4_picksplit (internal, internal),
- FUNCTION 7 gfloat4_same (internal, internal, internal),
- STORAGE float4key;
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_float4_consistent (internal, float4, int2),
+ FUNCTION 2 gbt_float4_union (bytea, internal),
+ FUNCTION 3 gbt_float4_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_float4_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_float4_picksplit (internal, internal),
+ FUNCTION 7 gbt_float4_same (internal, internal, internal),
+ STORAGE gbtreekey8;
@@ -328,32 +382,32 @@ AS
--
--
-- define the GiST support methods
-CREATE FUNCTION gfloat8_consistent(internal,float8,int2)
+CREATE FUNCTION gbt_float8_consistent(internal,float8,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat8_compress(internal)
+CREATE FUNCTION gbt_float8_compress(internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat8_penalty(internal,internal,internal)
+CREATE FUNCTION gbt_float8_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gfloat8_picksplit(internal, internal)
+CREATE FUNCTION gbt_float8_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat8_union(internal, internal)
-RETURNS int4
+CREATE FUNCTION gbt_float8_union(bytea, internal)
+RETURNS gbtreekey16
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gfloat8_same(internal, internal, internal)
+CREATE FUNCTION gbt_float8_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
@@ -362,19 +416,19 @@ LANGUAGE 'C';
CREATE OPERATOR CLASS gist_float8_ops
DEFAULT FOR TYPE float8 USING gist
AS
- OPERATOR 1 < ,
+ OPERATOR 1 < ,
OPERATOR 2 <= ,
- OPERATOR 3 = ,
+ OPERATOR 3 = ,
OPERATOR 4 >= ,
- OPERATOR 5 > ,
- FUNCTION 1 gfloat8_consistent (internal, float8, int2),
- FUNCTION 2 gfloat8_union (internal, internal),
- FUNCTION 3 gfloat8_compress (internal),
- FUNCTION 4 btree_decompress (internal),
- FUNCTION 5 gfloat8_penalty (internal, internal, internal),
- FUNCTION 6 gfloat8_picksplit (internal, internal),
- FUNCTION 7 gfloat8_same (internal, internal, internal),
- STORAGE float8key;
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_float8_consistent (internal, float8, int2),
+ FUNCTION 2 gbt_float8_union (bytea, internal),
+ FUNCTION 3 gbt_float8_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_float8_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_float8_picksplit (internal, internal),
+ FUNCTION 7 gbt_float8_same (internal, internal, internal),
+ STORAGE gbtreekey16;
--
@@ -384,68 +438,751 @@ AS
--
--
--
--- create type of timestamp key
-CREATE FUNCTION tskey_in(cstring)
-RETURNS tskey
+CREATE FUNCTION gbt_ts_consistent(internal,timestamp,int2)
+RETURNS bool
AS 'MODULE_PATHNAME'
-LANGUAGE 'c' WITH (isstrict);
+LANGUAGE 'C';
-CREATE FUNCTION tskey_out(tskey)
-RETURNS cstring
+CREATE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2)
+RETURNS bool
AS 'MODULE_PATHNAME'
-LANGUAGE 'c' WITH (isstrict);
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_ts_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
-CREATE TYPE tskey (
-INTERNALLENGTH = 16,
-INPUT = tskey_in,
-OUTPUT = tskey_out
-);
+CREATE FUNCTION gbt_tstz_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
-CREATE FUNCTION gts_consistent(internal,timestamp,int2)
+CREATE FUNCTION gbt_ts_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_ts_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_ts_union(bytea, internal)
+RETURNS gbtreekey16
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_ts_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_timestamp_ops
+DEFAULT FOR TYPE timestamp USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_ts_consistent (internal, timestamp, int2),
+ FUNCTION 2 gbt_ts_union (bytea, internal),
+ FUNCTION 3 gbt_ts_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_ts_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_ts_picksplit (internal, internal),
+ FUNCTION 7 gbt_ts_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_timestamptz_ops
+DEFAULT FOR TYPE timestamptz USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_tstz_consistent (internal, timestamptz, int2),
+ FUNCTION 2 gbt_ts_union (bytea, internal),
+ FUNCTION 3 gbt_tstz_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_ts_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_ts_picksplit (internal, internal),
+ FUNCTION 7 gbt_ts_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+
+--
+--
+--
+-- time ops
+--
+--
+--
+
+CREATE FUNCTION gbt_time_consistent(internal,time,int2)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
+
+CREATE FUNCTION gbt_timetz_consistent(internal,timetz,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_time_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_timetz_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_time_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_time_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
-CREATE FUNCTION gts_compress(internal)
+CREATE FUNCTION gbt_time_union(bytea, internal)
+RETURNS gbtreekey16
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_time_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gts_penalty(internal,internal,internal)
+-- Create the operator class
+CREATE OPERATOR CLASS gist_time_ops
+DEFAULT FOR TYPE time USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_time_consistent (internal, time, int2),
+ FUNCTION 2 gbt_time_union (bytea, internal),
+ FUNCTION 3 gbt_time_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_time_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_time_picksplit (internal, internal),
+ FUNCTION 7 gbt_time_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+CREATE OPERATOR CLASS gist_timetz_ops
+DEFAULT FOR TYPE timetz USING gist
+AS
+ OPERATOR 1 < RECHECK ,
+ OPERATOR 2 <= RECHECK ,
+ OPERATOR 3 = RECHECK ,
+ OPERATOR 4 >= RECHECK ,
+ OPERATOR 5 > RECHECK ,
+ FUNCTION 1 gbt_timetz_consistent (internal, timetz, int2),
+ FUNCTION 2 gbt_time_union (bytea, internal),
+ FUNCTION 3 gbt_timetz_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_time_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_time_picksplit (internal, internal),
+ FUNCTION 7 gbt_time_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+
+--
+--
+--
+-- date ops
+--
+--
+--
+
+CREATE FUNCTION gbt_date_consistent(internal,date,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_date_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_date_penalty(internal,internal,internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C' WITH (isstrict);
-CREATE FUNCTION gts_picksplit(internal, internal)
+CREATE FUNCTION gbt_date_picksplit(internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gts_union(internal, internal)
-RETURNS int4
+CREATE FUNCTION gbt_date_union(bytea, internal)
+RETURNS gbtreekey8
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-CREATE FUNCTION gts_same(internal, internal, internal)
+CREATE FUNCTION gbt_date_same(internal, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE 'C';
-- Create the operator class
-CREATE OPERATOR CLASS gist_timestamp_ops
-DEFAULT FOR TYPE timestamp USING gist
+CREATE OPERATOR CLASS gist_date_ops
+DEFAULT FOR TYPE date USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_date_consistent (internal, date, int2),
+ FUNCTION 2 gbt_date_union (bytea, internal),
+ FUNCTION 3 gbt_date_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_date_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_date_picksplit (internal, internal),
+ FUNCTION 7 gbt_date_same (internal, internal, internal),
+ STORAGE gbtreekey8;
+
+
+--
+--
+--
+-- interval ops
+--
+--
+--
+
+CREATE FUNCTION gbt_intv_consistent(internal,interval,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_intv_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_intv_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_intv_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_intv_union(bytea, internal)
+RETURNS gbtreekey24
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_intv_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_interval_ops
+DEFAULT FOR TYPE interval USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_intv_consistent (internal, interval, int2),
+ FUNCTION 2 gbt_intv_union (bytea, internal),
+ FUNCTION 3 gbt_intv_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_intv_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_intv_picksplit (internal, internal),
+ FUNCTION 7 gbt_intv_same (internal, internal, internal),
+ STORAGE gbtreekey24;
+
+--
+--
+--
+-- cash ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_cash_consistent(internal,money,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cash_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cash_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_cash_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cash_union(bytea, internal)
+RETURNS gbtreekey8
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cash_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_cash_ops
+DEFAULT FOR TYPE money USING gist
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
- FUNCTION 1 gts_consistent (internal, timestamp, int2),
- FUNCTION 2 gts_union (internal, 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;
+ FUNCTION 1 gbt_cash_consistent (internal, money, int2),
+ FUNCTION 2 gbt_cash_union (bytea, internal),
+ FUNCTION 3 gbt_cash_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_cash_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_cash_picksplit (internal, internal),
+ FUNCTION 7 gbt_cash_same (internal, internal, internal),
+ STORAGE gbtreekey8;
+
+--
+--
+--
+-- macaddr ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_macad_consistent(internal,macaddr,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_macad_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_macad_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_macad_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_macad_union(bytea, internal)
+RETURNS gbtreekey16
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_macad_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_macaddr_ops
+DEFAULT FOR TYPE macaddr USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_macad_consistent (internal, macaddr, int2),
+ FUNCTION 2 gbt_macad_union (bytea, internal),
+ FUNCTION 3 gbt_macad_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_macad_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_macad_picksplit (internal, internal),
+ FUNCTION 7 gbt_macad_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+
+
+--
+--
+--
+-- text/ bpchar ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_text_consistent(internal,text,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_text_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bpchar_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_text_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_text_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_text_union(bytea, internal)
+RETURNS gbtreekey_var
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_text_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_text_ops
+DEFAULT FOR TYPE text USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_text_consistent (internal, text, int2),
+ FUNCTION 2 gbt_text_union (bytea, internal),
+ FUNCTION 3 gbt_text_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_text_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_text_picksplit (internal, internal),
+ FUNCTION 7 gbt_text_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+
+---- Create the operator class
+CREATE OPERATOR CLASS gist_bpchar_ops
+DEFAULT FOR TYPE bpchar USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_bpchar_consistent (internal, bpchar , int2),
+ FUNCTION 2 gbt_text_union (bytea, internal),
+ FUNCTION 3 gbt_bpchar_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_text_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_text_picksplit (internal, internal),
+ FUNCTION 7 gbt_text_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+
+
+--
+--
+-- bytea ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_bytea_consistent(internal,bytea,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bytea_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bytea_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_bytea_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bytea_union(bytea, internal)
+RETURNS gbtreekey_var
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bytea_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_bytea_ops
+DEFAULT FOR TYPE bytea USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_bytea_consistent (internal, bytea, int2),
+ FUNCTION 2 gbt_bytea_union (bytea, internal),
+ FUNCTION 3 gbt_bytea_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_bytea_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_bytea_picksplit (internal, internal),
+ FUNCTION 7 gbt_bytea_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+
+--
+--
+--
+-- numeric ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_numeric_consistent(internal,numeric,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_numeric_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_numeric_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_numeric_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_numeric_union(bytea, internal)
+RETURNS gbtreekey_var
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_numeric_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_numeric_ops
+DEFAULT FOR TYPE numeric USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_numeric_consistent (internal, numeric, int2),
+ FUNCTION 2 gbt_numeric_union (bytea, internal),
+ FUNCTION 3 gbt_numeric_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_numeric_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_numeric_picksplit (internal, internal),
+ FUNCTION 7 gbt_numeric_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+--
+--
+-- bit ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_bit_consistent(internal,bit,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bit_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bit_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_bit_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bit_union(bytea, internal)
+RETURNS gbtreekey_var
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_bit_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_bit_ops
+DEFAULT FOR TYPE bit USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_bit_consistent (internal, bit, int2),
+ FUNCTION 2 gbt_bit_union (bytea, internal),
+ FUNCTION 3 gbt_bit_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_bit_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_bit_picksplit (internal, internal),
+ FUNCTION 7 gbt_bit_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_vbit_ops
+DEFAULT FOR TYPE varbit USING gist
+AS
+ OPERATOR 1 < ,
+ OPERATOR 2 <= ,
+ OPERATOR 3 = ,
+ OPERATOR 4 >= ,
+ OPERATOR 5 > ,
+ FUNCTION 1 gbt_bit_consistent (internal, bit, int2),
+ FUNCTION 2 gbt_bit_union (bytea, internal),
+ FUNCTION 3 gbt_bit_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_bit_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_bit_picksplit (internal, internal),
+ FUNCTION 7 gbt_bit_same (internal, internal, internal),
+ STORAGE gbtreekey_var;
+
+
+
+--
+--
+--
+-- inet/cidr ops
+--
+--
+--
+-- define the GiST support methods
+CREATE FUNCTION gbt_inet_consistent(internal,inet,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cidr_consistent(internal,cidr,int2)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_inet_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_cidr_compress(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_inet_penalty(internal,internal,internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C' WITH (isstrict);
+
+CREATE FUNCTION gbt_inet_picksplit(internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_inet_union(bytea, internal)
+RETURNS gbtreekey16
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+CREATE FUNCTION gbt_inet_same(internal, internal, internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE 'C';
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_inet_ops
+DEFAULT FOR TYPE inet USING gist
+AS
+ OPERATOR 1 < RECHECK ,
+ OPERATOR 2 <= RECHECK ,
+ OPERATOR 3 = RECHECK ,
+ OPERATOR 4 >= RECHECK ,
+ OPERATOR 5 > RECHECK ,
+ FUNCTION 1 gbt_inet_consistent (internal, inet, int2),
+ FUNCTION 2 gbt_inet_union (bytea, internal),
+ FUNCTION 3 gbt_inet_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_inet_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_inet_picksplit (internal, internal),
+ FUNCTION 7 gbt_inet_same (internal, internal, internal),
+ STORAGE gbtreekey16;
+
+-- Create the operator class
+CREATE OPERATOR CLASS gist_cidr_ops
+DEFAULT FOR TYPE cidr USING gist
+AS
+ OPERATOR 1 < RECHECK ,
+ OPERATOR 2 <= RECHECK ,
+ OPERATOR 3 = RECHECK ,
+ OPERATOR 4 >= RECHECK ,
+ OPERATOR 5 > RECHECK ,
+ FUNCTION 1 gbt_cidr_consistent (internal, cidr, int2),
+ FUNCTION 2 gbt_inet_union (bytea, internal),
+ FUNCTION 3 gbt_inet_compress (internal),
+ FUNCTION 4 gbt_decompress (internal),
+ FUNCTION 5 gbt_inet_penalty (internal, internal, internal),
+ FUNCTION 6 gbt_inet_picksplit (internal, internal),
+ FUNCTION 7 gbt_inet_same (internal, internal, internal),
+ STORAGE gbtreekey16;