diff options
Diffstat (limited to 'mysql-test/main/rowid_filter_innodb_debug.result')
-rw-r--r-- | mysql-test/main/rowid_filter_innodb_debug.result | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/mysql-test/main/rowid_filter_innodb_debug.result b/mysql-test/main/rowid_filter_innodb_debug.result new file mode 100644 index 00000000000..6fd75294bdb --- /dev/null +++ b/mysql-test/main/rowid_filter_innodb_debug.result @@ -0,0 +1,83 @@ +set default_storage_engine=innodb; +# +# MDEV-22761 KILL QUERY during rowid_filter, crashes +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1(a int); +insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C; +create table t2(a int); +insert into t2 select A.a + B.a* 10 from t0 A, t0 B; +CREATE TABLE t3 ( +key1 int , +key2 int, +filler varchar(255), +KEY (key1), +KEY (key2) +); +select engine from information_schema.tables +where table_schema=database() and table_name='t3'; +engine +InnoDB +insert into t3 +select +A.a, +A.a, +'filler-data-filler-data' +from +t0 A, t1 B; +analyze table t2,t3; +Table Op Msg_type Msg_text +test.t2 analyze status Engine-independent statistics collected +test.t2 analyze status OK +test.t3 analyze status Engine-independent statistics collected +test.t3 analyze status OK +explain +select * from t2, t3 +where +t3.key1=t2.a and t3.key2 in (2,3); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 ALL NULL NULL NULL NULL 100 Using where +1 SIMPLE t3 ref|filter key1,key2 key1|key2 5|5 test.t2.a 1000 (20%) Using where; Using rowid filter +set debug_sync='handler_rowid_filter_check SIGNAL at_rowid_filter_check WAIT_FOR go'; +select * from t2, t3 +where +t3.key1=t2.a and t3.key2 in (2,3); +connect con1, localhost, root,,; +connection con1; +set debug_sync='now WAIT_FOR at_rowid_filter_check'; +kill query $target_id; +set debug_sync='now SIGNAL go'; +connection default; +disconnect con1; +ERROR 70100: Query execution was interrupted +set debug_sync='RESET'; +drop table t0,t1,t2,t3; +set default_storage_engine=default; +set @save_optimizer_switch= @@optimizer_switch; +set @save_use_stat_tables= @@use_stat_tables; +set @save_optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity; +set @@use_stat_tables=preferably; +set optimizer_use_condition_selectivity=2; +set optimizer_switch='rowid_filter=on'; +# +# MDEV-22761 KILL QUERY during rowid_filter, crashes +# (The smaller testcase) +# +CREATE TABLE t1 (a INT, b INT, INDEX(a), INDEX(b)) ENGINE=InnoDB; +INSERT INTO t1 VALUES (0,0),(1,0),(-1,1), (-2,1), (-2,3), (-3,4), (-2,4); +set debug_sync='handler_rowid_filter_check SIGNAL killme WAIT_FOR go'; +SELECT * FROM t1 WHERE a > 0 AND b=0; +connect con1, localhost, root,,; +connection con1; +set debug_sync='now WAIT_FOR killme'; +kill query @id; +set debug_sync='now SIGNAL go'; +connection default; +ERROR 70100: Query execution was interrupted +set debug_sync='RESET'; +disconnect con1; +drop table t1; +set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +set @@optimizer_switch=@save_optimizer_switch; +set @@use_stat_tables=@save_use_stat_tables; |