summaryrefslogtreecommitdiff
path: root/sql/item_subselect.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-11-28 19:29:26 +0200
committerunknown <bell@sanja.is.com.ua>2002-11-28 19:29:26 +0200
commit6f80b711692d99d5d197cece8fe978eab6f1f3ec (patch)
tree00a9de3df37ec79df37b41b63cb2971efe86b0a1 /sql/item_subselect.h
parent5a1b9e1d05ec4c52e89df1adf40312a55f8b7d3f (diff)
downloadmariadb-git-6f80b711692d99d5d197cece8fe978eab6f1f3ec.tar.gz
fixed * without tables in IN bug
fixed sunction-test select in IN bug fixed unions in subselect bug include/mysqld_error.h: new warning mysql-test/r/subselect.result: test of * without tables in IN test of sunction-test select in IN test of unions in subselect mysql-test/t/subselect.test: test of * without tables in IN test of sunction-test select in IN test of unions in subselect sql/item.cc: fixed * substitution without tables sql/item_subselect.cc: fixed subselect rewriting with function-test subselect sql/item_subselect.h: mechanism for subselect removing sql/share/czech/errmsg.txt: new warning sql/share/danish/errmsg.txt: new warning sql/share/dutch/errmsg.txt: new warning sql/share/english/errmsg.txt: new warning sql/share/estonian/errmsg.txt: new warning sql/share/french/errmsg.txt: new warning sql/share/german/errmsg.txt: new warning sql/share/greek/errmsg.txt: new warning sql/share/hungarian/errmsg.txt: new warning sql/share/italian/errmsg.txt: new warning sql/share/japanese/errmsg.txt: new warning sql/share/korean/errmsg.txt: new warning sql/share/norwegian-ny/errmsg.txt: new warning sql/share/norwegian/errmsg.txt: new warning sql/share/polish/errmsg.txt: new warning sql/share/portuguese/errmsg.txt: new warning sql/share/romanian/errmsg.txt: new warning sql/share/russian/errmsg.txt: new warning sql/share/serbian/errmsg.txt: new warning sql/share/slovak/errmsg.txt: new warning sql/share/spanish/errmsg.txt: new warning sql/share/swedish/errmsg.txt: new warning sql/share/ukrainian/errmsg.txt: new warning sql/sql_base.cc: fixed case on no name field in UNION subselect sql/sql_lex.cc: mechanisp of removing single subselect for optimisation purposes sql/sql_lex.h: mechanisp of removing single subselect for optimisation purposes sql/sql_parse.cc: error handling sql/sql_union.cc: fixed unions in subselect sql/sql_yacc.yy: fixed Lex->describe flag appearence
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r--sql/item_subselect.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h
index 3a635ace8ba..d323dab51f1 100644
--- a/sql/item_subselect.h
+++ b/sql/item_subselect.h
@@ -36,6 +36,8 @@ 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 */
protected:
+ /* substitution instead of subselect in case of optimization */
+ Item *substitution;
/* engine that perform execution of subselect (single select or union) */
subselect_engine *engine;
/* allowed number of columns (1 for single value subqueries) */
@@ -45,6 +47,7 @@ public:
Item_subselect();
Item_subselect(Item_subselect *item)
{
+ substitution= item->substitution;
null_value= item->null_value;
decimals= item->decimals;
max_columns= item->max_columns;
@@ -213,6 +216,7 @@ public:
virtual bool depended()= 0; /* depended from outer select */
enum Item_result type() { return res_type; }
virtual bool check_loop(uint id)= 0;
+ virtual void exclude()= 0;
};
class subselect_single_select_engine: public subselect_engine
@@ -232,6 +236,7 @@ public:
uint cols();
bool depended();
bool check_loop(uint id);
+ void exclude();
};
class subselect_union_engine: public subselect_engine
@@ -248,4 +253,5 @@ public:
uint cols();
bool depended();
bool check_loop(uint id);
+ void exclude();
};