You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug#36775910: Record buffer not set in index range scans
The member, "m_expected_rows" defined as part of the
IndexRangeScanIterator is meant to be a "double" but
was unintentionally changed to "bool" as part of
refactoring done in range optimizer. Because of which,
innodb's record buffer setting was affected.
We are correcting it in this patch. (No test case added
as this might impact performance more than the correctness).
When the record buffer was enabled for index range scans
a problem arised with multi-valued indexes used for
covering index range scans. Note that this is only
possible when they are used as part of index merge
scans as index merge scans force covering index
scans. Problem is that the current implementation of
Field_typed_array::key_cmp() needs the value of the
generated column for the indexed expression, and this
column is not available in the multi-valued index, so
the storage engine cannot safely evaluate the end range
condition when filling the record buffer when it's a
covering scan.
So we disable using the record buffer when multi-valued
indexes are used for covering index range scans.
Change-Id: I889ef0b8b3da7b2234d27d5dd1dc69a8ae8a6557
0 commit comments