-- source include/have_geometry.inc # # test of rtree (using with spatial data) # --disable_warnings DROP TABLE IF EXISTS t1; --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; --disable_query_log let $1=150; let $2=150; while ($1) { eval INSERT INTO t1 (g) VALUES (GeomFromText('LineString($1 $1, $2 $2)')); dec $1; inc $2; } --enable_query_log SELECT count(*) FROM t1; EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 140))')); SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')); DROP TABLE t1; CREATE TABLE t1 ( fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, g GEOMETRY NOT NULL ) ENGINE=MyISAM; --disable_query_log let $1=10; while ($1) { let $2=10; while ($2) { eval INSERT INTO t1 (g) VALUES (LineString(Point($1 * 10 - 9, $2 * 10 - 9), Point($1 * 10, $2 * 10))); dec $2; } dec $1; } --enable_query_log ALTER TABLE t1 ADD SPATIAL KEY(g); SHOW CREATE TABLE t1; SELECT count(*) FROM t1; EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, GeomFromText('Polygon((40 40,60 40,60 60,40 40))')); SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g, GeomFromText('Polygon((40 40,60 40,60 60,40 40))')); DROP TABLE t1; --echo End of 5.5 tests. # # MDEV-12078 Using spatial index changes type from point to geometry. # CREATE TABLE t1 ( coordinate point NOT NULL, SPATIAL KEY coordinate (coordinate) ) ENGINE=Aria DEFAULT CHARSET=ascii PAGE_CHECKSUM=1; SHOW COLUMNS FROM t1; INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 0)")); INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 0)")); INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 10)")); INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 10)")); INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(5 5)")); SELECT astext(coordinate) FROM t1 WHERE ST_Intersects(ST_LineFromText("LINESTRING(0 0, 10 0, 10 10, 0 10)"), coordinate); SHOW COLUMNS FROM t1; DROP TABLE t1;