diff options
author | Igor Babaev <igor@askmonty.org> | 2019-08-30 15:49:07 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2019-08-30 15:49:07 -0700 |
commit | d1490c177139faa71cd88af71fdb7d88a8f45000 (patch) | |
tree | 86086ac8d6816708919e258d10350fb5d4e4bf04 /sql/item.cc | |
parent | 7060b0320d1479bb9476e0cbd4acc584e059e1ff (diff) | |
download | mariadb-git-10.3-mdev15777.tar.gz |
MDEV-15777 Use inferred IS NOT NULL predicates in the range optimizer10.3-mdev15777
This patch introduces the optimization that allows range optimizer to
consider index range scans that are built employing NOT NULL predicates
inferred from WHERE conditions and ON expressions.
The patch adds a new optimizer switch not_null_range_scan.
Diffstat (limited to 'sql/item.cc')
-rw-r--r-- | sql/item.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc index 3584230fb2a..9c956116f72 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3556,6 +3556,16 @@ table_map Item_field::all_used_tables() const } +bool Item_field::find_not_null_fields(table_map allowed) +{ + if (field->table->const_table) + return false; + if (!get_depended_from() && field->real_maybe_null()) + bitmap_set_bit(&field->table->tmp_set, field->field_index); + return false; +} + + /* @Note thd->fatal_error can be set in case of OOM */ |