Hello Roy,
Roy Lyseng a écrit, Le 03.08.2010 09:42:
> #At file:///home/rl136806/mysql/repo/mysql-work2/ based on
> revid:roy.lyseng@stripped
>
> 3222 Roy Lyseng 2010-08-03
> Bug#51457: Firstmatch semijoin strategy gives wrong results for
> certain query plans
>
> When the optimizer selects a semijoin FirstMatch plan that has
> non-correlated tables interspersed with inner tables, the "jumps"
> are placed so that execution might become incorrect.
> Example: A query with an outer correlated table ot, a non-correlated
> table nt and two inner tables it1 and it2 are used in a query and the
> optimizer chooses the FirstMatch join order ot - it1 - nt - it2.
> The optimizer assigns a "jump" from table it2 to ot. This strategy will
> omit duplicates resulting from table nt.
>
> The fix assures that the jump from the last table in a consecutive
> range of inner table goes to the most immediately preceeding outer
> table (regardless of whether the outer table is correlated or not).
> In this case, there are two consecutive ranges of inner tables:
> {it1} and {it2}. In the first range, the last inner table is it1, the
> jump should be to table ot. In the second range, the jump from it2
> should be to nt.
ok to push, thanks.