aboutsummaryrefslogtreecommitdiff
path: root/contrib/rtree_gist
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/rtree_gist')
-rwxr-xr-xcontrib/rtree_gist/bench/bench.pl14
-rwxr-xr-xcontrib/rtree_gist/bench/create_test.pl16
-rw-r--r--contrib/rtree_gist/expected/rtree_gist.out36
-rw-r--r--contrib/rtree_gist/rtree_gist.sql.in74
-rw-r--r--contrib/rtree_gist/sql/rtree_gist.sql38
5 files changed, 119 insertions, 59 deletions
diff --git a/contrib/rtree_gist/bench/bench.pl b/contrib/rtree_gist/bench/bench.pl
index e6bc1332cf6..e42ec9c63a3 100755
--- a/contrib/rtree_gist/bench/bench.pl
+++ b/contrib/rtree_gist/bench/bench.pl
@@ -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)';
diff --git a/contrib/rtree_gist/bench/create_test.pl b/contrib/rtree_gist/bench/create_test.pl
index 1c06b6863d3..cde92da6cd4 100755
--- a/contrib/rtree_gist/bench/create_test.pl
+++ b/contrib/rtree_gist/bench/create_test.pl
@@ -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 {
diff --git a/contrib/rtree_gist/expected/rtree_gist.out b/contrib/rtree_gist/expected/rtree_gist.out
index 74ac7e640d1..cf7e8b3efd1 100644
--- a/contrib/rtree_gist/expected/rtree_gist.out
+++ b/contrib/rtree_gist/expected/rtree_gist.out
@@ -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
diff --git a/contrib/rtree_gist/rtree_gist.sql.in b/contrib/rtree_gist/rtree_gist.sql.in
index b32671227fa..f7ad2748bc2 100644
--- a/contrib/rtree_gist/rtree_gist.sql.in
+++ b/contrib/rtree_gist/rtree_gist.sql.in
@@ -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;
diff --git a/contrib/rtree_gist/sql/rtree_gist.sql b/contrib/rtree_gist/sql/rtree_gist.sql
index 7a2a7faf851..161abae1edd 100644
--- a/contrib/rtree_gist/sql/rtree_gist.sql
+++ b/contrib/rtree_gist/sql/rtree_gist.sql
@@ -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;