diff options
author | bell@sanja.is.com.ua <> | 2003-10-28 12:45:37 +0200 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2003-10-28 12:45:37 +0200 |
commit | ae380c58552728451cc04113b4b7b57bb5f919f7 (patch) | |
tree | 1088bf30fb5febda5000cffc7db8982c9e5d1257 /sql/item_subselect.h | |
parent | ea075fbb657fad05a2d20199b7c544c4bee05d1f (diff) | |
parent | 934fa2a10420bee1e2893cb6772c584678999603 (diff) | |
download | mariadb-git-ae380c58552728451cc04113b4b7b57bb5f919f7.tar.gz |
merge
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 7e735165c02..8d438d0e72f 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -92,13 +92,7 @@ public: inline table_map get_used_tables_cache() { return used_tables_cache; } inline bool get_const_item_cache() { return const_item_cache; } void update_used_tables(); - void print(String *str) - { - if (name) - str->append(name); - else - str->append("-subselect-"); - } + void print(String *str); bool change_engine(subselect_engine *eng) { engine= eng; @@ -147,9 +141,11 @@ public: /* used in static ALL/ANY optimisation */ class Item_maxmin_subselect :public Item_singlerow_subselect { + bool max; public: Item_maxmin_subselect(Item_subselect *parent, st_select_lex *select_lex, bool max); + void print(String *str); }; /* exists subselect */ @@ -174,6 +170,7 @@ public: double val(); String *val_str(String*); void fix_length_and_dec(); + void print(String *str); friend class select_exists_subselect; friend class subselect_uniquesubquery_engine; @@ -194,12 +191,15 @@ protected: Item_in_optimizer *optimizer; bool was_null; bool abort_on_null; + bool transformed; public: Item_func_not_all *upper_not; // point on NOT before ALL subquery Item_in_subselect(Item * left_expr, st_select_lex *select_lex); Item_in_subselect() - :Item_exists_subselect(), abort_on_null(0), upper_not(0) {} + :Item_exists_subselect(), abort_on_null(0), transformed(0), upper_not(0) + + {} subs_type substype() { return IN_SUBS; } void reset() @@ -219,6 +219,7 @@ public: String *val_str(String*); void top_level_item() { abort_on_null=1; } bool test_limit(st_select_lex_unit *unit); + void print(String *str); friend class Item_ref_null_helper; friend class Item_is_not_null_test; @@ -233,12 +234,15 @@ protected: compare_func_creator func; public: + bool all; + Item_allany_subselect(Item * left_expr, compare_func_creator f, - st_select_lex *select_lex); + st_select_lex *select_lex, bool all); // only ALL subquery has upper not subs_type substype() { return upper_not?ALL_SUBS:ANY_SUBS; } trans_res select_transformer(JOIN *join); + void print(String *str); }; @@ -276,6 +280,7 @@ public: bool may_be_null() { return maybe_null; }; virtual table_map upper_select_const_tables()= 0; static table_map calc_const_tables(TABLE_LIST *); + virtual void print(String *str)= 0; }; @@ -298,6 +303,7 @@ public: bool uncacheable(); void exclude(); table_map upper_select_const_tables(); + void print (String *str); }; @@ -316,6 +322,7 @@ public: bool uncacheable(); void exclude(); table_map upper_select_const_tables(); + void print (String *str); }; @@ -343,6 +350,7 @@ public: bool uncacheable() { return 1; } void exclude(); table_map upper_select_const_tables() { return 0; } + void print (String *str); }; @@ -359,4 +367,5 @@ public: check_null(chk_null) {} int exec(); + void print (String *str); }; |