mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Update /contrib for "autocommit TO 'on'".
Create objects in public schema. Make spacing/capitalization consistent. Remove transaction block use for object creation. Remove unneeded function GRANTs.
This commit is contained 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;
|
||||
|
@ -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
|
||||
|
@ -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';
|
||||
|
||||
|
Reference in New Issue
Block a user