List:Commits« Previous MessageNext Message »
From:Øystein Grøvlen Date:November 24 2010 2:36pm
Subject:Re: bzr commit into mysql-trunk branch (jorgen.loland:3287) Bug#54641
View as plain text  
Hi Jørgen,

THanks for adressing my requests. Approved.

--
Øystein

On 11/24/10 03:06 PM, Jorgen Loland wrote:
> #At file:///export/home/jl208045/mysql/mysql-next-mr-opt-backporting-54641-2/ based
> on revid:tor.didriksen@stripped
>
>   3287 Jorgen Loland	2010-11-24
>        Bug#54641: semijoin loosescan gives duplicate rows
>
>        The loosescan semijoin strategy does not handle join buffering
>        on any of the tables in the loosescan range. Prior to this bug
>        fix, check_join_cache_usage() would not do join buffering on a
>        join table if the loosescan_match_tab pointer was set for it.
>
>        However, loosescan_match_tab is a pointer from the first to the
>        last join table handled by the loosescan strategy. Join
>        buffering could therefore be used on all join tables except
>        the first in the loosescan range.
>
>        The fix is to skip join buffering if the join table is in
>        the loosescan range, i.e., if
>        join_tab->get_sj_strategy() == SJ_OPT_LOOSE_SCAN,
>        instead of checking loosescan_match_tab.
>       @ mysql-test/include/subquery_sj.inc
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_all.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_all_jcl6.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_all_jcl7.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_dupsweed.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_dupsweed_jcl6.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_dupsweed_jcl7.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_firstmatch.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_firstmatch_jcl6.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_firstmatch_jcl7.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_loosescan.result
>          Updated test result after fixing BUG#54641
>       @ mysql-test/r/subquery_sj_loosescan_jcl6.result
>          Updated test result after fixing BUG#54641
>       @ mysql-test/r/subquery_sj_loosescan_jcl7.result
>          Updated test result after fixing BUG#54641
>       @ mysql-test/r/subquery_sj_mat.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_mat_jcl6.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_mat_jcl7.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_mat_nosj.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_none.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_none_jcl6.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ mysql-test/r/subquery_sj_none_jcl7.result
>          Add EXPLAIN to query that failed in bug#54641
>       @ sql/sql_select.cc
>          In check_join_cache_usage: skip join buffering if the join
>          table is in the loosescan range. This was previously done by
>          checking if the join table's loosescan_match_tab was set, but
>          is now done by checking if it's semijoin strategy is
>          SJ_OPT_LOOSE_SCAN.
>
>      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

...
Thread
bzr commit into mysql-trunk branch (jorgen.loland:3287) Bug#54641Jorgen Loland24 Nov
  • Re: bzr commit into mysql-trunk branch (jorgen.loland:3287) Bug#54641Øystein Grøvlen24 Nov