Skip to content

Commit f0b665f

Browse files
committed
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
1 parent 54c1127 commit f0b665f

17 files changed

+3421
-8
lines changed

libmysqld/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
6868
../sql/key.cc ../sql/lock.cc ../sql/log.cc
6969
../sql/log_event.cc ../sql/log_event_server.cc
7070
../sql/mf_iocache.cc ../sql/my_decimal.cc
71-
../sql/net_serv.cc ../sql/opt_range.cc ../sql/opt_sum.cc
71+
../sql/net_serv.cc ../sql/opt_range.cc
72+
../sql/opt_rewrite_date_cmp.cc
73+
../sql/opt_sum.cc
7274
../sql/parse_file.cc ../sql/procedure.cc ../sql/protocol.cc
7375
../sql/records.cc ../sql/repl_failsafe.cc ../sql/rpl_filter.cc
7476
../sql/rpl_record.cc ../sql/des_key_file.cc

0 commit comments

Comments
 (0)