diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-04-14 17:05:34 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-04-14 17:05:34 +0000 |
commit | 9b5c8d45f62bd3d243a40cc84deb93893f2f5122 (patch) | |
tree | 2d75607f7bdb96cfa1d73a3a36a4b3328118ff08 /contrib/btree_gist | |
parent | 10be77c173211a75718f50fe6061862f6a0cb4a2 (diff) | |
download | postgresql-9b5c8d45f62bd3d243a40cc84deb93893f2f5122.tar.gz postgresql-9b5c8d45f62bd3d243a40cc84deb93893f2f5122.zip |
Push index operator lossiness determination down to GIST/GIN opclass
"consistent" functions, and remove pg_amop.opreqcheck, as per recent
discussion. The main immediate benefit of this is that we no longer need
8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery
searches on GIN indexes. In future it should be possible to optimize some
other queries better than is done now, by detecting at runtime whether the
index match is exact or not.
Tom Lane, after an idea of Heikki's, and with some help from Teodor.
Diffstat (limited to 'contrib/btree_gist')
-rw-r--r-- | contrib/btree_gist/btree_bit.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_bytea.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_cash.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_date.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_float4.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_float8.c | 8 | ||||
-rw-r--r-- | contrib/btree_gist/btree_gist.sql.in | 116 | ||||
-rw-r--r-- | contrib/btree_gist/btree_inet.c | 5 | ||||
-rw-r--r-- | contrib/btree_gist/btree_int2.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_int4.c | 8 | ||||
-rw-r--r-- | contrib/btree_gist/btree_int8.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_interval.c | 7 | ||||
-rw-r--r-- | contrib/btree_gist/btree_macaddr.c | 8 | ||||
-rw-r--r-- | contrib/btree_gist/btree_numeric.c | 8 | ||||
-rw-r--r-- | contrib/btree_gist/btree_oid.c | 8 | ||||
-rw-r--r-- | contrib/btree_gist/btree_text.c | 18 | ||||
-rw-r--r-- | contrib/btree_gist/btree_time.c | 14 | ||||
-rw-r--r-- | contrib/btree_gist/btree_ts.c | 14 | ||||
-rw-r--r-- | contrib/btree_gist/uninstall_btree_gist.sql | 42 |
19 files changed, 199 insertions, 106 deletions
diff --git a/contrib/btree_gist/btree_bit.c b/contrib/btree_gist/btree_bit.c index 534c9af8131..d86034fd6ff 100644 --- a/contrib/btree_gist/btree_bit.c +++ b/contrib/btree_gist/btree_bit.c @@ -126,12 +126,17 @@ Datum gbt_bit_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); void *query = (void *) DatumGetByteaP(PG_GETARG_DATUM(1)); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); bool retval = FALSE; + GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); + /* All cases served by this function are exact */ + *recheck = false; + if (GIST_LEAF(entry)) retval = gbt_var_consistent(&r, query, &strategy, TRUE, &tinfo); else diff --git a/contrib/btree_gist/btree_bytea.c b/contrib/btree_gist/btree_bytea.c index d5345872d6e..02229653f48 100644 --- a/contrib/btree_gist/btree_bytea.c +++ b/contrib/btree_gist/btree_bytea.c @@ -96,12 +96,17 @@ Datum gbt_bytea_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); void *query = (void *) DatumGetByteaP(PG_GETARG_DATUM(1)); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); bool retval; + GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); + /* All cases served by this function are exact */ + *recheck = false; + retval = gbt_var_consistent(&r, query, &strategy, GIST_LEAF(entry), &tinfo); PG_RETURN_BOOL(retval); } diff --git a/contrib/btree_gist/btree_cash.c b/contrib/btree_gist/btree_cash.c index 13f8200fb74..eb618754d9a 100644 --- a/contrib/btree_gist/btree_cash.c +++ b/contrib/btree_gist/btree_cash.c @@ -97,9 +97,14 @@ gbt_cash_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); Cash query = (*((Cash *) PG_GETARG_POINTER(1))); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); cashKEY *kkk = (cashKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_date.c b/contrib/btree_gist/btree_date.c index b14888889dd..212ee2d3972 100644 --- a/contrib/btree_gist/btree_date.c +++ b/contrib/btree_gist/btree_date.c @@ -113,9 +113,14 @@ gbt_date_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); DateADT query = PG_GETARG_DATEADT(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); dateKEY *kkk = (dateKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_float4.c b/contrib/btree_gist/btree_float4.c index a4c941f8359..1aab392b80d 100644 --- a/contrib/btree_gist/btree_float4.c +++ b/contrib/btree_gist/btree_float4.c @@ -96,9 +96,14 @@ gbt_float4_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); float4 query = PG_GETARG_FLOAT4(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); float4KEY *kkk = (float4KEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_float8.c b/contrib/btree_gist/btree_float8.c index 1b87b4ee1b2..3c804922cc1 100644 --- a/contrib/btree_gist/btree_float8.c +++ b/contrib/btree_gist/btree_float8.c @@ -95,12 +95,16 @@ gbt_float8_compress(PG_FUNCTION_ARGS) Datum gbt_float8_consistent(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); float8 query = PG_GETARG_FLOAT8(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); float8KEY *kkk = (float8KEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in index 0dc7cb93297..f9007cb92c4 100644 --- a/contrib/btree_gist/btree_gist.sql.in +++ b/contrib/btree_gist/btree_gist.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/btree_gist/btree_gist.sql.in,v 1.19 2007/11/13 04:24:27 momjian Exp $ */ +/* $PostgreSQL: pgsql/contrib/btree_gist/btree_gist.sql.in,v 1.20 2008/04/14 17:05:31 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -94,7 +94,7 @@ CREATE TYPE gbtreekey_var ( -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_oid_consistent(internal,oid,int2) +CREATE OR REPLACE FUNCTION gbt_oid_consistent(internal,oid,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -143,7 +143,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_oid_consistent (internal, oid, int2), + FUNCTION 1 gbt_oid_consistent (internal, oid, int2, oid, internal), FUNCTION 2 gbt_oid_union (bytea, internal), FUNCTION 3 gbt_oid_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -161,7 +161,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_int2_consistent(internal,int2,int2) +CREATE OR REPLACE FUNCTION gbt_int2_consistent(internal,int2,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -200,7 +200,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_int2_consistent (internal, int2, int2), + FUNCTION 1 gbt_int2_consistent (internal, int2, int2, oid, internal), FUNCTION 2 gbt_int2_union (bytea, internal), FUNCTION 3 gbt_int2_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -217,7 +217,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_int4_consistent(internal,int4,int2) +CREATE OR REPLACE FUNCTION gbt_int4_consistent(internal,int4,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -256,7 +256,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_int4_consistent (internal, int4, int2), + FUNCTION 1 gbt_int4_consistent (internal, int4, int2, oid, internal), FUNCTION 2 gbt_int4_union (bytea, internal), FUNCTION 3 gbt_int4_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -273,7 +273,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_int8_consistent(internal,int8,int2) +CREATE OR REPLACE FUNCTION gbt_int8_consistent(internal,int8,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -312,7 +312,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_int8_consistent (internal, int8, int2), + FUNCTION 1 gbt_int8_consistent (internal, int8, int2, oid, internal), FUNCTION 2 gbt_int8_union (bytea, internal), FUNCTION 3 gbt_int8_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -330,7 +330,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_float4_consistent(internal,float4,int2) +CREATE OR REPLACE FUNCTION gbt_float4_consistent(internal,float4,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -369,7 +369,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_float4_consistent (internal, float4, int2), + FUNCTION 1 gbt_float4_consistent (internal, float4, int2, oid, internal), FUNCTION 2 gbt_float4_union (bytea, internal), FUNCTION 3 gbt_float4_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -389,7 +389,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_float8_consistent(internal,float8,int2) +CREATE OR REPLACE FUNCTION gbt_float8_consistent(internal,float8,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -428,7 +428,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_float8_consistent (internal, float8, int2), + FUNCTION 1 gbt_float8_consistent (internal, float8, int2, oid, internal), FUNCTION 2 gbt_float8_union (bytea, internal), FUNCTION 3 gbt_float8_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -446,12 +446,12 @@ AS -- -- -CREATE OR REPLACE FUNCTION gbt_ts_consistent(internal,timestamp,int2) +CREATE OR REPLACE FUNCTION gbt_ts_consistent(internal,timestamp,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; -CREATE OR REPLACE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2) +CREATE OR REPLACE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -495,7 +495,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_ts_consistent (internal, timestamp, int2), + FUNCTION 1 gbt_ts_consistent (internal, timestamp, int2, oid, internal), FUNCTION 2 gbt_ts_union (bytea, internal), FUNCTION 3 gbt_ts_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -514,7 +514,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_tstz_consistent (internal, timestamptz, int2), + FUNCTION 1 gbt_tstz_consistent (internal, timestamptz, int2, oid, internal), FUNCTION 2 gbt_ts_union (bytea, internal), FUNCTION 3 gbt_tstz_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -532,12 +532,12 @@ AS -- -- -CREATE OR REPLACE FUNCTION gbt_time_consistent(internal,time,int2) +CREATE OR REPLACE FUNCTION gbt_time_consistent(internal,time,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; -CREATE OR REPLACE FUNCTION gbt_timetz_consistent(internal,timetz,int2) +CREATE OR REPLACE FUNCTION gbt_timetz_consistent(internal,timetz,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -581,7 +581,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_time_consistent (internal, time, int2), + FUNCTION 1 gbt_time_consistent (internal, time, int2, oid, internal), FUNCTION 2 gbt_time_union (bytea, internal), FUNCTION 3 gbt_time_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -593,12 +593,12 @@ AS 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), + OPERATOR 1 < , + OPERATOR 2 <= , + OPERATOR 3 = , + OPERATOR 4 >= , + OPERATOR 5 > , + FUNCTION 1 gbt_timetz_consistent (internal, timetz, int2, oid, internal), FUNCTION 2 gbt_time_union (bytea, internal), FUNCTION 3 gbt_timetz_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -616,7 +616,7 @@ AS -- -- -CREATE OR REPLACE FUNCTION gbt_date_consistent(internal,date,int2) +CREATE OR REPLACE FUNCTION gbt_date_consistent(internal,date,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -655,7 +655,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_date_consistent (internal, date, int2), + FUNCTION 1 gbt_date_consistent (internal, date, int2, oid, internal), FUNCTION 2 gbt_date_union (bytea, internal), FUNCTION 3 gbt_date_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -673,7 +673,7 @@ AS -- -- -CREATE OR REPLACE FUNCTION gbt_intv_consistent(internal,interval,int2) +CREATE OR REPLACE FUNCTION gbt_intv_consistent(internal,interval,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -717,7 +717,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_intv_consistent (internal, interval, int2), + FUNCTION 1 gbt_intv_consistent (internal, interval, int2, oid, internal), FUNCTION 2 gbt_intv_union (bytea, internal), FUNCTION 3 gbt_intv_compress (internal), FUNCTION 4 gbt_intv_decompress (internal), @@ -734,7 +734,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_cash_consistent(internal,money,int2) +CREATE OR REPLACE FUNCTION gbt_cash_consistent(internal,money,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -773,7 +773,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_cash_consistent (internal, money, int2), + FUNCTION 1 gbt_cash_consistent (internal, money, int2, oid, internal), FUNCTION 2 gbt_cash_union (bytea, internal), FUNCTION 3 gbt_cash_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -790,7 +790,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_macad_consistent(internal,macaddr,int2) +CREATE OR REPLACE FUNCTION gbt_macad_consistent(internal,macaddr,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -829,7 +829,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_macad_consistent (internal, macaddr, int2), + FUNCTION 1 gbt_macad_consistent (internal, macaddr, int2, oid, internal), FUNCTION 2 gbt_macad_union (bytea, internal), FUNCTION 3 gbt_macad_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -848,12 +848,12 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_text_consistent(internal,text,int2) +CREATE OR REPLACE FUNCTION gbt_text_consistent(internal,text,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; -CREATE OR REPLACE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2) +CREATE OR REPLACE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -897,7 +897,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_text_consistent (internal, text, int2), + FUNCTION 1 gbt_text_consistent (internal, text, int2, oid, internal), FUNCTION 2 gbt_text_union (bytea, internal), FUNCTION 3 gbt_text_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -916,7 +916,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_bpchar_consistent (internal, bpchar , int2), + FUNCTION 1 gbt_bpchar_consistent (internal, bpchar , int2, oid, internal), FUNCTION 2 gbt_text_union (bytea, internal), FUNCTION 3 gbt_bpchar_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -934,7 +934,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_bytea_consistent(internal,bytea,int2) +CREATE OR REPLACE FUNCTION gbt_bytea_consistent(internal,bytea,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -973,7 +973,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_bytea_consistent (internal, bytea, int2), + FUNCTION 1 gbt_bytea_consistent (internal, bytea, int2, oid, internal), FUNCTION 2 gbt_bytea_union (bytea, internal), FUNCTION 3 gbt_bytea_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -991,7 +991,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_numeric_consistent(internal,numeric,int2) +CREATE OR REPLACE FUNCTION gbt_numeric_consistent(internal,numeric,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -1030,7 +1030,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_numeric_consistent (internal, numeric, int2), + FUNCTION 1 gbt_numeric_consistent (internal, numeric, int2, oid, internal), FUNCTION 2 gbt_numeric_union (bytea, internal), FUNCTION 3 gbt_numeric_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -1046,7 +1046,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_bit_consistent(internal,bit,int2) +CREATE OR REPLACE FUNCTION gbt_bit_consistent(internal,bit,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -1085,7 +1085,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_bit_consistent (internal, bit, int2), + FUNCTION 1 gbt_bit_consistent (internal, bit, int2, oid, internal), FUNCTION 2 gbt_bit_union (bytea, internal), FUNCTION 3 gbt_bit_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -1104,7 +1104,7 @@ AS OPERATOR 3 = , OPERATOR 4 >= , OPERATOR 5 > , - FUNCTION 1 gbt_bit_consistent (internal, bit, int2), + FUNCTION 1 gbt_bit_consistent (internal, bit, int2, oid, internal), FUNCTION 2 gbt_bit_union (bytea, internal), FUNCTION 3 gbt_bit_compress (internal), FUNCTION 4 gbt_var_decompress (internal), @@ -1123,7 +1123,7 @@ AS -- -- -- define the GiST support methods -CREATE OR REPLACE FUNCTION gbt_inet_consistent(internal,inet,int2) +CREATE OR REPLACE FUNCTION gbt_inet_consistent(internal,inet,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; @@ -1157,12 +1157,12 @@ LANGUAGE C IMMUTABLE; 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), + OPERATOR 1 < , + OPERATOR 2 <= , + OPERATOR 3 = , + OPERATOR 4 >= , + OPERATOR 5 > , + FUNCTION 1 gbt_inet_consistent (internal, inet, int2, oid, internal), FUNCTION 2 gbt_inet_union (bytea, internal), FUNCTION 3 gbt_inet_compress (internal), FUNCTION 4 gbt_decompress (internal), @@ -1175,12 +1175,12 @@ AS CREATE OPERATOR CLASS gist_cidr_ops DEFAULT FOR TYPE cidr USING gist AS - OPERATOR 1 < (inet, inet) RECHECK , - OPERATOR 2 <= (inet, inet) RECHECK , - OPERATOR 3 = (inet, inet) RECHECK , - OPERATOR 4 >= (inet, inet) RECHECK , - OPERATOR 5 > (inet, inet) RECHECK , - FUNCTION 1 gbt_inet_consistent (internal, inet, int2), + OPERATOR 1 < (inet, inet) , + OPERATOR 2 <= (inet, inet) , + OPERATOR 3 = (inet, inet) , + OPERATOR 4 >= (inet, inet) , + OPERATOR 5 > (inet, inet) , + FUNCTION 1 gbt_inet_consistent (internal, inet, int2, oid, internal), FUNCTION 2 gbt_inet_union (bytea, internal), FUNCTION 3 gbt_inet_compress (internal), FUNCTION 4 gbt_decompress (internal), diff --git a/contrib/btree_gist/btree_inet.c b/contrib/btree_gist/btree_inet.c index 914f4f6d5ef..b54e1c112f7 100644 --- a/contrib/btree_gist/btree_inet.c +++ b/contrib/btree_gist/btree_inet.c @@ -115,9 +115,14 @@ gbt_inet_consistent(PG_FUNCTION_ARGS) GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); double query = convert_network_to_scalar(PG_GETARG_DATUM(1), INETOID); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); inetKEY *kkk = (inetKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; + /* All cases served by this function are inexact */ + *recheck = true; + key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_int2.c b/contrib/btree_gist/btree_int2.c index 5e2a66526e5..b129130c2c4 100644 --- a/contrib/btree_gist/btree_int2.c +++ b/contrib/btree_gist/btree_int2.c @@ -100,9 +100,14 @@ gbt_int2_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); int16 query = PG_GETARG_INT16(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); int16KEY *kkk = (int16KEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_int4.c b/contrib/btree_gist/btree_int4.c index 6a69b85bdd9..c07c9a1e2c2 100644 --- a/contrib/btree_gist/btree_int4.c +++ b/contrib/btree_gist/btree_int4.c @@ -95,12 +95,16 @@ gbt_int4_compress(PG_FUNCTION_ARGS) Datum gbt_int4_consistent(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); int32 query = PG_GETARG_INT32(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); int32KEY *kkk = (int32KEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_int8.c b/contrib/btree_gist/btree_int8.c index 83275f2c7a7..3466e1c1156 100644 --- a/contrib/btree_gist/btree_int8.c +++ b/contrib/btree_gist/btree_int8.c @@ -97,9 +97,14 @@ gbt_int8_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); int64 query = PG_GETARG_INT64(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); int64KEY *kkk = (int64KEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_interval.c b/contrib/btree_gist/btree_interval.c index 09c6be5487a..232ba20531f 100644 --- a/contrib/btree_gist/btree_interval.c +++ b/contrib/btree_gist/btree_interval.c @@ -165,9 +165,14 @@ gbt_intv_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); Interval *query = PG_GETARG_INTERVAL_P(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); intvKEY *kkk = (intvKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_macaddr.c b/contrib/btree_gist/btree_macaddr.c index 52cf4cb1d48..5bdc9eb3bd0 100644 --- a/contrib/btree_gist/btree_macaddr.c +++ b/contrib/btree_gist/btree_macaddr.c @@ -116,12 +116,16 @@ gbt_macad_compress(PG_FUNCTION_ARGS) Datum gbt_macad_consistent(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); macaddr *query = (macaddr *) PG_GETARG_POINTER(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); macKEY *kkk = (macKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_numeric.c b/contrib/btree_gist/btree_numeric.c index 639b575cb3f..a1fcf602c0e 100644 --- a/contrib/btree_gist/btree_numeric.c +++ b/contrib/btree_gist/btree_numeric.c @@ -99,14 +99,18 @@ gbt_numeric_compress(PG_FUNCTION_ARGS) Datum gbt_numeric_consistent(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); void *query = (void *) DatumGetNumeric(PG_GETARG_DATUM(1)); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); bool retval; + GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); + /* All cases served by this function are exact */ + *recheck = false; + retval = gbt_var_consistent(&r, query, &strategy, GIST_LEAF(entry), &tinfo); PG_RETURN_BOOL(retval); } diff --git a/contrib/btree_gist/btree_oid.c b/contrib/btree_gist/btree_oid.c index 979d728a73d..119035cad60 100644 --- a/contrib/btree_gist/btree_oid.c +++ b/contrib/btree_gist/btree_oid.c @@ -95,12 +95,16 @@ gbt_oid_compress(PG_FUNCTION_ARGS) Datum gbt_oid_consistent(PG_FUNCTION_ARGS) { - GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); Oid query = PG_GETARG_OID(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); oidKEY *kkk = (oidKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; diff --git a/contrib/btree_gist/btree_text.c b/contrib/btree_gist/btree_text.c index fa4eb904f50..7951d055d3d 100644 --- a/contrib/btree_gist/btree_text.c +++ b/contrib/btree_gist/btree_text.c @@ -130,12 +130,17 @@ Datum gbt_text_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); void *query = (void *) DatumGetTextP(PG_GETARG_DATUM(1)); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); - bool retval = FALSE; + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); + bool retval; + GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); + /* All cases served by this function are exact */ + *recheck = false; + if (tinfo.eml == 0) { tinfo.eml = pg_database_encoding_max_length(); @@ -151,12 +156,17 @@ Datum gbt_bpchar_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); void *query = (void *) DatumGetPointer(PG_DETOAST_DATUM(PG_GETARG_DATUM(1))); - void *trim = (void *) DatumGetPointer(DirectFunctionCall1(rtrim1, PointerGetDatum(query))); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); bool retval; + GBT_VARKEY *key = (GBT_VARKEY *) DatumGetPointer(entry->key); GBT_VARKEY_R r = gbt_var_key_readable(key); + void *trim = (void *) DatumGetPointer(DirectFunctionCall1(rtrim1, PointerGetDatum(query))); + + /* All cases served by this function are exact */ + *recheck = false; if (tinfo.eml == 0) { diff --git a/contrib/btree_gist/btree_time.c b/contrib/btree_gist/btree_time.c index fd5e63e2bbc..6c1ec80a314 100644 --- a/contrib/btree_gist/btree_time.c +++ b/contrib/btree_gist/btree_time.c @@ -151,14 +151,18 @@ gbt_time_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); TimeADT query = PG_GETARG_TIMEADT(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); timeKEY *kkk = (timeKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; - PG_RETURN_BOOL( gbt_num_consistent(&key, (void *) &query, &strategy, GIST_LEAF(entry), &tinfo) ); @@ -170,11 +174,15 @@ gbt_timetz_consistent(PG_FUNCTION_ARGS) GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); TimeTzADT *query = PG_GETARG_TIMETZADT_P(1); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); - + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); timeKEY *kkk = (timeKEY *) DatumGetPointer(entry->key); TimeADT qqq; GBT_NUMKEY_R key; + /* All cases served by this function are inexact */ + *recheck = true; + #ifdef HAVE_INT64_TIMESTAMP qqq = query->time + (query->zone * INT64CONST(1000000)); #else diff --git a/contrib/btree_gist/btree_ts.c b/contrib/btree_gist/btree_ts.c index 9a7d6505279..606a986a70d 100644 --- a/contrib/btree_gist/btree_ts.c +++ b/contrib/btree_gist/btree_ts.c @@ -173,9 +173,14 @@ gbt_ts_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); Timestamp *query = (Timestamp *) PG_GETARG_POINTER(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); tsKEY *kkk = (tsKEY *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + + /* All cases served by this function are exact */ + *recheck = false; key.lower = (GBT_NUMKEY *) & kkk->lower; key.upper = (GBT_NUMKEY *) & kkk->upper; @@ -190,11 +195,16 @@ gbt_tstz_consistent(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); TimestampTz *query = (Timestamp *) PG_GETARG_POINTER(1); + StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); + /* Oid subtype = PG_GETARG_OID(3); */ + bool *recheck = (bool *) PG_GETARG_POINTER(4); char *kkk = (char *) DatumGetPointer(entry->key); GBT_NUMKEY_R key; - StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); Timestamp qqq; + /* All cases served by this function are exact */ + *recheck = false; + key.lower = (GBT_NUMKEY *) & kkk[0]; key.upper = (GBT_NUMKEY *) & kkk[MAXALIGN(tinfo.size)]; tstz_to_ts_gmt(&qqq, query); diff --git a/contrib/btree_gist/uninstall_btree_gist.sql b/contrib/btree_gist/uninstall_btree_gist.sql index aee0edd4026..9e71819e1aa 100644 --- a/contrib/btree_gist/uninstall_btree_gist.sql +++ b/contrib/btree_gist/uninstall_btree_gist.sql @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/btree_gist/uninstall_btree_gist.sql,v 1.4 2007/11/13 04:24:27 momjian Exp $ */ +/* $PostgreSQL: pgsql/contrib/btree_gist/uninstall_btree_gist.sql,v 1.5 2008/04/14 17:05:32 tgl Exp $ */ -- Adjust this setting to control where the objects get dropped. SET search_path = public; @@ -17,7 +17,7 @@ DROP FUNCTION gbt_inet_penalty(internal,internal,internal); DROP FUNCTION gbt_inet_compress(internal); -DROP FUNCTION gbt_inet_consistent(internal,inet,int2); +DROP FUNCTION gbt_inet_consistent(internal,inet,int2,oid,internal); DROP OPERATOR CLASS gist_vbit_ops USING gist; @@ -33,7 +33,7 @@ DROP FUNCTION gbt_bit_penalty(internal,internal,internal); DROP FUNCTION gbt_bit_compress(internal); -DROP FUNCTION gbt_bit_consistent(internal,bit,int2); +DROP FUNCTION gbt_bit_consistent(internal,bit,int2,oid,internal); DROP OPERATOR CLASS gist_numeric_ops USING gist; @@ -47,7 +47,7 @@ DROP FUNCTION gbt_numeric_penalty(internal,internal,internal); DROP FUNCTION gbt_numeric_compress(internal); -DROP FUNCTION gbt_numeric_consistent(internal,numeric,int2); +DROP FUNCTION gbt_numeric_consistent(internal,numeric,int2,oid,internal); DROP OPERATOR CLASS gist_bytea_ops USING gist; @@ -61,7 +61,7 @@ DROP FUNCTION gbt_bytea_penalty(internal,internal,internal); DROP FUNCTION gbt_bytea_compress(internal); -DROP FUNCTION gbt_bytea_consistent(internal,bytea,int2); +DROP FUNCTION gbt_bytea_consistent(internal,bytea,int2,oid,internal); DROP OPERATOR CLASS gist_bpchar_ops USING gist; @@ -79,9 +79,9 @@ DROP FUNCTION gbt_bpchar_compress(internal); DROP FUNCTION gbt_text_compress(internal); -DROP FUNCTION gbt_bpchar_consistent(internal,bpchar,int2); +DROP FUNCTION gbt_bpchar_consistent(internal,bpchar,int2,oid,internal); -DROP FUNCTION gbt_text_consistent(internal,text,int2); +DROP FUNCTION gbt_text_consistent(internal,text,int2,oid,internal); DROP OPERATOR CLASS gist_macaddr_ops USING gist; @@ -95,7 +95,7 @@ DROP FUNCTION gbt_macad_penalty(internal,internal,internal); DROP FUNCTION gbt_macad_compress(internal); -DROP FUNCTION gbt_macad_consistent(internal,macaddr,int2); +DROP FUNCTION gbt_macad_consistent(internal,macaddr,int2,oid,internal); DROP OPERATOR CLASS gist_cash_ops USING gist; @@ -109,7 +109,7 @@ DROP FUNCTION gbt_cash_penalty(internal,internal,internal); DROP FUNCTION gbt_cash_compress(internal); -DROP FUNCTION gbt_cash_consistent(internal,money,int2); +DROP FUNCTION gbt_cash_consistent(internal,money,int2,oid,internal); DROP OPERATOR CLASS gist_interval_ops USING gist; @@ -125,7 +125,7 @@ DROP FUNCTION gbt_intv_decompress(internal); DROP FUNCTION gbt_intv_compress(internal); -DROP FUNCTION gbt_intv_consistent(internal,interval,int2); +DROP FUNCTION gbt_intv_consistent(internal,interval,int2,oid,internal); DROP OPERATOR CLASS gist_date_ops USING gist; @@ -139,7 +139,7 @@ DROP FUNCTION gbt_date_penalty(internal,internal,internal); DROP FUNCTION gbt_date_compress(internal); -DROP FUNCTION gbt_date_consistent(internal,date,int2); +DROP FUNCTION gbt_date_consistent(internal,date,int2,oid,internal); DROP OPERATOR CLASS gist_timetz_ops USING gist; @@ -157,9 +157,9 @@ DROP FUNCTION gbt_timetz_compress(internal); DROP FUNCTION gbt_time_compress(internal); -DROP FUNCTION gbt_timetz_consistent(internal,timetz,int2); +DROP FUNCTION gbt_timetz_consistent(internal,timetz,int2,oid,internal); -DROP FUNCTION gbt_time_consistent(internal,time,int2); +DROP FUNCTION gbt_time_consistent(internal,time,int2,oid,internal); DROP OPERATOR CLASS gist_timestamptz_ops USING gist; @@ -177,9 +177,9 @@ DROP FUNCTION gbt_tstz_compress(internal); DROP FUNCTION gbt_ts_compress(internal); -DROP FUNCTION gbt_tstz_consistent(internal,timestamptz,int2); +DROP FUNCTION gbt_tstz_consistent(internal,timestamptz,int2,oid,internal); -DROP FUNCTION gbt_ts_consistent(internal,timestamp,int2); +DROP FUNCTION gbt_ts_consistent(internal,timestamp,int2,oid,internal); DROP OPERATOR CLASS gist_float8_ops USING gist; @@ -193,7 +193,7 @@ DROP FUNCTION gbt_float8_penalty(internal,internal,internal); DROP FUNCTION gbt_float8_compress(internal); -DROP FUNCTION gbt_float8_consistent(internal,float8,int2); +DROP FUNCTION gbt_float8_consistent(internal,float8,int2,oid,internal); DROP OPERATOR CLASS gist_float4_ops USING gist; @@ -207,7 +207,7 @@ DROP FUNCTION gbt_float4_penalty(internal,internal,internal); DROP FUNCTION gbt_float4_compress(internal); -DROP FUNCTION gbt_float4_consistent(internal,float4,int2); +DROP FUNCTION gbt_float4_consistent(internal,float4,int2,oid,internal); DROP OPERATOR CLASS gist_int8_ops USING gist; @@ -221,7 +221,7 @@ DROP FUNCTION gbt_int8_penalty(internal,internal,internal); DROP FUNCTION gbt_int8_compress(internal); -DROP FUNCTION gbt_int8_consistent(internal,int8,int2); +DROP FUNCTION gbt_int8_consistent(internal,int8,int2,oid,internal); DROP OPERATOR CLASS gist_int4_ops USING gist; @@ -235,7 +235,7 @@ DROP FUNCTION gbt_int4_penalty(internal,internal,internal); DROP FUNCTION gbt_int4_compress(internal); -DROP FUNCTION gbt_int4_consistent(internal,int4,int2); +DROP FUNCTION gbt_int4_consistent(internal,int4,int2,oid,internal); DROP OPERATOR CLASS gist_int2_ops USING gist; @@ -249,7 +249,7 @@ DROP FUNCTION gbt_int2_penalty(internal,internal,internal); DROP FUNCTION gbt_int2_compress(internal); -DROP FUNCTION gbt_int2_consistent(internal,int2,int2); +DROP FUNCTION gbt_int2_consistent(internal,int2,int2,oid,internal); DROP OPERATOR CLASS gist_oid_ops USING gist; @@ -267,7 +267,7 @@ DROP FUNCTION gbt_decompress(internal); DROP FUNCTION gbt_oid_compress(internal); -DROP FUNCTION gbt_oid_consistent(internal,oid,int2); +DROP FUNCTION gbt_oid_consistent(internal,oid,int2,oid,internal); DROP TYPE gbtreekey_var CASCADE; |