diff options
Diffstat (limited to 'mysql-test/suite/innodb_gis/t/rt_precise.test')
-rw-r--r-- | mysql-test/suite/innodb_gis/t/rt_precise.test | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb_gis/t/rt_precise.test b/mysql-test/suite/innodb_gis/t/rt_precise.test new file mode 100644 index 00000000..2f155814 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rt_precise.test @@ -0,0 +1,74 @@ +#***************************************************************** +# This was a Myisam testcase, converted to InnoDB +# Since Innodb does not support the spatial key, hence converted +# Orginal name of the testcase : gis_rt_precise.test +#***************************************************************** +--source include/have_innodb.inc +-- source include/have_geometry.inc +SET default_storage_engine=InnoDB; + +# +# 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, + KEY gis_key(g(5)) +) ENGINE=InnoDB; + +SHOW CREATE TABLE t1; + +--disable_query_log +let $1=150; +let $2=150; +while ($1) +{ + eval INSERT INTO t1 (g) VALUES (ST_GeomFromText('LineString($1 $1, $2 $2)')); + dec $1; + inc $2; +} +--enable_query_log + +SELECT count(*) FROM t1; + +ANALYZE TABLE t1; + +--replace_column 9 # +EXPLAIN SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 140))')); +SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')) ORDER BY fid; + +DROP TABLE t1; + +CREATE TABLE t1 ( + fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + g GEOMETRY NOT NULL +) ENGINE=InnoDB; + +--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 + +#--error 1464 +ALTER TABLE t1 ADD SPATIAL KEY(g); +SHOW CREATE TABLE t1; +SELECT count(*) FROM t1; +SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, + ST_GeomFromText('Polygon((40 40,60 40,60 60,40 40))')) ORDER BY fid; + +DROP TABLE t1; + +--echo End of 5.5 tests. |