gis-rtree.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:7k
- -- source include/have_geometry.inc
- #
- # test of rtree (using with spatial data)
- #
- --disable_warnings
- DROP TABLE IF EXISTS t1, t2;
- --enable_warnings
- CREATE TABLE t1 (
- fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- g GEOMETRY NOT NULL,
- SPATIAL KEY(g)
- ) ENGINE=MyISAM;
- SHOW CREATE TABLE t1;
- let $1=150;
- let $2=150;
- while ($1)
- {
- eval INSERT INTO t1 (g) VALUES (GeomFromText('LineString($1 $1, $2 $2)'));
- dec $1;
- inc $2;
- }
- SELECT count(*) FROM t1;
- EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
- SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
- DROP TABLE t1;
- CREATE TABLE t2 (
- fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- g GEOMETRY NOT NULL
- ) ENGINE=MyISAM;
- let $1=10;
- while ($1)
- {
- let $2=10;
- while ($2)
- {
- eval INSERT INTO t2 (g) VALUES (GeometryFromWKB(LineString(Point($1 * 10 - 9, $2 * 10 - 9), Point($1 * 10, $2 * 10))));
- dec $2;
- }
- dec $1;
- }
- ALTER TABLE t2 ADD SPATIAL KEY(g);
- SHOW CREATE TABLE t2;
- SELECT count(*) FROM t2;
- EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
- GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
- SELECT fid, AsText(g) FROM t2 WHERE Within(g,
- GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
- let $1=10;
- while ($1)
- {
- let $2=10;
- while ($2)
- {
- eval DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(LineString(Point($1 * 10 - 9, $2 * 10 - 9), Point($1 * 10, $2 * 10)))));
- SELECT count(*) FROM t2;
- dec $2;
- }
- dec $1;
- }
- DROP TABLE t2;
- drop table if exists t1;
- CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
- check table t1;
- analyze table t1;
- drop table t1;
- #
- # The following crashed gis
- #
- CREATE TABLE t1 (
- fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- g GEOMETRY NOT NULL,
- SPATIAL KEY(g)
- ) ENGINE=MyISAM;
- INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
- #select * from t1 where g<GeomFromText('LineString(1 2, 2 3)');
- drop table t1;
- CREATE TABLE t1 (
- geoobjid INT NOT NULL,
- line LINESTRING NOT NULL,
- kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
- name VARCHAR(32),
- SPATIAL KEY (line)
- ) engine=myisam;
- ALTER TABLE t1 DISABLE KEYS;
- INSERT INTO t1 (name, kind, line) VALUES
- ("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
- ("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
- ("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
- ("Aadchit", "pp", GeomFromText("POINT(33.347222 35.423611)")),
- ("Aadchite", "pp", GeomFromText("POINT(33.347222 35.423611)")),
- ("Aadchit el Qoussair", "pp", GeomFromText("POINT(33.283333 35.483333)")),
- ("Aaddaye", "pp", GeomFromText("POINT(36.716667 40.833333)")),
- ("'Aadeissa", "pp", GeomFromText("POINT(32.823889 35.698889)")),
- ("Aaderup", "pp", GeomFromText("POINT(55.216667 11.766667)")),
- ("Qalaat Aades", "pp", GeomFromText("POINT(33.503333 35.377500)")),
- ("A ad'ino", "pp", GeomFromText("POINT(54.812222 38.209167)")),
- ("Aadi Noia", "pp", GeomFromText("POINT(13.800000 39.833333)")),
- ("Aad La Macta", "pp", GeomFromText("POINT(35.779444 -0.129167)")),
- ("Aadland", "pp", GeomFromText("POINT(60.366667 5.483333)")),
- ("Aadliye", "pp", GeomFromText("POINT(33.366667 36.333333)")),
- ("Aadloun", "pp", GeomFromText("POINT(33.403889 35.273889)")),
- ("Aadma", "pp", GeomFromText("POINT(58.798333 22.663889)")),
- ("Aadma Asundus", "pp", GeomFromText("POINT(58.798333 22.663889)")),
- ("Aadmoun", "pp", GeomFromText("POINT(34.150000 35.650000)")),
- ("Aadneram", "pp", GeomFromText("POINT(59.016667 6.933333)")),
- ("Aadneskaar", "pp", GeomFromText("POINT(58.083333 6.983333)")),
- ("Aadorf", "pp", GeomFromText("POINT(47.483333 8.900000)")),
- ("Aadorp", "pp", GeomFromText("POINT(52.366667 6.633333)")),
- ("Aadouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
- ("Aadoui", "pp", GeomFromText("POINT(34.450000 35.983333)")),
- ("Aadouiye", "pp", GeomFromText("POINT(34.583333 36.183333)")),
- ("Aadouss", "pp", GeomFromText("POINT(33.512500 35.601389)")),
- ("Aadra", "pp", GeomFromText("POINT(33.616667 36.500000)")),
- ("Aadzi", "pp", GeomFromText("POINT(38.100000 64.850000)"));
- ALTER TABLE t1 ENABLE KEYS;
- INSERT INTO t1 (name, kind, line) VALUES ("austria", "pp", GeomFromText('LINESTRING(14.9906 48.9887,14.9946 48.9904,14.9947 48.9916)'));
- drop table t1;
- CREATE TABLE t1 (st varchar(100));
- INSERT INTO t1 VALUES ("Fake string");
- CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
- --error 1105
- INSERT INTO t2 SELECT GeomFromText(st) FROM t1;
- drop table t1, t2;
- CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`(32))) ENGINE=MyISAM DEFAULT CHARSET=latin1;
- INSERT INTO t1 (geometry) VALUES
- (PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
- -66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999,
- -18.6086111000 -66.9327777000))'));
- INSERT INTO t1 (geometry) VALUES
- (PolygonFromText('POLYGON((-65.7402776999 -96.6686111000, -65.7372222000
- -96.5516666000, -65.8502777000 -96.5461111000, -65.8527777000 -96.6627777000,
- -65.7402776999 -96.6686111000))'));
- check table t1 extended;
- drop table t1;
- # End of 4.1 tests