diff options
Diffstat (limited to 'mysql-test/t/index_merge_innodb.test')
-rw-r--r-- | mysql-test/t/index_merge_innodb.test | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/mysql-test/t/index_merge_innodb.test b/mysql-test/t/index_merge_innodb.test index ca6ada7fc6f..0fd3c54c787 100644 --- a/mysql-test/t/index_merge_innodb.test +++ b/mysql-test/t/index_merge_innodb.test @@ -124,5 +124,38 @@ WHERE v1 IN ('f', 'd', 'h', 'u' ) AND i = 2; DROP TABLE t1; +--echo # +--echo # BUG#1006164: Multi-table DELETE that uses innodb + index_merge/intersect may fail to delete rows +--echo # + +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 ( + pk int auto_increment, + zone_id int, + modified tinyint, + primary key(pk), + key (zone_id), + key (modified) +) engine=innodb; + +insert into t1 (zone_id, modified) select 0,0 from t0 A, t0 B, t0 C, t0 D; +update t1 set zone_id=487, modified=9 where pk=7259; +update t1 set zone_id=487, modified=9 where pk=7260; +update t1 set zone_id=830, modified=9 where pk=8434; +update t1 set zone_id=830, modified=9 where pk=8435; +update t1 set zone_id=830, modified=9 where pk=8436; +update t1 set zone_id=830, modified=9 where pk=8437; + +select * from t1 where t1.zone_id=830 AND modified=9; +begin; +DELETE t1 FROM t1 WHERE t1.zone_id=830 AND modified=9; +commit; +select * from t1 where t1.zone_id=830 AND modified=9; + +drop table t0, t1; + + set optimizer_switch= @optimizer_switch_save; |