diff options
author | unknown <bell@sanja.is.com.ua> | 2002-05-12 23:46:42 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-05-12 23:46:42 +0300 |
commit | 044cbe42ac583969f8339f6974f90e4430371536 (patch) | |
tree | 2ee96debc611fd8bdc4026fe156195e2ae1b715d /sql/item_subselect.h | |
parent | b69d8dab20811845e41c9f5c770125fd2f3b1a2f (diff) | |
download | mariadb-git-044cbe42ac583969f8339f6974f90e4430371536.tar.gz |
simple subselects ported to new select_lex structures
include/mysqld_error.h:
simple subselects
libmysqld/Makefile.am:
simple subselects
sql/Makefile.am:
simple subselects
sql/item.h:
simple subselects
sql/item_strfunc.h:
simple subselects
sql/share/czech/errmsg.txt:
simple subselects
sql/share/danish/errmsg.txt:
simple subselects
sql/share/dutch/errmsg.txt:
simple subselects
sql/share/english/errmsg.txt:
simple subselects
sql/share/estonian/errmsg.txt:
simple subselects
sql/share/french/errmsg.txt:
simple subselects
sql/share/german/errmsg.txt:
simple subselects
sql/share/greek/errmsg.txt:
simple subselects
sql/share/hungarian/errmsg.txt:
simple subselects
sql/share/italian/errmsg.txt:
simple subselects
sql/share/japanese/errmsg.txt:
simple subselects
sql/share/korean/errmsg.txt:
simple subselects
sql/share/norwegian-ny/errmsg.txt:
simple subselects
sql/share/norwegian/errmsg.txt:
simple subselects
sql/share/polish/errmsg.txt:
simple subselects
sql/share/portuguese/errmsg.txt:
simple subselects
sql/share/romanian/errmsg.txt:
simple subselects
sql/share/russian/errmsg.txt:
simple subselects
sql/share/slovak/errmsg.txt:
simple subselects
sql/share/spanish/errmsg.txt:
simple subselects
sql/share/swedish/errmsg.txt:
simple subselects
sql/share/ukrainian/errmsg.txt:
simple subselects
sql/sql_class.cc:
simple subselects
sql/sql_class.h:
simple subselects
sql/sql_lex.cc:
simple subselects
sql/sql_select.cc:
simple subselects
sql/sql_select.h:
simple subselects
sql/sql_union.cc:
simple subselects
sql/sql_yacc.yy:
simple subselects
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h new file mode 100644 index 00000000000..096da68600c --- /dev/null +++ b/sql/item_subselect.h @@ -0,0 +1,79 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* subselect Item */ + +#ifdef __GNUC__ +#pragma interface /* gcc class implementation */ +#endif + +struct st_select_lex; +class JOIN; +class select_subselect; + +/* simple (not depended of covered select ) subselect */ + +class Item_subselect :public Item +{ +protected: + my_bool executed; /* simple subselect is executed */ + longlong int_value; + double real_value; + enum Item_result res_type; + + int exec(); + void assign_null() + { + null_value= 1; + int_value= 0; + real_value= 0; + max_length= 4; + res_type= STRING_RESULT; + } +public: + st_select_lex *select_lex; + JOIN *join; + select_subselect *result; + + Item_subselect(THD *thd, st_select_lex *select_lex); + Item_subselect(Item_subselect *item) + { + null_value= item->null_value; + int_value= item->int_value; + real_value= item->real_value; + max_length= item->max_length; + decimals= item->decimals; + res_type= item->res_type; + executed= item->executed; + select_lex= item->select_lex; + join= item->join; + result= item->result; + name= item->name; + } + enum Type type() const; + double val (); + longlong val_int (); + String *val_str (String *); + bool is_null() { return null_value; } + void make_field (Send_field *); + bool fix_fields(THD *thd, TABLE_LIST *tables); + Item *new_item() { return new Item_subselect(this); } + enum Item_result result_type() const { return res_type; } + + friend class select_subselect; +}; + + |