diff options
author | unknown <serg@serg.mylan> | 2003-10-31 14:25:38 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-10-31 14:25:38 +0100 |
commit | 01e124de1db58cf59f6403a97220d25bbe2e078a (patch) | |
tree | ed7b399fcc0dba48fd4adfd8712e62b641c9a341 /sql/item_cmpfunc.h | |
parent | 70701c641f2000805fcdbb820036ff1ca3ae4d87 (diff) | |
parent | e286d26b30dfc1d1b6a776d7117d1ed7f99b3b81 (diff) | |
download | mariadb-git-01e124de1db58cf59f6403a97220d25bbe2e078a.tar.gz |
Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1
mysql-test/r/mysqldump.result:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
Diffstat (limited to 'sql/item_cmpfunc.h')
-rw-r--r-- | sql/item_cmpfunc.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 28ba6199bee..9a1b087a63c 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -153,7 +153,9 @@ class Item_func_not :public Item_bool_func public: Item_func_not(Item *a) :Item_bool_func(a) {} longlong val_int(); + enum Functype functype() const { return NOT_FUNC; } const char *func_name() const { return "not"; } + Item *neg_transformer(); }; class Item_func_not_all :public Item_func_not @@ -164,6 +166,8 @@ public: virtual void top_level_item() { abort_on_null= 1; } bool top_level() { return abort_on_null; } longlong val_int(); + enum Functype functype() const { return NOT_ALL_FUNC; } + const char *func_name() const { return "not_all"; } }; class Item_func_eq :public Item_bool_rowready_func2 @@ -175,6 +179,7 @@ public: enum Functype rev_functype() const { return EQ_FUNC; } cond_result eq_cmp_result() const { return COND_TRUE; } const char *func_name() const { return "="; } + Item *neg_transformer(); }; class Item_func_equal :public Item_bool_rowready_func2 @@ -199,6 +204,7 @@ public: enum Functype rev_functype() const { return LE_FUNC; } cond_result eq_cmp_result() const { return COND_TRUE; } const char *func_name() const { return ">="; } + Item *neg_transformer(); }; @@ -211,6 +217,7 @@ public: enum Functype rev_functype() const { return LT_FUNC; } cond_result eq_cmp_result() const { return COND_FALSE; } const char *func_name() const { return ">"; } + Item *neg_transformer(); }; @@ -223,6 +230,7 @@ public: enum Functype rev_functype() const { return GE_FUNC; } cond_result eq_cmp_result() const { return COND_TRUE; } const char *func_name() const { return "<="; } + Item *neg_transformer(); }; @@ -235,6 +243,7 @@ public: enum Functype rev_functype() const { return GT_FUNC; } cond_result eq_cmp_result() const { return COND_FALSE; } const char *func_name() const { return "<"; } + Item *neg_transformer(); }; @@ -247,6 +256,7 @@ public: cond_result eq_cmp_result() const { return COND_FALSE; } optimize_type select_optimize() const { return OPTIMIZE_KEY; } const char *func_name() const { return "<>"; } + Item *neg_transformer(); }; @@ -689,6 +699,7 @@ public: } table_map not_null_tables() const { return 0; } optimize_type select_optimize() const { return OPTIMIZE_NULL; } + Item *neg_transformer(); }; /* Functions used by HAVING for rewriting IN subquery */ @@ -721,6 +732,7 @@ public: const char *func_name() const { return "isnotnull"; } optimize_type select_optimize() const { return OPTIMIZE_NULL; } table_map not_null_tables() const { return 0; } + Item *neg_transformer(); }; @@ -800,7 +812,8 @@ protected: public: /* Item_cond() is only used to create top level items */ - Item_cond() : Item_bool_func(), abort_on_null(1) { const_item_cache=0; } + Item_cond(): Item_bool_func(), abort_on_null(1) + { const_item_cache=0; } Item_cond(Item *i1,Item *i2) :Item_bool_func(), abort_on_null(0) { @@ -808,6 +821,8 @@ public: list.push_back(i2); } Item_cond(THD *thd, Item_cond &item); + Item_cond(List<Item> &nlist) + :Item_bool_func(), list(nlist), abort_on_null(0) {} ~Item_cond() { list.delete_elements(); } bool add(Item *item) { return list.push_back(item); } bool fix_fields(THD *, struct st_table_list *, Item **ref); @@ -821,8 +836,8 @@ public: friend int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds); void top_level_item() { abort_on_null=1; } void copy_andor_arguments(THD *thd, Item_cond *item); - bool walk(Item_processor processor, byte *arg); + void neg_arguments(); }; @@ -832,6 +847,7 @@ public: Item_cond_and() :Item_cond() {} Item_cond_and(Item *i1,Item *i2) :Item_cond(i1,i2) {} Item_cond_and(THD *thd, Item_cond_and &item) :Item_cond(thd, item) {} + Item_cond_and(List<Item> &list): Item_cond(list) {} enum Functype functype() const { return COND_AND_FUNC; } longlong val_int(); const char *func_name() const { return "and"; } @@ -842,6 +858,7 @@ public: item->copy_andor_arguments(thd, this); return item; } + Item *neg_transformer(); }; class Item_cond_or :public Item_cond @@ -850,6 +867,7 @@ public: Item_cond_or() :Item_cond() {} Item_cond_or(Item *i1,Item *i2) :Item_cond(i1,i2) {} Item_cond_or(THD *thd, Item_cond_or &item) :Item_cond(thd, item) {} + Item_cond_or(List<Item> &list): Item_cond(list) {} enum Functype functype() const { return COND_OR_FUNC; } longlong val_int(); const char *func_name() const { return "or"; } @@ -861,6 +879,7 @@ public: item->copy_andor_arguments(thd, this); return item; } + Item *neg_transformer(); }; |