diff options
Diffstat (limited to 'mysql-test/suite/innodb_gis/t/rtree_debug.test')
-rw-r--r-- | mysql-test/suite/innodb_gis/t/rtree_debug.test | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb_gis/t/rtree_debug.test b/mysql-test/suite/innodb_gis/t/rtree_debug.test new file mode 100644 index 00000000..580f3cf4 --- /dev/null +++ b/mysql-test/suite/innodb_gis/t/rtree_debug.test @@ -0,0 +1,74 @@ +# WL#6745 InnoDB R-tree support +# This test case will test R-tree multi level split. + +--source include/have_innodb.inc +--source include/big_test.inc +--source include/not_valgrind.inc +--source include/have_debug.inc + +# Create table with R-tree index. +create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; + +# Insert enough values to let R-tree split. +delimiter |; +create procedure insert_t1(IN total int) +begin + declare i int default 1; + while (i <= total) DO + insert into t1 values + (i, Point(i, i)), + (i + 1, Point(i + 1, i + 1)), + (i + 2, Point(i + 2, i + 2)), + (i + 3, Point(i + 3, i + 3)), + (i + 4, Point(i + 4, i + 4)), + (i + 5, Point(i + 5, i + 5)), + (i + 6, Point(i + 6, i + 6)), + (i + 7, Point(i + 7, i + 7)), + (i + 8, Point(i + 8, i + 8)), + (i + 9, Point(i + 9, i + 9)); + set i = i + 10; + end while; +end| +delimiter ;| + +# Test level 1 rtree. +CALL insert_t1(5000); +select count(*) from t1; + +# Check table. +check table t1; + +# Test level 2 rtree. +truncate table t1; +CALL insert_t1(10000); +select count(*) from t1; + +drop index c2 on t1; + +create spatial index idx on t1(c2); + +show create table t1; + +SET @save_dbug = @@SESSION.debug_dbug; +SET debug_dbug='+d,row_merge_ins_spatial_fail'; +--error ER_GET_ERRNO +create spatial index idx2 on t1(c2); +SET @@SESSION.debug_dbug = @save_dbug; +show create table t1; + +# Check table. +check table t1; + +# Test level 3 rtree. +truncate table t1; +CALL insert_t1(100000); +select count(*) from t1; + +# Check table. +check table t1; + +truncate table t1; + +# Clean up. +drop procedure insert_t1; +drop table t1; |