summaryrefslogtreecommitdiff
path: root/sql/item_subselect.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-11-27 11:32:09 +0200
committerunknown <bell@sanja.is.com.ua>2002-11-27 11:32:09 +0200
commit9767982aedb23183e8fc9d5ba636971e0d81a2b5 (patch)
tree5823bb4d6eb700331dfdc95fbb346bc60f6a7348 /sql/item_subselect.h
parent6987b41456dff437195beb6b6974e48fd0fcf633 (diff)
parente9f96cf92a82db9afda5cb9fe9d392b29bbdfb9c (diff)
downloadmariadb-git-9767982aedb23183e8fc9d5ba636971e0d81a2b5.tar.gz
merging
sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_subselect.cc: Auto merged sql/item_subselect.h: Auto merged sql/item_sum.cc: Auto merged sql/item_sum.h: Auto merged sql/lex.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r--sql/item_subselect.h27
1 files changed, 16 insertions, 11 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h
index 3d455b6decf..3a635ace8ba 100644
--- a/sql/item_subselect.h
+++ b/sql/item_subselect.h
@@ -31,7 +31,7 @@ typedef Item_bool_func2* (*compare_func_creator)(Item*, Item*);
/* base class for subselects */
-class Item_subselect :public Item
+class Item_subselect :public Item_result_field
{
my_bool engine_owner; /* Is this item owner of engine */
my_bool value_assigned; /* value already assigned to subselect */
@@ -75,6 +75,7 @@ public:
bool fix_fields(THD *thd, TABLE_LIST *tables, Item **ref);
virtual void fix_length_and_dec();
table_map used_tables() const;
+ bool check_loop(uint id);
friend class select_subselect;
};
@@ -120,6 +121,7 @@ public:
Item *new_item() { return new Item_singleval_subselect(this); }
enum Item_result result_type() const { return res_type; }
void fix_length_and_dec();
+
friend class select_singleval_subselect;
};
@@ -210,6 +212,7 @@ public:
virtual uint cols()= 0; /* return number of columnss in select */
virtual bool depended()= 0; /* depended from outer select */
enum Item_result type() { return res_type; }
+ virtual bool check_loop(uint id)= 0;
};
class subselect_single_select_engine: public subselect_engine
@@ -223,11 +226,12 @@ public:
subselect_single_select_engine(THD *thd, st_select_lex *select,
select_subselect *result,
Item_subselect *item);
- virtual int prepare();
- virtual void fix_length_and_dec();
- virtual int exec();
- virtual uint cols();
- virtual bool depended();
+ int prepare();
+ void fix_length_and_dec();
+ int exec();
+ uint cols();
+ bool depended();
+ bool check_loop(uint id);
};
class subselect_union_engine: public subselect_engine
@@ -238,9 +242,10 @@ public:
st_select_lex_unit *u,
select_subselect *result,
Item_subselect *item);
- virtual int prepare();
- virtual void fix_length_and_dec();
- virtual int exec();
- virtual uint cols();
- virtual bool depended();
+ int prepare();
+ void fix_length_and_dec();
+ int exec();
+ uint cols();
+ bool depended();
+ bool check_loop(uint id);
};