On 16/06/2011 10:48, Roy Lyseng wrote:
> On 16.06.11 10.03, Øystein Grøvlen wrote:
>> On 15/06/2011 15:57, Roy Lyseng wrote:
>>> #At file:///home/rl136806/mysql/repo/mysql-work0/ based on
>>> 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.
>> Did you consider deleting the quick select object at the point where
>> it is
>> decided to not use it?
> IMHO this is the place where the decision is taken. Do you have another
You say in it the commit comments that the quick select object was not
selected in Loose_scan_opt::check_ref_access_part1(). Sounds to me like
that is where the decision is made. Maybe that is where the
need_sorted_output call should have been put in the first place.