summaryrefslogtreecommitdiff
path: root/mysql-test/t/gis-rtree.test
diff options
context:
space:
mode:
authorGeorgi Kodinov <joro@sun.com>2010-03-08 12:39:57 +0200
committerGeorgi Kodinov <joro@sun.com>2010-03-08 12:39:57 +0200
commit2ba46ad4fa9a91d4cc91b45da7df7d97024afc51 (patch)
tree66bd0abe89bd11ac0a0c60d757197d0d8d513605 /mysql-test/t/gis-rtree.test
parent62809e2a096d80e927e04e3f151c59c88f561ffe (diff)
downloadmariadb-git-2ba46ad4fa9a91d4cc91b45da7df7d97024afc51.tar.gz
Backport of the fix for bug #51357 to 5.0-bugteam.:
Spatial indexes were not checking for out-of-record condition in the handler next command when the previous command didn't found rows. Fixed by making the rtree index to check for end of rows condition before re-using the key from the previous search. Fixed another crash if the tree has changed since the last search. Added a test case for the other error.
Diffstat (limited to 'mysql-test/t/gis-rtree.test')
-rw-r--r--mysql-test/t/gis-rtree.test22
1 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/t/gis-rtree.test b/mysql-test/t/gis-rtree.test
index b5de1ccf248..38d50aecf8f 100644
--- a/mysql-test/t/gis-rtree.test
+++ b/mysql-test/t/gis-rtree.test
@@ -902,4 +902,26 @@ SELECT 1 FROM t1 WHERE a >= GEOMFROMTEXT('LINESTRING(-1 -1, 1 -1, -1 -1, -1 1, 1
DROP TABLE t1;
+--echo #
+--echo # Bug #51357: crash when using handler commands on spatial indexes
+--echo #
+
+CREATE TABLE t1(a GEOMETRY NOT NULL,SPATIAL INDEX a(a));
+HANDLER t1 OPEN;
+HANDLER t1 READ a FIRST;
+HANDLER t1 READ a NEXT;
+HANDLER t1 READ a PREV;
+HANDLER t1 READ a LAST;
+HANDLER t1 CLOSE;
+
+# second crash fixed when the tree has changed since the last search.
+HANDLER t1 OPEN;
+HANDLER t1 READ a FIRST;
+INSERT INTO t1 VALUES (GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
+HANDLER t1 READ a NEXT;
+HANDLER t1 CLOSE;
+
+DROP TABLE t1;
+
+
--echo End of 5.0 tests.