diff options
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 4661fae81da..56864109a04 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -120,6 +120,7 @@ public: friend class Item_in_optimizer; friend bool Item_field::fix_fields(THD *, TABLE_LIST *, Item **); friend bool Item_ref::fix_fields(THD *, TABLE_LIST *, Item **); + friend bool Item_param::fix_fields(THD *, TABLE_LIST *, Item **); }; /* single value subselect */ @@ -179,7 +180,7 @@ public: class Item_exists_subselect :public Item_subselect { protected: - longlong value; /* value of this item (boolean: exists/not-exists) */ + bool value; /* value of this item (boolean: exists/not-exists) */ public: Item_exists_subselect(st_select_lex *select_lex); @@ -225,7 +226,8 @@ public: Item_in_subselect(Item * left_expr, st_select_lex *select_lex); Item_in_subselect() - :Item_exists_subselect(), abort_on_null(0), transformed(0), upper_item(0) + :Item_exists_subselect(), optimizer(0), abort_on_null(0), transformed(0), + upper_item(0) {} subs_type substype() { return IN_SUBS; } @@ -236,12 +238,14 @@ public: was_null= 0; } trans_res select_transformer(JOIN *join); - trans_res single_value_transformer(JOIN *join, - Comp_creator *func); + trans_res select_in_like_transformer(JOIN *join, Comp_creator *func); + trans_res single_value_transformer(JOIN *join, Comp_creator *func); trans_res row_value_transformer(JOIN * join); longlong val_int(); double val_real(); String *val_str(String*); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); void top_level_item() { abort_on_null=1; } bool test_limit(st_select_lex_unit *unit); void print(String *str); |