diff options
author | unknown <igor@rurik.mysql.com> | 2003-08-26 00:13:22 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2003-08-26 00:13:22 -0700 |
commit | f6758b47fb75fb7f39e4883d53523bfda589adfd (patch) | |
tree | 8f6c56f59666be1b54701f57e779e904575b1a4a /sql/opt_range.cc | |
parent | 3b799e8fd8eb13c7ad6e2bb01a922e37d9101ea7 (diff) | |
parent | b9a90dffb6c429ab405d036734b3b04b98df69d6 (diff) | |
download | mariadb-git-f6758b47fb75fb7f39e4883d53523bfda589adfd.tar.gz |
Manual merge
include/my_base.h:
Auto merged
include/my_global.h:
Auto merged
include/my_sys.h:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_extra.c:
Auto merged
myisam/mi_locking.c:
Auto merged
myisam/myisamchk.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/r/key_cache.result:
Auto merged
mysql-test/t/key_cache.test:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.h:
Auto merged
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r-- | sql/opt_range.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 23fb36c0c91..8720603f3f9 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -880,10 +880,17 @@ static SEL_TREE * get_mm_parts(PARAM *param,Field *field, Item_func::Functype type,Item *value, Item_result cmp_type) { + bool ne_func= FALSE; DBUG_ENTER("get_mm_parts"); if (field->table != param->table) DBUG_RETURN(0); + if (type == Item_func::NE_FUNC) + { + ne_func= TRUE; + type= Item_func::LT_FUNC; + } + KEY_PART *key_part = param->key_parts,*end=param->key_parts_end; SEL_TREE *tree=0; if (value && @@ -913,6 +920,14 @@ get_mm_parts(PARAM *param,Field *field, Item_func::Functype type,Item *value, tree->keys[key_part->key]=sel_add(tree->keys[key_part->key],sel_arg); } } + + if (ne_func) + { + SEL_TREE *tree2= get_mm_parts(param, field, Item_func::GT_FUNC, + value, cmp_type); + if (tree2) + tree= tree=tree_or(param,tree,tree2); + } DBUG_RETURN(tree); } |