diff options
author | unknown <bell@sanja.is.com.ua> | 2002-11-28 19:29:26 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-11-28 19:29:26 +0200 |
commit | 6f80b711692d99d5d197cece8fe978eab6f1f3ec (patch) | |
tree | 00a9de3df37ec79df37b41b63cb2971efe86b0a1 /sql/item_subselect.h | |
parent | 5a1b9e1d05ec4c52e89df1adf40312a55f8b7d3f (diff) | |
download | mariadb-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.h | 6 |
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(); }; |