diff options
author | unknown <serg@serg.mylan> | 2003-10-31 10:34:34 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-10-31 10:34:34 +0100 |
commit | b04629049af702ba4a4ce1b0dc2d4e5d2e698da1 (patch) | |
tree | e3649ecfe44ca927dd7369b8cd2116bb28646ad0 /sql/opt_range.cc | |
parent | e9f308f0b91adb560c75f5d7e333c07949154e7d (diff) | |
parent | ff182082576e4c23fe5049597b2d5ae9b4158526 (diff) | |
download | mariadb-git-b04629049af702ba4a4ce1b0dc2d4e5d2e698da1.tar.gz |
Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
myisam/mi_check.c:
Auto merged
myisam/mi_delete.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/myisamchk.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/range.result:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_test.cc:
Auto merged
sql/sql_yacc.yy:
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 aa216849d76..e2761832e65 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -905,10 +905,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; KEY_PART *end = param->key_parts_end; SEL_TREE *tree=0; @@ -943,6 +950,14 @@ get_mm_parts(PARAM *param, Field *field, Item_func::Functype type, 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_or(param,tree,tree2); + } DBUG_RETURN(tree); } |