postgresql/contrib/rtree_gist/bench/create_test.pl

51 lines
1.0 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
my $NUM = 20000;
print "DROP TABLE boxtmp;\n";
print "DROP TABLE boxtmp2;\n";
print "CREATE TABLE boxtmp (b box);\n";
print "CREATE TABLE boxtmp2 (b box);\n";
srand(1);
open(DAT,">bbb.dat") || die;
foreach ( 1..$NUM ) {
#print DAT '(',int( 500+500*rand() ),',',int( 500+500*rand() ),',',int( 500*rand() ),',',int( 500*rand() ),")\n";
my ( $x1,$y1, $x2,$y2 ) = (
10000*rand(),
10000*rand(),
10000*rand(),
10000*rand()
);
print DAT '(',
max($x1,$x2),',',
max($y1,$y2),',',
min($x1,$x2),',',
min($y1,$y2),")\n";
}
close DAT;
print "COPY boxtmp FROM stdin;\n";
open(DAT,"bbb.dat") || die;
while(<DAT>) { print; }
close DAT;
print "\\.\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";
sub min {
return ( $_[0] < $_[1] ) ? $_[0] : $_[1];
}
sub max {
return ( $_[0] > $_[1] ) ? $_[0] : $_[1];
}