Loading mysql-test/r/range.result +130 −17 Original line number Diff line number Diff line Loading @@ -726,23 +726,136 @@ index(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,c13,c14,c15,c16) ); insert into t1 (c1) values ('1'),('1'),('1'),('1'); select * from t1 where c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c11 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c12 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c13 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c14 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c15 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c16 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") ; c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC"); c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 drop table t1; End of 4.1 tests Loading mysql-test/t/range.test +130 −19 Original line number Diff line number Diff line Loading @@ -576,30 +576,141 @@ create table t1 ( c13 char(10), c14 char(10), c15 char(10), c16 char(10), index(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,c13,c14,c15,c16) ); insert into t1 (c1) values ('1'),('1'),('1'),('1'); # This must run without crash and fast: select * from t1 where c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c11 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c12 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c13 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c14 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c15 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c16 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") ; c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC"); drop table t1; --echo End of 4.1 tests # Loading sql/opt_range.cc +5 −4 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ class SEL_ARG :public Sql_alloc enum leaf_color { BLACK,RED } color; enum Type { IMPOSSIBLE, MAYBE, MAYBE_KEY, KEY_RANGE } type; enum { MAX_SEL_ARGS = 64000 }; enum { MAX_SEL_ARGS = 16000 }; SEL_ARG() {} SEL_ARG(SEL_ARG &); Loading Loading @@ -4621,7 +4621,7 @@ tree_and(PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) } result_keys.set_bit(key1 - tree1->keys); #ifdef EXTRA_DEBUG if (*key1) if (*key1 && param->alloced_sel_args < SEL_ARG::MAX_SEL_ARGS) (*key1)->test_use_count(*key1); #endif } Loading Loading @@ -4703,6 +4703,7 @@ tree_or(PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) result=tree1; // Added to tree1 result_keys.set_bit(key1 - tree1->keys); #ifdef EXTRA_DEBUG if (param->alloced_sel_args < SEL_ARG::MAX_SEL_ARGS) (*key1)->test_use_count(*key1); #endif } Loading Loading
mysql-test/r/range.result +130 −17 Original line number Diff line number Diff line Loading @@ -726,23 +726,136 @@ index(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,c13,c14,c15,c16) ); insert into t1 (c1) values ('1'),('1'),('1'),('1'); select * from t1 where c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c11 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c12 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c13 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c14 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c15 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c16 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") ; c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC"); c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 drop table t1; End of 4.1 tests Loading
mysql-test/t/range.test +130 −19 Original line number Diff line number Diff line Loading @@ -576,30 +576,141 @@ create table t1 ( c13 char(10), c14 char(10), c15 char(10), c16 char(10), index(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,c13,c14,c15,c16) ); insert into t1 (c1) values ('1'),('1'),('1'),('1'); # This must run without crash and fast: select * from t1 where c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c11 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c12 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c13 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c14 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c15 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") and c16 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh") ; c1 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c2 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c3 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c4 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c5 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c6 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c7 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c8 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c9 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC") and c10 in ("abcdefgh", "123456789", "qwertyuio", "asddfgh", "abcdefg1", "123456781", "qwertyui1", "asddfg1", "abcdefg2", "123456782", "qwertyui2", "asddfg2", "abcdefg3", "123456783", "qwertyui3", "asddfg3", "abcdefg4", "123456784", "qwertyui4", "asddfg4", "abcdefg5", "123456785", "qwertyui5", "asddfg5", "abcdefg6", "123456786", "qwertyui6", "asddfg6", "abcdefg7", "123456787", "qwertyui7", "asddfg7", "abcdefg8", "123456788", "qwertyui8", "asddfg8", "abcdefg9", "123456789", "qwertyui9", "asddfg9", "abcdefgA", "12345678A", "qwertyuiA", "asddfgA", "abcdefgB", "12345678B", "qwertyuiB", "asddfgB", "abcdefgC", "12345678C", "qwertyuiC", "asddfgC"); drop table t1; --echo End of 4.1 tests # Loading
sql/opt_range.cc +5 −4 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ class SEL_ARG :public Sql_alloc enum leaf_color { BLACK,RED } color; enum Type { IMPOSSIBLE, MAYBE, MAYBE_KEY, KEY_RANGE } type; enum { MAX_SEL_ARGS = 64000 }; enum { MAX_SEL_ARGS = 16000 }; SEL_ARG() {} SEL_ARG(SEL_ARG &); Loading Loading @@ -4621,7 +4621,7 @@ tree_and(PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) } result_keys.set_bit(key1 - tree1->keys); #ifdef EXTRA_DEBUG if (*key1) if (*key1 && param->alloced_sel_args < SEL_ARG::MAX_SEL_ARGS) (*key1)->test_use_count(*key1); #endif } Loading Loading @@ -4703,6 +4703,7 @@ tree_or(PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) result=tree1; // Added to tree1 result_keys.set_bit(key1 - tree1->keys); #ifdef EXTRA_DEBUG if (param->alloced_sel_args < SEL_ARG::MAX_SEL_ARGS) (*key1)->test_use_count(*key1); #endif } Loading