diff options
Diffstat (limited to 'sql/item_cmpfunc.h')
-rw-r--r-- | sql/item_cmpfunc.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 7d99cbdb936..8f01e4fa13f 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -284,6 +284,7 @@ public: Item_func_truth(thd, a, true, false) {} ~Item_func_isnottrue() {} virtual const char* func_name() const { return "isnottrue"; } + bool find_not_null_fields(table_map allowed) { return false; } Item *get_copy(THD *thd) { return get_item_copy<Item_func_isnottrue>(thd, this); } }; @@ -315,6 +316,7 @@ public: Item_func_truth(thd, a, false, false) {} ~Item_func_isnotfalse() {} virtual const char* func_name() const { return "isnotfalse"; } + bool find_not_null_fields(table_map allowed) { return false; } Item *get_copy(THD *thd) { return get_item_copy<Item_func_isnotfalse>(thd, this); } }; @@ -376,6 +378,7 @@ public: virtual void get_cache_parameters(List<Item> ¶meters); bool is_top_level_item(); bool eval_not_null_tables(void *opt_arg); + bool find_not_null_fields(table_map allowed); void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); bool invisible_mode(); void reset_cache() { cache= NULL; } @@ -571,6 +574,7 @@ public: void print(String *str, enum_query_type query_type) { Item_func::print_op(str, query_type); } longlong val_int(); + bool find_not_null_fields(table_map allowed) { return false; } Item *neg_transformer(THD *thd); Item* propagate_equal_fields(THD *thd, const Context &ctx, COND_EQUAL *cond) { @@ -592,6 +596,7 @@ public: longlong val_int(); enum Functype functype() const { return NOT_FUNC; } const char *func_name() const { return "not"; } + bool find_not_null_fields(table_map allowed) { return false; } enum precedence precedence() const { return BANG_PRECEDENCE; } Item *neg_transformer(THD *thd); bool fix_fields(THD *, Item **); @@ -736,6 +741,7 @@ public: longlong val_int(); bool fix_length_and_dec(); table_map not_null_tables() const { return 0; } + bool find_not_null_fields(table_map allowed) { return false; } enum Functype functype() const { return EQUAL_FUNC; } enum Functype rev_functype() const { return EQUAL_FUNC; } cond_result eq_cmp_result() const { return COND_TRUE; } @@ -912,6 +918,7 @@ public: bool fix_length_and_dec_numeric(THD *); virtual void print(String *str, enum_query_type query_type); bool eval_not_null_tables(void *opt_arg); + bool find_not_null_fields(table_map allowed); void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); bool count_sargable_conds(void *arg); void add_key_fields(JOIN *join, KEY_FIELD **key_fields, @@ -2396,6 +2403,7 @@ public: const char *func_name() const { return "in"; } enum precedence precedence() const { return CMP_PRECEDENCE; } bool eval_not_null_tables(void *opt_arg); + bool find_not_null_fields(table_map allowed); void fix_after_pullout(st_select_lex *new_parent, Item **ref, bool merge); bool count_sargable_conds(void *arg); Item *get_copy(THD *thd) @@ -2533,6 +2541,7 @@ public: COND *remove_eq_conds(THD *thd, Item::cond_result *cond_value, bool top_level); table_map not_null_tables() const { return 0; } + bool find_not_null_fields(table_map allowed); Item *neg_transformer(THD *thd); Item *get_copy(THD *thd) { return get_item_copy<Item_func_isnull>(thd, this); } @@ -2953,6 +2962,7 @@ public: Item *compile(THD *thd, Item_analyzer analyzer, uchar **arg_p, Item_transformer transformer, uchar *arg_t); bool eval_not_null_tables(void *opt_arg); + bool find_not_null_fields(table_map allowed); Item *build_clone(THD *thd); bool excl_dep_on_table(table_map tab_map); bool excl_dep_on_grouping_fields(st_select_lex *sel); @@ -3119,6 +3129,7 @@ public: eval_item= NULL; } void update_used_tables(); + bool find_not_null_fields(table_map allowed); COND *build_equal_items(THD *thd, COND_EQUAL *inherited, bool link_item_fields, COND_EQUAL **cond_equal_ref); |