diff --git a/mysql-test/main/mdev-34413-icp-reverse-order.combinations b/mysql-test/main/mdev-34413-icp-reverse-order.combinations new file mode 100644 index 00000000000..3ec64bc4e3b --- /dev/null +++ b/mysql-test/main/mdev-34413-icp-reverse-order.combinations @@ -0,0 +1,6 @@ +[myisam] +default-storage-engine=myisam + +[innodb] +innodb +default-storage-engine=innodb diff --git a/mysql-test/main/mdev-34413-icp-reverse-order.result b/mysql-test/main/mdev-34413-icp-reverse-order.result new file mode 100644 index 00000000000..0b1d8e5c941 --- /dev/null +++ b/mysql-test/main/mdev-34413-icp-reverse-order.result @@ -0,0 +1,278 @@ +create table ten(a int); +insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table one_k(a int); +insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C; +create table t10 (a int, b int, c int, key(a,b)); +insert into t10 select a,a,a from one_k; +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +a b c +20 20 20 +19 19 19 +18 18 18 +17 17 17 +16 16 16 +15 15 15 +14 14 14 +13 13 13 +12 12 12 +11 11 11 +10 10 10 +explain select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 range a a 5 NULL 11 Using where +flush status; +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +a b c +20 20 20 +19 19 19 +18 18 18 +17 17 17 +16 16 16 +15 15 15 +14 14 14 +13 13 13 +12 12 12 +11 11 11 +10 10 10 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +a b c +10 10 10 +11 11 11 +12 12 12 +13 13 13 +14 14 14 +15 15 15 +16 16 16 +17 17 17 +18 18 18 +19 19 19 +20 20 20 +explain select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 range a a 5 NULL 11 Using index condition +flush status; +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +a b c +10 10 10 +11 11 11 +12 12 12 +13 13 13 +14 14 14 +15 15 15 +16 16 16 +17 17 17 +18 18 18 +19 19 19 +20 20 20 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 11 +HANDLER_ICP_MATCH 11 +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +a b c +10 10 10 +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ref a a 5 const 1 Using where +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +a b c +10 10 10 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +a b c +10 10 10 +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ref a a 5 const 1 Using index condition; Using where +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +a b c +10 10 10 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 1 +HANDLER_ICP_MATCH 1 +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +a b c +10 10 10 +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ref a a 5 const 1 Using where +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +a b c +10 10 10 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +a b c +10 10 10 +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ref a a 5 const 1 Using index condition; Using where +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +a b c +10 10 10 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 1 +HANDLER_ICP_MATCH 1 +create table t1 (a int, b int, c int, key(a,b)); +insert into t1 (a, b, c) values (1,10,100),(2,20,200),(3,30,300),(4,40,400),(5,50,500),(6,60,600),(7,70,700),(8,80,800),(9,90,900),(10,100,1000); +select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +a b c +3 30 300 +explain select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 5 NULL 1 Using where +flush status; +select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +a b c +3 30 300 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +a b c +3 30 300 +explain select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 5 NULL 1 Using index condition +flush status; +select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +a b c +3 30 300 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 1 +HANDLER_ICP_MATCH 1 +drop table t1; +create table t1 (a int, b int, c int, key(a,b)); +insert into t1 (a, b, c) values (1,10,100),(2,20,200),(3,30,300); +select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +a b c +2 20 200 +explain select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 5 NULL 1 Using where +flush status; +select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +a b c +2 20 200 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +a b c +2 20 200 +explain select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 5 NULL 1 Using index condition +flush status; +select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +a b c +2 20 200 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 1 +HANDLER_ICP_MATCH 1 +drop table ten, one_k, t10, t1; +create table t1 ( +a int not null, +b int not null, +c int not null, +key (a,b) +) partition by range ((a)) ( +partition p0 values less than (5), +partition p1 values less than (10), +partition p2 values less than (15), +partition p3 values less than (20) +); +insert into t1 (a,b,c) values (1,1,1),(2,2,2),(3,3,3), +(4,4,4),(5,5,5),(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10), +(11,11,11),(12,12,12),(13,13,13),(14,14,14),(15,15,15), +(16,16,16),(17,17,17),(18,18,18),(19,19,19); +select * from t1 where a >= 3 and a <= 7 order by a desc; +a b c +7 7 7 +6 6 6 +5 5 5 +4 4 4 +3 3 3 +explain select * from t1 where a >= 3 and a <= 7 order by a desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 4 NULL 5 Using where +flush status; +select * from t1 where a >= 3 and a <= 7 order by a desc; +a b c +7 7 7 +6 6 6 +5 5 5 +4 4 4 +3 3 3 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +a b c +7 7 7 +6 6 6 +5 5 5 +4 4 4 +3 3 3 +explain select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 4 NULL 5 Using where +flush status; +select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +a b c +7 7 7 +6 6 6 +5 5 5 +4 4 4 +3 3 3 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +drop table t1; +create table t1 ( +pk int primary key, +kp1 int, kp2 int, +col1 int, +index (kp1,kp2) +) partition by hash (pk) partitions 10; +insert into t1 select seq, seq, seq, seq from seq_1_to_1000; +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 asc, kp2 asc; +pk kp1 kp2 col1 +flush status; +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 asc, kp2 asc; +pk kp1 kp2 col1 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 11 +HANDLER_ICP_MATCH 0 +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 desc, kp2 desc; +pk kp1 kp2 col1 +flush status; +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 desc, kp2 desc; +pk kp1 kp2 col1 +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +VARIABLE_NAME VARIABLE_VALUE +HANDLER_ICP_ATTEMPTS 0 +HANDLER_ICP_MATCH 0 +drop table t1; diff --git a/mysql-test/main/mdev-34413-icp-reverse-order.test b/mysql-test/main/mdev-34413-icp-reverse-order.test new file mode 100644 index 00000000000..f72c9bdbac1 --- /dev/null +++ b/mysql-test/main/mdev-34413-icp-reverse-order.test @@ -0,0 +1,162 @@ +--source include/have_innodb.inc +--source include/have_partition.inc +--source include/have_sequence.inc + +create table ten(a int); +insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table one_k(a int); +insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C; +create table t10 (a int, b int, c int, key(a,b)); +insert into t10 select a,a,a from one_k; + +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +--disable_ps_protocol +explain select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +flush status; +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a desc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +--disable_ps_protocol +explain select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +flush status; +select * from t10 force index(a) where a between 10 and 20 and b+1 <3333 order by a asc, b asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +--disable_ps_protocol +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +--disable_ps_protocol +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +--disable_ps_protocol +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a asc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +--disable_ps_protocol +explain select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +flush status; +select * from t10 force index(a) where a=10 and b+1 <3333 order by a desc, b asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + + +create table t1 (a int, b int, c int, key(a,b)); +insert into t1 (a, b, c) values (1,10,100),(2,20,200),(3,30,300),(4,40,400),(5,50,500),(6,60,600),(7,70,700),(8,80,800),(9,90,900),(10,100,1000); + +select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +--disable_ps_protocol +explain select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +flush status; +select * from t1 where a >= 3 and a <= 3 order by a desc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +--disable_ps_protocol +explain select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +flush status; +select * from t1 where a >= 3 and a <= 3 order by a asc, b asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +drop table t1; + + +create table t1 (a int, b int, c int, key(a,b)); +insert into t1 (a, b, c) values (1,10,100),(2,20,200),(3,30,300); + +select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +--disable_ps_protocol +explain select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +flush status; +select * from t1 where a >= 2 and a <= 2 order by a desc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +--disable_ps_protocol +explain select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +flush status; +select * from t1 where a >= 2 and a <= 2 order by a asc, b asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +drop table ten, one_k, t10, t1; + + +create table t1 ( + a int not null, + b int not null, + c int not null, + key (a,b) +) partition by range ((a)) ( + partition p0 values less than (5), + partition p1 values less than (10), + partition p2 values less than (15), + partition p3 values less than (20) +); +insert into t1 (a,b,c) values (1,1,1),(2,2,2),(3,3,3), + (4,4,4),(5,5,5),(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10), + (11,11,11),(12,12,12),(13,13,13),(14,14,14),(15,15,15), + (16,16,16),(17,17,17),(18,18,18),(19,19,19); + +select * from t1 where a >= 3 and a <= 7 order by a desc; +--disable_ps_protocol +explain select * from t1 where a >= 3 and a <= 7 order by a desc; +flush status; +select * from t1 where a >= 3 and a <= 7 order by a desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +--disable_ps_protocol +explain select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +flush status; +select * from t1 where a >= 3 and a <= 7 order by a desc, b desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +drop table t1; + + +create table t1 ( + pk int primary key, + kp1 int, kp2 int, + col1 int, + index (kp1,kp2) +) partition by hash (pk) partitions 10; +insert into t1 select seq, seq, seq, seq from seq_1_to_1000; + +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 asc, kp2 asc; +--disable_ps_protocol +flush status; +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 asc, kp2 asc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 desc, kp2 desc; +--disable_ps_protocol +flush status; +select * from t1 where kp1 between 950 and 960 and kp2+1 >33333 order by kp1 desc, kp2 desc; +SELECT * FROM information_schema.SESSION_STATUS WHERE VARIABLE_NAME LIKE '%icp%'; +--enable_ps_protocol + +drop table t1; diff --git a/mysql-test/main/rowid_filter_innodb.result b/mysql-test/main/rowid_filter_innodb.result index a8a31762b07..9202af1e686 100644 --- a/mysql-test/main/rowid_filter_innodb.result +++ b/mysql-test/main/rowid_filter_innodb.result @@ -3795,6 +3795,96 @@ ANALYZE ] } } +set @save_optimizer_switch= @@optimizer_switch; +set optimizer_switch='rowid_filter=off'; +analyze format=json select * from t1 +where +a =30100 and b in (30100,30101,30102) +and +(a+pk)>30100+8439 +order by pk desc; +ANALYZE +{ + "query_optimization": { + "r_total_time_ms": "REPLACED" + }, + "query_block": { + "select_id": 1, + "cost": "REPLACED", + "r_loops": 1, + "r_total_time_ms": "REPLACED", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ref", + "possible_keys": ["a", "b"], + "key": "a", + "key_length": "5", + "used_key_parts": ["a"], + "ref": ["const"], + "loops": 1, + "r_loops": 1, + "rows": 250, + "r_rows": 250, + "cost": "REPLACED", + "r_table_time_ms": "REPLACED", + "r_other_time_ms": "REPLACED", + "r_engine_stats": REPLACED, + "filtered": 4.799086094, + "r_total_filtered": 0.8, + "attached_condition": "t1.a <=> 30100 and t1.b in (30100,30101,30102) and 30100 + t1.pk > 38539", + "r_filtered": 0.8 + } + } + ] + } +} +set optimizer_switch='rowid_filter=on'; +analyze format=json select * from t1 +where +a =30100 and b in (30100,30101,30102) +and +(a+pk)>30100+8439 +order by pk desc; +ANALYZE +{ + "query_optimization": { + "r_total_time_ms": "REPLACED" + }, + "query_block": { + "select_id": 1, + "cost": "REPLACED", + "r_loops": 1, + "r_total_time_ms": "REPLACED", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ref", + "possible_keys": ["a", "b"], + "key": "a", + "key_length": "5", + "used_key_parts": ["a"], + "ref": ["const"], + "loops": 1, + "r_loops": 1, + "rows": 250, + "r_rows": 250, + "cost": "REPLACED", + "r_table_time_ms": "REPLACED", + "r_other_time_ms": "REPLACED", + "r_engine_stats": REPLACED, + "filtered": 4.799086094, + "r_total_filtered": 0.8, + "attached_condition": "t1.a <=> 30100 and t1.b in (30100,30101,30102) and 30100 + t1.pk > 38539", + "r_filtered": 0.8 + } + } + ] + } +} +set optimizer_switch=@save_optimizer_switch; drop table t1; # End of 10.6 tests set global innodb_stats_persistent= @stats.save; diff --git a/mysql-test/main/rowid_filter_innodb.test b/mysql-test/main/rowid_filter_innodb.test index 9730a133a21..16df05223a0 100644 --- a/mysql-test/main/rowid_filter_innodb.test +++ b/mysql-test/main/rowid_filter_innodb.test @@ -818,6 +818,25 @@ where order by pk desc; +set @save_optimizer_switch= @@optimizer_switch; +set optimizer_switch='rowid_filter=off'; +--source include/analyze-format.inc +analyze format=json select * from t1 +where + a =30100 and b in (30100,30101,30102) +and + (a+pk)>30100+8439 +order by pk desc; +set optimizer_switch='rowid_filter=on'; +--source include/analyze-format.inc +analyze format=json select * from t1 +where + a =30100 and b in (30100,30101,30102) +and + (a+pk)>30100+8439 +order by pk desc; +set optimizer_switch=@save_optimizer_switch; + drop table t1; --echo # End of 10.6 tests