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
>>> 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.
>>
>> Hi,
>>
>> 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
> view?
>
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.
--
Øystein