1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-28 13:01:41 +03:00
Martin Hansson 6d0425b18d Bug#50939: Loose Index Scan unduly relies on engine to
remember range endpoints

The Loose Index Scan optimization keeps track of a sequence
of intervals. For the current interval it maintains the
current interval's endpoints. But the maximum endpoint was
not stored in the SQL layer; rather, it relied on the
storage engine to retain this value in-between reads. By
coincidence this holds for MyISAM and InnoDB. Not for the
partitioning engine, however.

Fixed by making the key values iterator 
(QUICK_RANGE_SELECT) keep track of the current maximum endpoint.
This is also more efficient as we save a call through the
handler API in case of open-ended intervals.

The code to calculate endpoints was extracted into 
separate methods in QUICK_RANGE_SELECT, and it was possible to
get rid of some code duplication as part of fix.
2010-05-10 09:23:23 +02:00
..
2009-08-20 14:30:59 +02:00
2009-02-09 22:00:15 +01:00
2010-02-25 23:13:11 +04:00
2009-02-09 22:00:15 +01:00
2009-06-25 13:44:50 +05:00
2009-09-29 17:38:40 +02:00
2010-02-25 17:12:15 +02:00
2009-03-27 10:18:06 +08:00
2009-02-06 18:25:08 +01:00
2009-01-23 13:22:05 +01:00
2009-12-11 16:02:47 +02:00
2009-05-06 15:00:14 +05:30
2009-09-02 18:58:17 +02:00
2009-04-09 14:38:50 +05:00
2010-05-06 10:59:28 +02:00
2010-04-27 00:46:52 +04:00
2009-10-20 11:00:07 -07:00
2010-05-03 18:14:39 +02:00
2009-01-23 13:22:05 +01:00
2009-12-17 12:06:36 -08:00
2010-01-29 16:54:27 +02:00
2009-12-10 17:38:01 +02:00
2009-02-03 14:45:17 +01:00
2009-08-12 12:03:05 +02:00
2010-03-12 11:52:38 +01:00
2010-01-29 15:08:49 +04:00
2010-01-15 10:51:39 +02:00
2009-07-03 10:19:32 +02:00
2009-11-27 18:10:28 +02:00
2009-12-23 17:44:03 +04:00
2009-06-10 11:58:36 +03:00
2009-02-19 18:24:25 -05:00
2009-01-31 02:08:41 +01:00
2009-12-22 14:38:33 +04:00