From: Tor Didriksen Date: October 4 2011 6:38am Subject: bzr push into mysql-trunk branch (tor.didriksen:3449 to 3451) List-Archive: http://lists.mysql.com/commits/141291 Message-Id: <201110040638.p946cXI0013997@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3451 Tor Didriksen 2011-10-04 Trying to clean up contents conflicts for .result files added: mysql-test/r/join_cache_bka_nixbnl.result mysql-test/r/join_nested_bka_nixbnl.result mysql-test/r/join_outer_bka_nixbnl.result mysql-test/r/select_all_bka_nixbnl.result mysql-test/r/select_icp_mrr_bka_nixbnl.result mysql-test/r/select_none_bka_nixbnl.result mysql-test/r/subquery_all_bka_nixbnl.result mysql-test/r/subquery_nomat_nosj_bka_nixbnl.result mysql-test/r/subquery_none_bka_nixbnl.result mysql-test/r/subquery_sj_all_bka_nixbnl.result mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result mysql-test/r/subquery_sj_innodb_all_bka_nixbnl.result mysql-test/r/subquery_sj_innodb_none_bka_nixbnl.result mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result mysql-test/r/subquery_sj_mat_bka_nixbnl.result mysql-test/r/subquery_sj_none_bka_nixbnl.result mysql-test/t/join_cache_bka_nixbnl.test mysql-test/t/join_nested_bka_nixbnl.test mysql-test/t/join_outer_bka_nixbnl.test mysql-test/t/select_all_bka_nixbnl.test mysql-test/t/select_icp_mrr_bka_nixbnl.test mysql-test/t/select_none_bka_nixbnl.test mysql-test/t/subquery_all_bka_nixbnl.test mysql-test/t/subquery_nomat_nosj_bka_nixbnl.test mysql-test/t/subquery_none_bka_nixbnl.test mysql-test/t/subquery_sj_all_bka_nixbnl.test mysql-test/t/subquery_sj_dupsweed_bka_nixbnl.test mysql-test/t/subquery_sj_firstmatch_bka_nixbnl.test mysql-test/t/subquery_sj_innodb_all_bka_nixbnl.test mysql-test/t/subquery_sj_innodb_none_bka_nixbnl.test mysql-test/t/subquery_sj_loosescan_bka_nixbnl.test mysql-test/t/subquery_sj_mat_bka_nixbnl.test mysql-test/t/subquery_sj_none_bka_nixbnl.test 3450 Tor Didriksen 2011-10-04 Trying to clean up contents conflicts for .result files removed: mysql-test/r/join_cache_bka_nobnl.result mysql-test/r/join_nested_bka_nobnl.result mysql-test/r/join_outer_bka_nobnl.result mysql-test/r/select_all_bka_nobnl.result mysql-test/r/select_icp_mrr_bka_nobnl.result mysql-test/r/select_none_bka_nobnl.result mysql-test/r/subquery_all_bka_nobnl.result mysql-test/r/subquery_nomat_nosj_bka_nobnl.result mysql-test/r/subquery_none_bka_nobnl.result mysql-test/r/subquery_sj_all_bka_nobnl.result mysql-test/r/subquery_sj_dupsweed_bka_nobnl.result mysql-test/r/subquery_sj_firstmatch_bka_nobnl.result mysql-test/r/subquery_sj_innodb_all_bka_nobnl.result mysql-test/r/subquery_sj_innodb_none_bka_nobnl.result mysql-test/r/subquery_sj_loosescan_bka_nobnl.result mysql-test/r/subquery_sj_mat_bka_nobnl.result mysql-test/r/subquery_sj_none_bka_nobnl.result mysql-test/t/join_cache_bka_nobnl.test mysql-test/t/join_nested_bka_nobnl.test mysql-test/t/join_outer_bka_nobnl.test mysql-test/t/select_all_bka_nobnl.test mysql-test/t/select_icp_mrr_bka_nobnl.test mysql-test/t/select_none_bka_nobnl.test mysql-test/t/subquery_all_bka_nobnl.test mysql-test/t/subquery_nomat_nosj_bka_nobnl.test mysql-test/t/subquery_none_bka_nobnl.test mysql-test/t/subquery_sj_all_bka_nobnl.test mysql-test/t/subquery_sj_dupsweed_bka_nobnl.test mysql-test/t/subquery_sj_firstmatch_bka_nobnl.test mysql-test/t/subquery_sj_innodb_all_bka_nobnl.test mysql-test/t/subquery_sj_innodb_none_bka_nobnl.test mysql-test/t/subquery_sj_loosescan_bka_nobnl.test mysql-test/t/subquery_sj_mat_bka_nobnl.test mysql-test/t/subquery_sj_none_bka_nobnl.test 3449 Roy Lyseng 2011-10-01 Bug#12714094: Assert in optimize_semijoin_nests() Here we have a subquery with two outer-joined tables, where the outer table of the outer join has a functional dependency to the outer query. pull_out_semijoin_tables() attempts to pull out this table, however we do not support a semi-join nest that has an outer-join dependency to the outer query scope. The consequence was an assert in optimize_semijoin_nests() because the const table detection code erroneously detected a semi-joined inner-of-outer-join table as const. The simple solution to the problem is to not perform pullout of tables that will cause outer-join dependencies across join nests. We now collect information about dependent tables inside pull_out_semijoin_tables() and do not pull out tables that have dependencies from other tables. There was also a consequence for straight-joined tables that use the same dependency information as outer-joined tables. There was special code in make_join_statistics() that attempted to mark dependent tables as const. This code is invalid when the table in question is also a semi-joined table. mysql-test/include/subquery_sj.inc New test for bug#12714094. mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_bka.result mysql-test/r/subquery_sj_all_bka_nobnl.result mysql-test/r/subquery_sj_all_bkaunique.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_bka.result mysql-test/r/subquery_sj_dupsweed_bka_nobnl.result mysql-test/r/subquery_sj_dupsweed_bkaunique.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_bka.result mysql-test/r/subquery_sj_firstmatch_bka_nobnl.result mysql-test/r/subquery_sj_firstmatch_bkaunique.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_bka.result mysql-test/r/subquery_sj_loosescan_bka_nobnl.result mysql-test/r/subquery_sj_loosescan_bkaunique.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_bka.result mysql-test/r/subquery_sj_mat_bka_nobnl.result mysql-test/r/subquery_sj_mat_bkaunique.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_bka.result mysql-test/r/subquery_sj_none_bka_nobnl.result mysql-test/r/subquery_sj_none_bkaunique.result New test results for bug#12714094. sql/sql_select.cc In pull_out_semijoin_tables(), do not pull out tables that have dependencies from other tables. In make_join_statistics(), do not mark as const dependent tables that are part of a semi-join nest. In optimize_semijoin_nests(), tighten a DBUG_ASSERT. After bug#43768 was fixed, we do not allow any const tables inside semi-join nests. modified: mysql-test/include/subquery_sj.inc mysql-test/r/subquery_sj_all.result mysql-test/r/subquery_sj_all_bka.result mysql-test/r/subquery_sj_all_bka_nobnl.result mysql-test/r/subquery_sj_all_bkaunique.result mysql-test/r/subquery_sj_dupsweed.result mysql-test/r/subquery_sj_dupsweed_bka.result mysql-test/r/subquery_sj_dupsweed_bka_nobnl.result mysql-test/r/subquery_sj_dupsweed_bkaunique.result mysql-test/r/subquery_sj_firstmatch.result mysql-test/r/subquery_sj_firstmatch_bka.result mysql-test/r/subquery_sj_firstmatch_bka_nobnl.result mysql-test/r/subquery_sj_firstmatch_bkaunique.result mysql-test/r/subquery_sj_loosescan.result mysql-test/r/subquery_sj_loosescan_bka.result mysql-test/r/subquery_sj_loosescan_bka_nobnl.result mysql-test/r/subquery_sj_loosescan_bkaunique.result mysql-test/r/subquery_sj_mat.result mysql-test/r/subquery_sj_mat_bka.result mysql-test/r/subquery_sj_mat_bka_nobnl.result mysql-test/r/subquery_sj_mat_bkaunique.result mysql-test/r/subquery_sj_mat_nosj.result mysql-test/r/subquery_sj_none.result mysql-test/r/subquery_sj_none_bka.result mysql-test/r/subquery_sj_none_bka_nobnl.result mysql-test/r/subquery_sj_none_bkaunique.result sql/sql_select.cc Diff too large for email (166283 lines, the limit is 10000). No bundle (reason: useless for push emails).