mariadb/mysql-test/suite
Dave Gosselin 7e4233746e MDEV-34413 Index Condition Pushdown for reverse ordered scans
Allows index condition pushdown for reverse ordered scans, a previously
disabled feature due to poor performance.  This patch adds a new
API to the handler class called set_end_range which allows callers to
tell the handler what the end of the index range will be when scanning.
Combined with a pushed index condition, the handler can scan the index
efficiently and not read beyond the end of the given range.  When
checking if the pushed index condition matches, the handler will also
check if scanning has reached the end of the provided range and stop if
so.

If we instead only enabled ICP for reverse ordered scans without
also calling this new API, then the handler would perform unnecessary
index condition checks.  In fact this would continue until the end of
the index is reached.

These changes are agnostic of storage engine.  That is, any storage
engine that supports index condition pushdown will inhereit this new
behavior as it is implemented in the SQL and storage engine
API layers.

The partitioned tables storage meta-engine (ha_partition) adds an
override of set_end_range which recursively calls set_end_range on its
child storage engine (handler) implementations.

This commit updates the test made in an earlier commit to show that
ICP matches happen for the reverse ordered case.

This patch is based on changes written by Olav Sandstaa in
MySQL commit da1d92fd46071cd86de61058b6ea39fd9affcd87
2025-03-19 16:03:29 -04:00
..
archive Merge branch '10.5' into 10.6 2024-12-17 11:06:09 +11:00
atomic Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
binlog cleanup: select ... into tests 2025-02-11 20:31:25 +01:00
binlog_encryption Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
client MDEV-14978 fix client.client-env-variable test 2024-10-19 16:53:16 +02:00
compat Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
csv
encryption MDEV-9158 post-merge fixes 2025-02-11 20:31:36 +01:00
engines cleanup: select ... into tests 2025-02-11 20:31:25 +01:00
events Merge 11.4 into 11.7 2024-12-02 17:51:17 +02:00
federated Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
funcs_1 MDEV-35304: Add Connects_Tried and Master_Retry_Count to SSS 2025-02-26 20:37:53 -07:00
funcs_2
galera Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
galera_3nodes Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
galera_3nodes_sr MDEV-35124 Set innodb_snapshot_isolation=ON by default 2024-10-11 15:02:31 +03:00
galera_sr Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
gcol Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
handler Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
heap Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
innodb Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
innodb_fts Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
innodb_gis Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
innodb_i_s
innodb_zip Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
jp
json MariaDB 11.4.4 release 2024-11-08 07:17:00 +01:00
large_tests
maria MDEV-34413 Index Condition Pushdown for reverse ordered scans 2025-03-19 16:03:29 -04:00
mariabackup Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
merge MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
mtr/t Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
mtr2
multi_source MDEV-35304: Add Connects_Tried and Master_Retry_Count to SSS 2025-02-26 20:37:53 -07:00
optimizer_unfixed_bugs
parts Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
perfschema Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
perfschema_stress
period cleanup: select ... into tests 2025-02-11 20:31:25 +01:00
plugins Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
roles 12.0 branch 2025-02-12 12:37:38 +01:00
rpl Merge 11.8 into main 2025-03-05 21:20:02 +02:00
s3 Merge branch '11.7' into 11.8 2025-02-11 20:29:43 +01:00
sql_sequence Merge branch '11.7' into 11.8 2025-02-11 20:29:43 +01:00
storage_engine
stress MDEV-34453 Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1 2024-09-20 20:26:43 +05:30
sys_vars Merge 11.8 into main 2025-03-05 21:20:02 +02:00
sysschema MDEV-31736: format_bytes implementation 2024-11-26 13:10:01 +04:00
unit Merge branch '11.4' into 11.5 2024-08-05 17:50:18 +02:00
vcol cleanup: select ... into tests 2025-02-11 20:31:25 +01:00
versioning cleanup: select ... into tests 2025-02-11 20:31:25 +01:00
wsrep Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00