diff options
author | Oleg Smirnov <olernov@gmail.com> | 2023-03-24 21:01:09 +0700 |
---|---|---|
committer | Oleg Smirnov <olernov@gmail.com> | 2023-04-25 20:21:35 +0700 |
commit | 9f9a53be4057a1c65478dfd04cd11fe9c079ce59 (patch) | |
tree | 8b141f912b9bd3a4da7f136d8df66107392152fc /sql/opt_rewrite_date_cmp.cc | |
parent | f0b665f880bb6a6864660818d926fde9db18fa3e (diff) | |
download | mariadb-git-9f9a53be4057a1c65478dfd04cd11fe9c079ce59.tar.gz |
MDEV-30901 Index usage for DATE(datetime_column) = const does not work for engine Memory
Fix incorrect approach to determine whether a field is part of an index.
Remove "force index" hints from tests.
Add tests with composite indexes
Diffstat (limited to 'sql/opt_rewrite_date_cmp.cc')
-rw-r--r-- | sql/opt_rewrite_date_cmp.cc | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sql/opt_rewrite_date_cmp.cc b/sql/opt_rewrite_date_cmp.cc index 234dbb09311..5a6410414da 100644 --- a/sql/opt_rewrite_date_cmp.cc +++ b/sql/opt_rewrite_date_cmp.cc @@ -195,14 +195,12 @@ Item_field *Date_cmp_func_rewriter::is_date_rounded_field(Item* item, if (arg->real_item()->type() == Item::FIELD_ITEM) { Item_field *item_field= (Item_field*)(arg->real_item()); - const key_map * used_indexes= - &item_field->field->table->keys_in_use_for_query; enum_field_types field_type= item_field->field_type(); if ((field_type == MYSQL_TYPE_DATE || field_type == MYSQL_TYPE_DATETIME || field_type == MYSQL_TYPE_NEWDATE || field_type == MYSQL_TYPE_TIMESTAMP) && - item_field->field->part_of_key.is_overlapping(*used_indexes)) + item_field->field->flags & PART_KEY_FLAG) { *out_func_type= func_type; return item_field; |