summaryrefslogtreecommitdiff
path: root/sql/item_subselect.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-12-19 21:15:09 +0200
committerunknown <bell@sanja.is.com.ua>2002-12-19 21:15:09 +0200
commita05b0f087c02eb7165a26e531f5e4cc34db0b173 (patch)
tree79e311ce07c95a3067d23f7bd8f90337175249d1 /sql/item_subselect.h
parent900a86f63141bf78b3571518264c5076c3330587 (diff)
downloadmariadb-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.h12
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*);