From d94582f4f8a06e08c8b054d332174165de6e40a6 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 11 Jun 2009 18:30:03 +0000 Subject: [PATCH] Mark contrib's GiST and GIN opclass support functions as STRICT, for safety. (Note: GiST penalty functions could possibly be non-strict, but none are at present.) --- contrib/btree_gist/btree_gist.sql.in | 190 +++++++++++++-------------- contrib/cube/cube.sql.in | 14 +- contrib/hstore/hstore.sql.in | 22 ++-- contrib/intarray/_int.sql.in | 30 ++--- contrib/ltree/ltree.sql.in | 24 ++-- contrib/pg_trgm/pg_trgm.sql.in | 22 ++-- contrib/seg/seg.sql.in | 16 +-- 7 files changed, 159 insertions(+), 159 deletions(-) diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in index f9007cb92c..e78c83cdc2 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.20 2008/04/14 17:05:31 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/btree_gist/btree_gist.sql.in,v 1.21 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -97,22 +97,22 @@ CREATE TYPE gbtreekey_var ( CREATE OR REPLACE FUNCTION gbt_oid_consistent(internal,oid,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_oid_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_var_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_oid_penalty(internal,internal,internal) RETURNS internal @@ -122,17 +122,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_oid_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_oid_union(bytea, internal) RETURNS gbtreekey8 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_oid_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_oid_ops @@ -164,12 +164,12 @@ AS CREATE OR REPLACE FUNCTION gbt_int2_consistent(internal,int2,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int2_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int2_penalty(internal,internal,internal) RETURNS internal @@ -179,17 +179,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int2_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int2_union(bytea, internal) RETURNS gbtreekey4 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int2_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_int2_ops @@ -220,12 +220,12 @@ AS CREATE OR REPLACE FUNCTION gbt_int4_consistent(internal,int4,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int4_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int4_penalty(internal,internal,internal) RETURNS internal @@ -235,17 +235,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int4_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int4_union(bytea, internal) RETURNS gbtreekey8 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int4_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_int4_ops @@ -276,12 +276,12 @@ AS CREATE OR REPLACE FUNCTION gbt_int8_consistent(internal,int8,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int8_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int8_penalty(internal,internal,internal) RETURNS internal @@ -291,17 +291,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int8_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int8_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_int8_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_int8_ops @@ -333,12 +333,12 @@ AS CREATE OR REPLACE FUNCTION gbt_float4_consistent(internal,float4,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float4_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float4_penalty(internal,internal,internal) RETURNS internal @@ -348,17 +348,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float4_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float4_union(bytea, internal) RETURNS gbtreekey8 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float4_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_float4_ops @@ -392,12 +392,12 @@ AS CREATE OR REPLACE FUNCTION gbt_float8_consistent(internal,float8,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float8_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float8_penalty(internal,internal,internal) RETURNS internal @@ -407,17 +407,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float8_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float8_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_float8_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_float8_ops @@ -449,22 +449,22 @@ AS CREATE OR REPLACE FUNCTION gbt_ts_consistent(internal,timestamp,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_ts_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_tstz_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_ts_penalty(internal,internal,internal) RETURNS internal @@ -474,17 +474,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_ts_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_ts_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_ts_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_timestamp_ops @@ -535,22 +535,22 @@ AS CREATE OR REPLACE FUNCTION gbt_time_consistent(internal,time,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_timetz_consistent(internal,timetz,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_time_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_timetz_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_time_penalty(internal,internal,internal) RETURNS internal @@ -560,17 +560,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_time_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_time_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_time_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_time_ops @@ -619,12 +619,12 @@ AS CREATE OR REPLACE FUNCTION gbt_date_consistent(internal,date,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_date_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_date_penalty(internal,internal,internal) RETURNS internal @@ -634,17 +634,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_date_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_date_union(bytea, internal) RETURNS gbtreekey8 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_date_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_date_ops @@ -676,17 +676,17 @@ AS CREATE OR REPLACE FUNCTION gbt_intv_consistent(internal,interval,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_penalty(internal,internal,internal) RETURNS internal @@ -696,17 +696,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_union(bytea, internal) RETURNS gbtreekey32 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_intv_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_interval_ops @@ -737,12 +737,12 @@ AS CREATE OR REPLACE FUNCTION gbt_cash_consistent(internal,money,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_cash_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_cash_penalty(internal,internal,internal) RETURNS internal @@ -752,17 +752,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_cash_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_cash_union(bytea, internal) RETURNS gbtreekey8 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_cash_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_cash_ops @@ -793,12 +793,12 @@ AS CREATE OR REPLACE FUNCTION gbt_macad_consistent(internal,macaddr,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_macad_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_macad_penalty(internal,internal,internal) RETURNS internal @@ -808,17 +808,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_macad_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_macad_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_macad_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_macaddr_ops @@ -851,22 +851,22 @@ AS CREATE OR REPLACE FUNCTION gbt_text_consistent(internal,text,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_text_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bpchar_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_text_penalty(internal,internal,internal) RETURNS internal @@ -876,17 +876,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_text_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_text_union(bytea, internal) RETURNS gbtreekey_var AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_text_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_text_ops @@ -937,12 +937,12 @@ AS CREATE OR REPLACE FUNCTION gbt_bytea_consistent(internal,bytea,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bytea_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bytea_penalty(internal,internal,internal) RETURNS internal @@ -952,17 +952,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bytea_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bytea_union(bytea, internal) RETURNS gbtreekey_var AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bytea_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_bytea_ops @@ -994,12 +994,12 @@ AS CREATE OR REPLACE FUNCTION gbt_numeric_consistent(internal,numeric,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_numeric_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_numeric_penalty(internal,internal,internal) RETURNS internal @@ -1009,17 +1009,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_numeric_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_numeric_union(bytea, internal) RETURNS gbtreekey_var AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_numeric_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_numeric_ops @@ -1049,12 +1049,12 @@ AS CREATE OR REPLACE FUNCTION gbt_bit_consistent(internal,bit,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bit_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bit_penalty(internal,internal,internal) RETURNS internal @@ -1064,17 +1064,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bit_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bit_union(bytea, internal) RETURNS gbtreekey_var AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_bit_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_bit_ops @@ -1126,12 +1126,12 @@ AS CREATE OR REPLACE FUNCTION gbt_inet_consistent(internal,inet,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_inet_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_inet_penalty(internal,internal,internal) RETURNS internal @@ -1141,17 +1141,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_inet_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_inet_union(bytea, internal) RETURNS gbtreekey16 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gbt_inet_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class CREATE OPERATOR CLASS gist_inet_ops diff --git a/contrib/cube/cube.sql.in b/contrib/cube/cube.sql.in index cd3713d323..41f493ed41 100644 --- a/contrib/cube/cube.sql.in +++ b/contrib/cube/cube.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/cube/cube.sql.in,v 1.24 2008/04/14 17:05:32 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/cube/cube.sql.in,v 1.25 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -265,17 +265,17 @@ CREATE OPERATOR ~ ( CREATE OR REPLACE FUNCTION g_cube_consistent(internal,cube,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_penalty(internal,internal,internal) RETURNS internal @@ -285,17 +285,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_union(internal, internal) RETURNS cube AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_cube_same(cube, cube, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator classes for indexing diff --git a/contrib/hstore/hstore.sql.in b/contrib/hstore/hstore.sql.in index 3487a48459..29a78ed052 100644 --- a/contrib/hstore/hstore.sql.in +++ b/contrib/hstore/hstore.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/hstore/hstore.sql.in,v 1.10 2009/03/25 22:19:01 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/hstore/hstore.sql.in,v 1.11 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -127,7 +127,7 @@ CREATE OPERATOR ~ ( CREATE OR REPLACE FUNCTION tconvert(text,text) RETURNS hstore AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE; -- not STRICT CREATE OPERATOR => ( LEFTARG = text, @@ -187,12 +187,12 @@ CREATE TYPE ghstore ( CREATE OR REPLACE FUNCTION ghstore_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_penalty(internal,internal,internal) RETURNS internal @@ -202,22 +202,22 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_union(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ghstore_consistent(internal,internal,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- register the opclass for indexing (not as default) CREATE OPERATOR CLASS gist_hstore_ops @@ -242,17 +242,17 @@ AS CREATE OR REPLACE FUNCTION gin_extract_hstore(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gin_extract_hstore_query(internal, internal, int2, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gin_consistent_hstore(internal, int2, internal, int4, internal, internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OPERATOR CLASS gin_hstore_ops DEFAULT FOR TYPE hstore USING gin diff --git a/contrib/intarray/_int.sql.in b/contrib/intarray/_int.sql.in index 645e9aeea2..960d81a638 100644 --- a/contrib/intarray/_int.sql.in +++ b/contrib/intarray/_int.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/intarray/_int.sql.in,v 1.31 2009/06/07 20:09:34 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/intarray/_int.sql.in,v 1.32 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -326,17 +326,17 @@ CREATE OPERATOR & ( CREATE OR REPLACE FUNCTION g_int_consistent(internal,_int4,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_penalty(internal,internal,internal) RETURNS internal @@ -346,17 +346,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_union(internal, internal) RETURNS _int4 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_int_same(_int4, _int4, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator class for indexing @@ -403,17 +403,17 @@ CREATE TYPE intbig_gkey ( CREATE OR REPLACE FUNCTION g_intbig_consistent(internal,internal,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_penalty(internal,internal,internal) RETURNS internal @@ -423,17 +423,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_union(internal, internal) RETURNS _int4 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION g_intbig_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- register the opclass for indexing (not as default) @@ -461,12 +461,12 @@ AS CREATE OR REPLACE FUNCTION ginint4_queryextract(internal, internal, int2, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ginint4_consistent(internal, int2, internal, int4, internal, internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OPERATOR CLASS gin__int_ops FOR TYPE _int4 USING gin diff --git a/contrib/ltree/ltree.sql.in b/contrib/ltree/ltree.sql.in index 4d378823ca..364c44db1b 100644 --- a/contrib/ltree/ltree.sql.in +++ b/contrib/ltree/ltree.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/ltree/ltree.sql.in,v 1.17 2008/04/14 17:05:32 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/ltree/ltree.sql.in,v 1.18 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -497,25 +497,25 @@ CREATE TYPE ltree_gist ( CREATE OR REPLACE FUNCTION ltree_consistent(internal,internal,int2,oid,internal) -RETURNS bool as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS bool as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_compress(internal) -RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_decompress(internal) -RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_penalty(internal,internal,internal) RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_picksplit(internal, internal) -RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_union(internal, internal) -RETURNS int4 as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS int4 as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION ltree_same(internal, internal, internal) -RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE; +RETURNS internal as 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OPERATOR CLASS gist_ltree_ops DEFAULT FOR TYPE ltree USING gist AS @@ -825,12 +825,12 @@ CREATE OPERATOR ?@ ( CREATE OR REPLACE FUNCTION _ltree_consistent(internal,internal,int2,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION _ltree_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION _ltree_penalty(internal,internal,internal) RETURNS internal @@ -840,17 +840,17 @@ LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION _ltree_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION _ltree_union(internal, internal) RETURNS int4 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION _ltree_same(internal, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OPERATOR CLASS gist__ltree_ops DEFAULT FOR TYPE _ltree USING gist AS diff --git a/contrib/pg_trgm/pg_trgm.sql.in b/contrib/pg_trgm/pg_trgm.sql.in index f59ea1ba85..5396b52b1b 100644 --- a/contrib/pg_trgm/pg_trgm.sql.in +++ b/contrib/pg_trgm/pg_trgm.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/pg_trgm/pg_trgm.sql.in,v 1.9 2009/03/25 22:19:01 tgl Exp $ */ +/* $PostgreSQL: pgsql/contrib/pg_trgm/pg_trgm.sql.in,v 1.10 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -58,37 +58,37 @@ CREATE TYPE gtrgm ( CREATE OR REPLACE FUNCTION gtrgm_consistent(internal,text,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_union(bytea, internal) RETURNS _int4 AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gtrgm_same(gtrgm, gtrgm, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- create the operator class for gist CREATE OPERATOR CLASS gist_trgm_ops @@ -108,17 +108,17 @@ AS CREATE OR REPLACE FUNCTION gin_extract_trgm(text, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gin_extract_trgm(text, internal, int2, internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gin_trgm_consistent(internal, int2, text, int4, internal, internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- create the operator class for gin CREATE OPERATOR CLASS gin_trgm_ops diff --git a/contrib/seg/seg.sql.in b/contrib/seg/seg.sql.in index ae71929a73..5dac75374b 100644 --- a/contrib/seg/seg.sql.in +++ b/contrib/seg/seg.sql.in @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/seg/seg.sql.in,v 1.18 2008/04/18 18:43:08 alvherre Exp $ */ +/* $PostgreSQL: pgsql/contrib/seg/seg.sql.in,v 1.19 2009/06/11 18:30:03 tgl Exp $ */ -- Adjust this setting to control where the objects get created. SET search_path = public; @@ -330,37 +330,37 @@ CREATE OPERATOR ~ ( CREATE OR REPLACE FUNCTION gseg_consistent(internal,seg,int,oid,internal) RETURNS bool AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_union(internal, internal) RETURNS seg AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION gseg_same(seg, seg, internal) RETURNS internal AS 'MODULE_PATHNAME' -LANGUAGE C IMMUTABLE; +LANGUAGE C IMMUTABLE STRICT; -- Create the operator classes for indexing