diff options
Diffstat (limited to 'contrib/btree_gist')
-rw-r--r-- | contrib/btree_gist/btree_gist.sql.in | 98 | ||||
-rw-r--r-- | contrib/btree_gist/expected/btree_gist.out | 18 | ||||
-rw-r--r-- | contrib/btree_gist/sql/btree_gist.sql | 19 |
3 files changed, 87 insertions, 48 deletions
diff --git a/contrib/btree_gist/btree_gist.sql.in b/contrib/btree_gist/btree_gist.sql.in index a60a7c2706f..be3c979a6c3 100644 --- a/contrib/btree_gist/btree_gist.sql.in +++ b/contrib/btree_gist/btree_gist.sql.in @@ -1,23 +1,23 @@ -begin transaction; - -- Adjust this setting to control where the objects get created. SET search_path = public; +SET autocommit TO 'on'; + -- create type of int4 key CREATE FUNCTION int4key_in(cstring) RETURNS int4key AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'c' WITH (isstrict); CREATE FUNCTION int4key_out(int4key) RETURNS cstring AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'c' WITH (isstrict); CREATE TYPE int4key ( -internallength = 8, -input = int4key_in, -output = int4key_out +INTERNALLENGTH = 8, +INPUT = int4key_in, +OUTPUT = int4key_out ); @@ -29,23 +29,45 @@ output = int4key_out -- -- -- define the GiST support methods -create function gint4_consistent(internal,int4,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gint4_consistent(internal,int4,int2) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gint4_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gint4_compress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function btree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION btree_decompress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gint4_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); +CREATE FUNCTION gint4_penalty(internal,internal,internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C' WITH (isstrict); -create function gint4_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gint4_picksplit(internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gint4_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gint4_union(bytea, internal) +RETURNS int4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gint4_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gint4_same(internal, internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -- Create the operator class CREATE OPERATOR CLASS gist_int4_ops - DEFAULT FOR TYPE int4 USING gist AS +DEFAULT FOR TYPE int4 USING gist +AS OPERATOR 1 < , OPERATOR 2 <= , OPERATOR 3 = , @@ -73,34 +95,53 @@ CREATE OPERATOR CLASS gist_int4_ops CREATE FUNCTION tskey_in(cstring) RETURNS tskey AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'c' WITH (isstrict); CREATE FUNCTION tskey_out(tskey) RETURNS cstring AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'c' WITH (isstrict); CREATE TYPE tskey ( -internallength = 16, -input = tskey_in, -output = tskey_out +INTERNALLENGTH = 16, +INPUT = tskey_in, +OUTPUT = tskey_out ); -create function gts_consistent(internal,timestamp,int2) returns bool as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gts_consistent(internal,timestamp,int2) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gts_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gts_compress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gts_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with(isstrict); +CREATE FUNCTION gts_penalty(internal,internal,internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C' WITH (isstrict); -create function gts_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gts_picksplit(internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gts_union(bytea, internal) returns int4 as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gts_union(bytea, internal) +RETURNS int4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -create function gts_same(internal, internal, internal) returns internal as 'MODULE_PATHNAME' language 'C'; +CREATE FUNCTION gts_same(internal, internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -- Create the operator class CREATE OPERATOR CLASS gist_timestamp_ops - DEFAULT FOR TYPE timestamp USING gist AS +DEFAULT FOR TYPE timestamp USING gist +AS OPERATOR 1 < , OPERATOR 2 <= , OPERATOR 3 = , @@ -114,6 +155,3 @@ CREATE OPERATOR CLASS gist_timestamp_ops FUNCTION 6 gts_picksplit (internal, internal), FUNCTION 7 gts_same (internal, internal, internal), STORAGE tskey; - - -end transaction; diff --git a/contrib/btree_gist/expected/btree_gist.out b/contrib/btree_gist/expected/btree_gist.out index ab6a789f615..eb67c2e7f73 100644 --- a/contrib/btree_gist/expected/btree_gist.out +++ b/contrib/btree_gist/expected/btree_gist.out @@ -7,35 +7,35 @@ psql:btree_gist.sql:10: WARNING: ProcedureCreate: type int4key is not yet defin psql:btree_gist.sql:15: WARNING: Argument type "int4key" is only a shell psql:btree_gist.sql:76: WARNING: ProcedureCreate: type tskey is not yet defined psql:btree_gist.sql:81: WARNING: Argument type "tskey" is only a shell -create table inttmp (b int4); +CREATE TABLE inttmp (b int4); \copy inttmp from 'data/test_btree.data' -create table tstmp ( t timestamp without time zone ); +CREATE TABLE tstmp ( t timestamp without time zone ); \copy tstmp from 'data/test_btree_ts.data' -- without idx -select count(*) from inttmp where b <=10; +SELECT count(*) FROM inttmp WHERE b <=10; count ------- 11 (1 row) -select count(*) from tstmp where t < '2001-05-29 08:33:09'; +SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09'; count ------- 66 (1 row) -- create idx -create index aaaidx on inttmp using gist ( b ); -create index tsidx on tstmp using gist ( t ); +CREATE INDEX aaaidx ON inttmp USING gist ( b ); +CREATE INDEX tsidx ON tstmp USING gist ( t ); --with idx -set enable_seqscan=off; -select count(*) from inttmp where b <=10; +SET enable_seqscan=off; +SELECT count(*) FROM inttmp WHERE b <=10; count ------- 11 (1 row) -select count(*) from tstmp where t < '2001-05-29 08:33:09'; +SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09'; count ------- 66 diff --git a/contrib/btree_gist/sql/btree_gist.sql b/contrib/btree_gist/sql/btree_gist.sql index 31c778b7471..d6e564dda36 100644 --- a/contrib/btree_gist/sql/btree_gist.sql +++ b/contrib/btree_gist/sql/btree_gist.sql @@ -3,34 +3,35 @@ -- does not depend on contents of seg.sql. -- \set ECHO none +SET autocommit TO 'on'; \i btree_gist.sql \set ECHO all -create table inttmp (b int4); +CREATE TABLE inttmp (b int4); \copy inttmp from 'data/test_btree.data' -create table tstmp ( t timestamp without time zone ); +CREATE TABLE tstmp ( t timestamp without time zone ); \copy tstmp from 'data/test_btree_ts.data' -- without idx -select count(*) from inttmp where b <=10; +SELECT count(*) FROM inttmp WHERE b <=10; -select count(*) from tstmp where t < '2001-05-29 08:33:09'; +SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09'; -- create idx -create index aaaidx on inttmp using gist ( b ); +CREATE INDEX aaaidx ON inttmp USING gist ( b ); -create index tsidx on tstmp using gist ( t ); +CREATE INDEX tsidx ON tstmp USING gist ( t ); --with idx -set enable_seqscan=off; +SET enable_seqscan=off; -select count(*) from inttmp where b <=10; +SELECT count(*) FROM inttmp WHERE b <=10; -select count(*) from tstmp where t < '2001-05-29 08:33:09'; +SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09'; |