Approved with the following suggestions:
- Test case could be simplified (e.g., remove columns that are not
referred by query)
- Maybe you should add EXPLAIN for this query to make sure it is
noticed if plan is changed and query no longer tests what it is
supposed to.
- Could add to the comment something about deleting the quick object,
or maybe that is too evident.
--
Øystein
On 15/06/2011 15:57, Roy Lyseng wrote:
> #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.
>
...