diff options
author | unknown <bell@sanja.is.com.ua> | 2002-12-19 21:15:09 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-12-19 21:15:09 +0200 |
commit | a05b0f087c02eb7165a26e531f5e4cc34db0b173 (patch) | |
tree | 79e311ce07c95a3067d23f7bd8f90337175249d1 /sql/item_subselect.h | |
parent | 900a86f63141bf78b3571518264c5076c3330587 (diff) | |
download | mariadb-git-a05b0f087c02eb7165a26e531f5e4cc34db0b173.tar.gz |
row IN subselects (SCRUM)
mysql-test/r/subselect.result:
test of row IN subslect
mysql-test/t/subselect.test:
test of row IN subslect
sql/item.cc:
New helper Item - reference on item list by number
cache item for row
sql/item.h:
layout fixed
New helper Item - reference on item list by number
cache item for row
sql/item_cmpfunc.cc:
changed Item_in_optimizer to be able work with row
sql/item_cmpfunc.h:
changed Item_in_optimizer to be able work with row
sql/item_row.cc:
Fixed row Item to be compatible with row subselect
sql/item_row.h:
Fixed row Item to be compatible with row subselect
sql/item_subselect.cc:
changed name of class to corerectly reflex its function
row IN subselect
sql/item_subselect.h:
changed name of class to corerectly reflex its function
row IN subselect
sql/sql_class.cc:
changed name of class to corerectly reflex its function
sql/sql_class.h:
changed name of class to corerectly reflex its function
sql/sql_yacc.yy:
changed name of class to corerectly reflex its function
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 3cb68cb3875..04f0e6f3c83 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -86,18 +86,19 @@ public: bool check_loop(uint id); friend class select_subselect; + friend class Item_in_optimizer; }; /* single value subselect */ class Item_cache; -class Item_singleval_subselect :public Item_subselect +class Item_singlerow_subselect :public Item_subselect { protected: Item_cache *value, **row; public: - Item_singleval_subselect(THD *thd, st_select_lex *select_lex); - Item_singleval_subselect(Item_singleval_subselect *item): + Item_singlerow_subselect(THD *thd, st_select_lex *select_lex); + Item_singlerow_subselect(Item_singlerow_subselect *item): Item_subselect(item) { value= item->value; @@ -109,7 +110,7 @@ public: double val(); longlong val_int (); String *val_str (String *); - Item *new_item() { return new Item_singleval_subselect(this); } + Item *new_item() { return new Item_singlerow_subselect(this); } enum Item_result result_type() const; void fix_length_and_dec(); @@ -120,7 +121,7 @@ public: bool null_inside(); void bring_value(); - friend class select_singleval_subselect; + friend class select_singlerow_subselect; }; /* exists subselect */ @@ -174,6 +175,7 @@ public: virtual void select_transformer(st_select_lex *select_lex); void single_value_transformer(st_select_lex *select_lex, Item *left_expr, compare_func_creator func); + void row_value_transformer(st_select_lex *select_lex, Item *left_expr); longlong val_int(); double val(); String *val_str(String*); |