diff options
author | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-10-15 14:42:51 +0400 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-10-15 14:42:51 +0400 |
commit | 79406bc49a7f657c387c9a9e94fcfa83502be9bb (patch) | |
tree | bb4f7a174fc872003133990644cb90b528d572df /sql/opt_range.cc | |
parent | eade89806142877dd0676d7ed27d864dcbda133d (diff) | |
parent | bc9f56a6c2b121e3a5de277585322068afbe1887 (diff) | |
download | mariadb-git-79406bc49a7f657c387c9a9e94fcfa83502be9bb.tar.gz |
Manual merge.
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r-- | sql/opt_range.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 119f90bc97a..04dae4fd815 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -5891,6 +5891,17 @@ get_mm_leaf(RANGE_OPT_PARAM *param, COND *conf_func, Field *field, goto end; } field->table->in_use->variables.sql_mode= orig_sql_mode; + + /* + Any sargable predicate except "<=>" involving NULL as a constant is always + FALSE + */ + if (type != Item_func::EQUAL_FUNC && field->is_real_null()) + { + tree= &null_element; + goto end; + } + str= (uchar*) alloc_root(alloc, key_part->store_length+1); if (!str) goto end; |