diff options
author | Oleg Smirnov <olernov@gmail.com> | 2023-02-17 19:21:30 +0700 |
---|---|---|
committer | Oleg Smirnov <olernov@gmail.com> | 2023-04-25 20:21:35 +0700 |
commit | f0b665f880bb6a6864660818d926fde9db18fa3e (patch) | |
tree | 98c94847fde17e9d25780d65075191547cf61812 /sql/CMakeLists.txt | |
parent | 54c11273e340620f319d0675166bd04b6e64db26 (diff) | |
download | mariadb-git-f0b665f880bb6a6864660818d926fde9db18fa3e.tar.gz |
MDEV-8320 Allow index usage for DATE(col) <=> const and YEAR <=> const
Rewrite datetime comparison conditions into sargeable. For example,
YEAR(col) <= val -> col <= YEAR_END(val)
YEAR(col) < val -> col < YEAR_START(val)
YEAR(col) >= val -> col >= YEAR_START(val)
YEAR(col) > val -> col > YEAR_END(val)
YEAR(col) = val -> col BETWEEN YEAR_START(val) AND YEAR_END(val)
Do the same with DATE(col), for example:
DATE(col) <= val -> col <= DAY_END(val)
After such a rewrite index lookup on column "col" can be employed
Diffstat (limited to 'sql/CMakeLists.txt')
-rw-r--r-- | sql/CMakeLists.txt | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 2ac802314ee..9ef1ee46d5c 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -111,7 +111,9 @@ SET (SQL_SOURCE mf_iocache.cc my_decimal.cc mysqld.cc net_serv.cc keycaches.cc ../sql-common/client_plugin.c - opt_range.cc opt_sum.cc + opt_range.cc + opt_rewrite_date_cmp.cc + opt_sum.cc ../sql-common/pack.c parse_file.cc password.c procedure.cc protocol.cc records.cc repl_failsafe.cc rpl_filter.cc session_tracker.cc |