mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
78 lines
1.7 KiB
Text
78 lines
1.7 KiB
Text
# WL#6745 InnoDB R-tree support
|
|
# This test case test R-tree crash/recovery.
|
|
|
|
# Restart is not supported in embedded
|
|
--source include/not_embedded.inc
|
|
--source include/have_innodb.inc
|
|
--source include/no_valgrind_without_big.inc
|
|
|
|
# Do a clean shutdown and restart so that the redo log is cleaned up from previous tests.
|
|
--source include/restart_mysqld.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));
|
|
set i = i + 1;
|
|
end while;
|
|
end|
|
|
delimiter ;|
|
|
|
|
# Update values
|
|
delimiter |;
|
|
create procedure update_t1(IN total int)
|
|
begin
|
|
declare i int default 1;
|
|
while (i <= total) DO
|
|
update t1 set c2 = Point(i + 10000, i + 10000) where c2 = Point(i, i);
|
|
set i = i + 1;
|
|
end while;
|
|
end|
|
|
delimiter ;|
|
|
|
|
|
|
# Test crash recovery.
|
|
#
|
|
|
|
# Test level 1 rtree.
|
|
CALL insert_t1(367);
|
|
COMMIT;
|
|
|
|
--let $shutdown_timeout=0
|
|
--source include/restart_mysqld.inc
|
|
|
|
# Check table.
|
|
check table t1;
|
|
|
|
# Clean up.
|
|
drop table t1;
|
|
|
|
# Test crash recovery on point spatial index.
|
|
create table t1 (c1 int, c2 point not null, spatial index (c2))engine=innodb;
|
|
|
|
# Some DML on point spatial index.
|
|
CALL insert_t1(367);
|
|
CALL update_t1(367);
|
|
|
|
SET @poly1 = ST_GeomFromText('POLYGON((10000 10000, 10000 10350, 10350 10350, 10350 10000, 10000 10000))');
|
|
delete from t1 where ST_Contains(@poly1, c2);
|
|
COMMIT;
|
|
|
|
--source include/restart_mysqld.inc
|
|
|
|
# Check table.
|
|
check table t1;
|
|
|
|
select count(*) from t1;
|
|
select c1, ST_astext(c2) from t1;
|
|
|
|
# Clean up.
|
|
drop procedure insert_t1;
|
|
drop procedure update_t1;
|
|
drop table t1;
|