From: Roy Lyseng Date: June 15 2011 1:57pm Subject: bzr commit into mysql-trunk branch (roy.lyseng:3385) Bug#12603200 List-Archive: http://lists.mysql.com/commits/139285 X-Bug: 12603200 Message-Id: <20110615135704.B05291F5@tyr67.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6596082723496509859==" --===============6596082723496509859== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/rl136806/mysql/repo/mysql-work0/ based on revid:jorgen.loland@stripped 3385 Roy Lyseng 2011-06-15 Bug#12603200: Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output The problematic query is semi-join transformed and a LooseScan strategy is selected. setup_semijoin_dups_elimination() inspects the provided quick select object and attempts to set it to require ordering of output rows. However, the quick select object was not selected in the first place (see Loose_scan_opt::check_ref_access_part1()), hence there is a missing check that the index covered by the quick select matches the index selected for the loose scan access. Fixed by adding this check, and also deleting the quick select object if it was not chosen for accessing this table. mysql-test/include/subquery_sj.inc Added test case for bug#12603200. mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_jcl6.result mysql-test/r/subquery_sj_all_jcl7.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_jcl6.result mysql-test/r/subquery_sj_dupsweed_jcl7.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_jcl6.result mysql-test/r/subquery_sj_firstmatch_jcl7.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_jcl6.result mysql-test/r/subquery_sj_loosescan_jcl7.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_jcl6.result mysql-test/r/subquery_sj_mat_jcl7.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_jcl6.result mysql-test/r/subquery_sj_none_jcl7.result Added test case result for bug#12603200. sql/sql_select.cc Fixed setup_semijoin_dups_elimination() as described above. modified: mysql-test/include/subquery_sj.inc mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_jcl6.result mysql-test/r/subquery_sj_all_jcl7.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_jcl6.result mysql-test/r/subquery_sj_dupsweed_jcl7.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_jcl6.result mysql-test/r/subquery_sj_firstmatch_jcl7.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_jcl6.result mysql-test/r/subquery_sj_loosescan_jcl7.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_jcl6.result mysql-test/r/subquery_sj_mat_jcl7.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_jcl6.result mysql-test/r/subquery_sj_none_jcl7.result sql/sql_select.cc === modified file 'mysql-test/include/subquery_sj.inc' --- a/mysql-test/include/subquery_sj.inc 2011-06-15 10:50:48 +0000 +++ b/mysql-test/include/subquery_sj.inc 2011-06-15 13:56:42 +0000 @@ -3617,3 +3617,77 @@ WHERE GRANDPARENT1.i2 ORDER BY GRANDPARENT1.i2 ; DROP TABLE t1,t2; + +--echo # +--echo # Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +--echo # + +CREATE TABLE t1 ( + pk int NOT NULL, + col_int_key int NOT NULL, + col_varchar_nokey varchar(1) NOT NULL, + col_varchar_key varchar(1) NOT NULL, + PRIMARY KEY(pk), + KEY col_int_key(col_int_key), + KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; + +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); + +CREATE TABLE t2 ( + pk int NOT NULL, + col_int_key int NOT NULL, + col_varchar_key varchar(1) NOT NULL, + PRIMARY KEY(pk), + KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; + +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); + +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key + FROM t2 AS innr + WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) + AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; + +DROP TABLE t1, t2; + +--echo # End of bug#12603200 === modified file 'mysql-test/r/subquery_sj_all.result' --- a/mysql-test/r/subquery_sj_all.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_all.result 2011-06-15 13:56:42 +0000 @@ -5504,4 +5504,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_all_jcl6.result' --- a/mysql-test/r/subquery_sj_all_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_all_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_all_jcl7.result' --- a/mysql-test/r/subquery_sj_all_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_all_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_dupsweed.result' --- a/mysql-test/r/subquery_sj_dupsweed.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_dupsweed.result 2011-06-15 13:56:42 +0000 @@ -5503,4 +5503,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_dupsweed_jcl6.result' --- a/mysql-test/r/subquery_sj_dupsweed_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_dupsweed_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5507,5 +5507,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_dupsweed_jcl7.result' --- a/mysql-test/r/subquery_sj_dupsweed_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_dupsweed_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5507,5 +5507,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_firstmatch.result' --- a/mysql-test/r/subquery_sj_firstmatch.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_firstmatch.result 2011-06-15 13:56:42 +0000 @@ -5505,6 +5505,77 @@ i1 1 DROP TABLE t1,t2; # +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 +# # Bug#51457 Firstmatch semijoin strategy gives wrong results for # certain query plans # === modified file 'mysql-test/r/subquery_sj_firstmatch_jcl6.result' --- a/mysql-test/r/subquery_sj_firstmatch_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_firstmatch_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5509,6 +5509,77 @@ i1 1 DROP TABLE t1,t2; # +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 +# # Bug#51457 Firstmatch semijoin strategy gives wrong results for # certain query plans # === modified file 'mysql-test/r/subquery_sj_firstmatch_jcl7.result' --- a/mysql-test/r/subquery_sj_firstmatch_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_firstmatch_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5509,6 +5509,77 @@ i1 1 DROP TABLE t1,t2; # +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 +# # Bug#51457 Firstmatch semijoin strategy gives wrong results for # certain query plans # === modified file 'mysql-test/r/subquery_sj_loosescan.result' --- a/mysql-test/r/subquery_sj_loosescan.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_loosescan.result 2011-06-15 13:56:42 +0000 @@ -5504,4 +5504,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_loosescan_jcl6.result' --- a/mysql-test/r/subquery_sj_loosescan_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_loosescan_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_loosescan_jcl7.result' --- a/mysql-test/r/subquery_sj_loosescan_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_loosescan_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_mat.result' --- a/mysql-test/r/subquery_sj_mat.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_mat.result 2011-06-15 13:56:42 +0000 @@ -5504,4 +5504,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_mat_jcl6.result' --- a/mysql-test/r/subquery_sj_mat_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_mat_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_mat_jcl7.result' --- a/mysql-test/r/subquery_sj_mat_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_mat_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5508,5 +5508,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_mat_nosj.result' --- a/mysql-test/r/subquery_sj_mat_nosj.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_mat_nosj.result 2011-06-15 13:56:42 +0000 @@ -5726,4 +5726,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_none.result' --- a/mysql-test/r/subquery_sj_none.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_none.result 2011-06-15 13:56:42 +0000 @@ -5649,4 +5649,75 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; === modified file 'mysql-test/r/subquery_sj_none_jcl6.result' --- a/mysql-test/r/subquery_sj_none_jcl6.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_none_jcl6.result 2011-06-15 13:56:42 +0000 @@ -5653,5 +5653,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'mysql-test/r/subquery_sj_none_jcl7.result' --- a/mysql-test/r/subquery_sj_none_jcl7.result 2011-06-15 10:50:48 +0000 +++ b/mysql-test/r/subquery_sj_none_jcl7.result 2011-06-15 13:56:42 +0000 @@ -5653,5 +5653,76 @@ ORDER BY GRANDPARENT1.i2 ; i1 1 DROP TABLE t1,t2; +# +# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output +# +CREATE TABLE t1 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_nokey varchar(1) NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_int_key(col_int_key), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t1 VALUES +(1,7,'a','a'), +(2,0,'v','v'), +(3,9,'c','c'), +(4,3,'m','m'), +(5,2,'a','a'), +(6,1,'d','d'), +(7,8,'y','y'), +(8,6,'t','t'), +(11,7,'a','x'), +(12,0,'v','v'), +(13,9,'c','c'), +(14,3,'m','m'), +(15,2,'a','x'), +(16,1,'d','d'), +(17,8,'y','y'), +(18,6,'t','u'); +CREATE TABLE t2 ( +pk int NOT NULL, +col_int_key int NOT NULL, +col_varchar_key varchar(1) NOT NULL, +PRIMARY KEY(pk), +KEY col_varchar_key(col_varchar_key, col_int_key) +) engine=innodb; +INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES +(8,7,'c'), +(11,4,'l'), +(12,7,'b'), +(13,0,'c'), +(14,2,'i'), +(15,9,'h'), +(16,4,'q'), +(17,1,'m'), +(18,9,'b'), +(19,2,'e'), +(20,1,'c'), +(21,7,'z'), +(22,4,'l'), +(23,7,'z'), +(24,0,'c'), +(25,2,'i'), +(26,9,'h'), +(27,4,'q'), +(28,0,'a'), +(29,1,'d'); +SELECT outr.col_varchar_key AS x, outr.pk AS y +FROM t1 AS outr +WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key +FROM t2 AS innr +WHERE innr.col_varchar_key = 'a' OR innr.pk = 8) +AND outr.col_varchar_nokey < 't' +ORDER BY outr.col_varchar_key, outr.pk; +x y +a 1 +a 5 +c 3 +c 13 +DROP TABLE t1, t2; +# End of bug#12603200 set optimizer_switch=default; set optimizer_join_cache_level=default; === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2011-06-11 13:38:32 +0000 +++ b/sql/sql_select.cc 2011-06-15 13:56:42 +0000 @@ -1535,17 +1535,21 @@ bool setup_semijoin_dups_elimination(JOI tab->loosescan_match_tab= last_sj_tab; /* For LooseScan, duplicate elimination is based on rows being sorted - on key. We need to make sure that range select keep the sorted index + on key. We need to make sure that range select keeps the sorted index order. (When using MRR it may not.) Note: need_sorted_output() implementations for range select classes that do not support sorted output, will trigger an assert. This - should happen since LooseScan strategy will not be picked if sorted - output is not supported. + should not happen since LooseScan strategy is only picked if sorted + output is supported. */ if (tab->select && tab->select->quick) - tab->select->quick->need_sorted_output(true); - + { + if (tab->select->quick->index == pos->loosescan_key) + tab->select->quick->need_sorted_output(true); + else + tab->select->set_quick(NULL); + } /* Calculate key length */ keylen= 0; keyno= pos->loosescan_key; --===============6596082723496509859== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/roy.lyseng@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: roy.lyseng@stripped # target_branch: file:///home/rl136806/mysql/repo/mysql-work0/ # testament_sha1: 3506befdd5cd258493ebfda6c5002831541b53ce # timestamp: 2011-06-15 15:57:04 +0200 # base_revision_id: jorgen.loland@stripped\ # yhbq58b26glco915 # # Begin bundle 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 u3vkPRm9z+qYXckU4UJDGbgvmA== --===============6596082723496509859==--