mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +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:
@ -25,6 +25,20 @@ EOT
|
||||
$opt{d} ||= 'TEST';
|
||||
my $dbi=DBI->connect('DBI:Pg:dbname='.$opt{d}) || die "Couldn't connect DB: $opt{d} !\n";
|
||||
|
||||
my $setsql = qq{
|
||||
SET search_path = public;
|
||||
};
|
||||
|
||||
my $sth = $dbi->prepare($setsql);
|
||||
$sth->execute();
|
||||
|
||||
my $setsql2 = qq{
|
||||
SET autocommit TO 'on';
|
||||
};
|
||||
|
||||
my $sth2 = $dbi->prepare($setsql2);
|
||||
$sth2->execute();
|
||||
|
||||
my $sql;
|
||||
my $notice;
|
||||
my $sss = '(3000,3000,2990,2990)';
|
||||
|
@ -2,11 +2,11 @@
|
||||
use strict;
|
||||
|
||||
my $NUM = 20000;
|
||||
print "drop table boxtmp;\n";
|
||||
print "drop table boxtmp2;\n";
|
||||
print "DROP TABLE boxtmp;\n";
|
||||
print "DROP TABLE boxtmp2;\n";
|
||||
|
||||
print "create table boxtmp (b box);\n";
|
||||
print "create table boxtmp2 (b box);\n";
|
||||
print "CREATE TABLE boxtmp (b box);\n";
|
||||
print "CREATE TABLE boxtmp2 (b box);\n";
|
||||
|
||||
srand(1);
|
||||
open(DAT,">bbb.dat") || die;
|
||||
@ -26,20 +26,20 @@ foreach ( 1..$NUM ) {
|
||||
}
|
||||
close DAT;
|
||||
|
||||
print "copy boxtmp from stdin;\n";
|
||||
print "COPY boxtmp FROM stdin;\n";
|
||||
open(DAT,"bbb.dat") || die;
|
||||
while(<DAT>) { print; }
|
||||
close DAT;
|
||||
print "\\.\n";
|
||||
|
||||
print "copy boxtmp2 from stdin;\n";
|
||||
print "COPY boxtmp2 FROM stdin;\n";
|
||||
open(DAT,"bbb.dat") || die;
|
||||
while(<DAT>) { print; }
|
||||
close DAT;
|
||||
print "\\.\n";
|
||||
|
||||
print "create index bix on boxtmp using gist (b gist_box_ops);\n";
|
||||
print "create index bix2 on boxtmp2 using rtree (b box_ops);\n";
|
||||
print "CREATE INDEX bix ON boxtmp USING gist (b gist_box_ops);\n";
|
||||
print "CREATE INDEX bix2 ON boxtmp2 USING rtree (b box_ops);\n";
|
||||
|
||||
|
||||
sub min {
|
||||
|
@ -3,41 +3,51 @@
|
||||
-- does not depend on contents of seg.sql.
|
||||
--
|
||||
\set ECHO none
|
||||
create table boxtmp (b box);
|
||||
CREATE TABLE boxtmp (b box);
|
||||
\copy boxtmp from 'data/test_box.data'
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
count
|
||||
-------
|
||||
2
|
||||
(1 row)
|
||||
|
||||
create index bix on boxtmp using rtree (b);
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
CREATE INDEX bix ON boxtmp USING rtree (b);
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
count
|
||||
-------
|
||||
2
|
||||
(1 row)
|
||||
|
||||
drop index bix;
|
||||
create index bix on boxtmp using gist (b);
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
DROP INDEX bix;
|
||||
CREATE INDEX bix ON boxtmp USING gist (b);
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
count
|
||||
-------
|
||||
2
|
||||
(1 row)
|
||||
|
||||
create table polytmp (p polygon);
|
||||
CREATE TABLE polytmp (p polygon);
|
||||
\copy polytmp from 'data/test_box.data'
|
||||
create index pix on polytmp using rtree (p);
|
||||
select count(*) from polytmp where p && '(1000,1000),(0,0)'::polygon;
|
||||
CREATE INDEX pix ON polytmp USING rtree (p);
|
||||
SELECT count(*)
|
||||
FROM polytmp
|
||||
WHERE p && '(1000,1000),(0,0)'::polygon;
|
||||
count
|
||||
-------
|
||||
2
|
||||
(1 row)
|
||||
|
||||
drop index pix;
|
||||
create index pix on polytmp using gist (p);
|
||||
select count(*) from polytmp where p && '(1000,1000),(0,0)'::polygon;
|
||||
DROP INDEX pix;
|
||||
CREATE INDEX pix ON polytmp USING gist (p);
|
||||
SELECT count(*)
|
||||
FROM polytmp
|
||||
WHERE p && '(1000,1000),(0,0)'::polygon;
|
||||
count
|
||||
-------
|
||||
2
|
||||
|
@ -1,8 +1,8 @@
|
||||
begin transaction;
|
||||
|
||||
-- Adjust this setting to control where the objects get created.
|
||||
SET search_path = public;
|
||||
|
||||
SET autocommit TO 'on';
|
||||
|
||||
--
|
||||
--
|
||||
--
|
||||
@ -11,23 +11,45 @@ SET search_path = public;
|
||||
--
|
||||
--
|
||||
-- define the GiST support methods
|
||||
create function gbox_consistent(internal,box,int4) returns bool as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gbox_consistent(internal,box,int4)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function gbox_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gbox_compress(internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function rtree_decompress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION rtree_decompress(internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function gbox_penalty(internal,internal,internal) returns internal as 'MODULE_PATHNAME' language 'C' with (isstrict);
|
||||
CREATE FUNCTION gbox_penalty(internal,internal,internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C' with (isstrict);
|
||||
|
||||
create function gbox_picksplit(internal, internal) returns internal as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gbox_picksplit(internal, internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function gbox_union(bytea, internal) returns box as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gbox_union(bytea, internal)
|
||||
RETURNS box
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function gbox_same(box, box, internal) returns internal as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gbox_same(box, box, internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
-- create the operator class
|
||||
CREATE OPERATOR CLASS gist_box_ops
|
||||
DEFAULT FOR TYPE box USING gist AS
|
||||
DEFAULT FOR TYPE box USING gist
|
||||
AS
|
||||
OPERATOR 1 << ,
|
||||
OPERATOR 2 &< ,
|
||||
OPERATOR 3 && ,
|
||||
@ -53,21 +75,28 @@ CREATE OPERATOR CLASS gist_box_ops
|
||||
--
|
||||
--
|
||||
-- define the GiST support methods
|
||||
create function gpoly_consistent(internal,polygon,int4) returns bool as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gpoly_consistent(internal,polygon,int4)
|
||||
RETURNS bool
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
create function gpoly_compress(internal) returns internal as 'MODULE_PATHNAME' language 'C';
|
||||
CREATE FUNCTION gpoly_compress(internal)
|
||||
RETURNS internal
|
||||
AS 'MODULE_PATHNAME'
|
||||
LANGUAGE 'C';
|
||||
|
||||
-- create the operator class
|
||||
CREATE OPERATOR CLASS gist_poly_ops
|
||||
DEFAULT FOR TYPE polygon USING gist AS
|
||||
OPERATOR 1 << RECHECK ,
|
||||
OPERATOR 2 &< RECHECK ,
|
||||
OPERATOR 3 && RECHECK ,
|
||||
OPERATOR 4 &> RECHECK ,
|
||||
OPERATOR 5 >> RECHECK ,
|
||||
OPERATOR 6 ~= RECHECK ,
|
||||
OPERATOR 7 ~ RECHECK ,
|
||||
OPERATOR 8 @ RECHECK ,
|
||||
DEFAULT FOR TYPE polygon USING gist
|
||||
AS
|
||||
OPERATOR 1 << RECHECK,
|
||||
OPERATOR 2 &< RECHECK,
|
||||
OPERATOR 3 && RECHECK,
|
||||
OPERATOR 4 &> RECHECK,
|
||||
OPERATOR 5 >> RECHECK,
|
||||
OPERATOR 6 ~= RECHECK,
|
||||
OPERATOR 7 ~ RECHECK,
|
||||
OPERATOR 8 @ RECHECK,
|
||||
FUNCTION 1 gpoly_consistent (internal, polygon, int4),
|
||||
FUNCTION 2 gbox_union (bytea, internal),
|
||||
FUNCTION 3 gpoly_compress (internal),
|
||||
@ -76,6 +105,3 @@ CREATE OPERATOR CLASS gist_poly_ops
|
||||
FUNCTION 6 gbox_picksplit (internal, internal),
|
||||
FUNCTION 7 gbox_same (box, box, internal),
|
||||
STORAGE box;
|
||||
|
||||
|
||||
end transaction;
|
||||
|
@ -3,36 +3,46 @@
|
||||
-- does not depend on contents of seg.sql.
|
||||
--
|
||||
\set ECHO none
|
||||
SET autocommit TO 'on';
|
||||
\i rtree_gist.sql
|
||||
\set ECHO all
|
||||
|
||||
create table boxtmp (b box);
|
||||
CREATE TABLE boxtmp (b box);
|
||||
|
||||
\copy boxtmp from 'data/test_box.data'
|
||||
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
|
||||
create index bix on boxtmp using rtree (b);
|
||||
CREATE INDEX bix ON boxtmp USING rtree (b);
|
||||
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
|
||||
drop index bix;
|
||||
DROP INDEX bix;
|
||||
|
||||
create index bix on boxtmp using gist (b);
|
||||
CREATE INDEX bix ON boxtmp USING gist (b);
|
||||
|
||||
select count(*) from boxtmp where b && '(1000,1000,0,0)'::box;
|
||||
SELECT count(*)
|
||||
FROM boxtmp
|
||||
WHERE b && '(1000,1000,0,0)'::box;
|
||||
|
||||
create table polytmp (p polygon);
|
||||
CREATE TABLE polytmp (p polygon);
|
||||
|
||||
\copy polytmp from 'data/test_box.data'
|
||||
|
||||
create index pix on polytmp using rtree (p);
|
||||
CREATE INDEX pix ON polytmp USING rtree (p);
|
||||
|
||||
select count(*) from polytmp where p && '(1000,1000),(0,0)'::polygon;
|
||||
SELECT count(*)
|
||||
FROM polytmp
|
||||
WHERE p && '(1000,1000),(0,0)'::polygon;
|
||||
|
||||
drop index pix;
|
||||
DROP INDEX pix;
|
||||
|
||||
create index pix on polytmp using gist (p);
|
||||
|
||||
select count(*) from polytmp where p && '(1000,1000),(0,0)'::polygon;
|
||||
CREATE INDEX pix ON polytmp USING gist (p);
|
||||
|
||||
SELECT count(*)
|
||||
FROM polytmp
|
||||
WHERE p && '(1000,1000),(0,0)'::polygon;
|
||||
|
Reference in New Issue
Block a user