diff options
author | bell@sanja.is.com.ua <> | 2002-11-15 20:32:09 +0200 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2002-11-15 20:32:09 +0200 |
commit | 7a9f47759ed74bb05bf95769db21cc375798b199 (patch) | |
tree | bf6f2bb43cd9c75eef36dd94166c76c6b9d402af /sql/item_row.h | |
parent | 76ed2fc40a16441fec494f442576f222e9cf9b01 (diff) | |
download | mariadb-git-7a9f47759ed74bb05bf95769db21cc375798b199.tar.gz |
basic row Items (SCRUM)
Diffstat (limited to 'sql/item_row.h')
-rw-r--r-- | sql/item_row.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sql/item_row.h b/sql/item_row.h new file mode 100644 index 00000000000..6970b240b31 --- /dev/null +++ b/sql/item_row.h @@ -0,0 +1,65 @@ +/* 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 */ + +class Item_row: public Item +{ + bool array_holder; + table_map tables; + uint arg_count; + Item **items; +public: + Item_row(List<Item> &); + Item_row(Item_row *item): + Item(), array_holder(0), tables(item->tables), arg_count(item->arg_count), + items(item->items) + {} + + ~Item_row() + { + if(array_holder && items) + sql_element_free(items); + } + + enum Type type() const { return ROW_ITEM; }; + void illegal_method_call(const char *); + bool is_null() { return null_value; } + void make_field(Send_field *) + { + illegal_method_call((const char*)"make_field"); + }; + double val() + { + illegal_method_call((const char*)"val"); + return 0; + }; + longlong val_int() + { + illegal_method_call((const char*)"val_int"); + return 0; + }; + String *val_str(String *) + { + illegal_method_call((const char*)"val_str"); + return 0; + }; + bool fix_fields(THD *thd, TABLE_LIST *tables, Item **ref); + table_map used_tables() const { return tables; }; + enum Item_result result_type() const { return ROW_RESULT; } + + virtual uint cols() { return arg_count; } + virtual Item* el(uint i) { return items[i]; } + virtual bool check_cols(uint c); +}; |