1# 2# Range tests without embedded server. 3# The first reason to have them is that embedded server doesn't have 4# optimizer trace. 5# 6--source include/not_embedded.inc 7--disable_warnings 8drop table if exists t1,t2; 9--enable_warnings 10 11--echo # 12--echo # MDEV-21958: Query having many NOT-IN clauses running forever 13--echo # 14create table t2 ( 15 pk int primary key, 16 key1 int, 17 col1 int, 18 key (key1, pk) 19); 20 21insert into t2 (pk, key1) values (1,1),(2,2),(3,3),(4,4),(5,5); 22 23set @tmp_21958=@@optimizer_trace; 24set optimizer_trace=1; 25explain select * from t2 where key1 in (1,2,3) and pk not in (1,2,3); 26 27--echo # This should show only ranges in form "(1) <= (key1) <= (1)" 28--echo # ranges over "pk" should not be constructed. 29select json_detailed(JSON_EXTRACT(trace, '$**.ranges')) 30from information_schema.optimizer_trace; 31set optimizer_trace=@tmp_21958; 32 33drop table t2; 34