diff options
author | unknown <bell@sanja.is.com.ua> | 2002-11-15 20:32:09 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-11-15 20:32:09 +0200 |
commit | 3f742831211a4d53d97c5ac6ee402b4782de8776 (patch) | |
tree | bf6f2bb43cd9c75eef36dd94166c76c6b9d402af /sql/item_row.cc | |
parent | 5a8c6a33c22ed68acdccbde0649420cd8a80ad9d (diff) | |
download | mariadb-git-3f742831211a4d53d97c5ac6ee402b4782de8776.tar.gz |
basic row Items (SCRUM)
include/mysql_com.h:
basic row Items
include/mysqld_error.h:
more wide error mening
libmysqld/Makefile.am:
basic row Items
mysql-test/r/subselect.result:
more wide error mening
sql/Makefile.am:
basic row Items
sql/filesort.cc:
basic row Items
sql/item.cc:
basic row Items
sql/item.h:
basic row Items
sql/item_cmpfunc.cc:
basic row Items
sql/item_cmpfunc.h:
basic row Items
sql/item_func.cc:
basic row Items
sql/item_func.h:
basic row Items
sql/item_strfunc.cc:
basic row Items
sql/item_strfunc.h:
basic row Items
sql/item_subselect.cc:
basic row Items
sql/item_sum.cc:
basic row Items
sql/share/czech/errmsg.txt:
more wide error mening
sql/share/danish/errmsg.txt:
more wide error mening
sql/share/dutch/errmsg.txt:
more wide error mening
sql/share/english/errmsg.txt:
more wide error mening
sql/share/estonian/errmsg.txt:
more wide error mening
sql/share/french/errmsg.txt:
more wide error mening
sql/share/german/errmsg.txt:
more wide error mening
sql/share/greek/errmsg.txt:
more wide error mening
sql/share/hungarian/errmsg.txt:
more wide error mening
sql/share/italian/errmsg.txt:
more wide error mening
sql/share/japanese/errmsg.txt:
more wide error mening
sql/share/korean/errmsg.txt:
more wide error mening
sql/share/norwegian-ny/errmsg.txt:
more wide error mening
sql/share/norwegian/errmsg.txt:
more wide error mening
sql/share/polish/errmsg.txt:
more wide error mening
sql/share/portuguese/errmsg.txt:
more wide error mening
sql/share/romanian/errmsg.txt:
more wide error mening
sql/share/russian/errmsg.txt:
more wide error mening
sql/share/serbian/errmsg.txt:
more wide error mening
sql/share/slovak/errmsg.txt:
more wide error mening
sql/share/spanish/errmsg.txt:
more wide error mening
sql/share/swedish/errmsg.txt:
more wide error mening
sql/share/ukrainian/errmsg.txt:
more wide error mening
sql/sql_base.cc:
fix_fields error handling
sql/sql_lex.cc:
basic row Items
sql/sql_select.cc:
basic row Items
sql/sql_yacc.yy:
basic row Items
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r-- | sql/item_row.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc new file mode 100644 index 00000000000..95da4f5901e --- /dev/null +++ b/sql/item_row.cc @@ -0,0 +1,66 @@ +/* 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 */ + +#include "mysql_priv.h" +#include "assert.h" + +Item_row::Item_row(List<Item> &arg): + Item(), array_holder(1) +{ + if ((arg_count= arg.elements)) + items= (Item**) sql_alloc(sizeof(Item*)*arg_count); + else + items= 0; + List_iterator<Item> li(arg); + uint i= 0; + Item *item; + while ((item= li++)) + { + items[i]= item; + i++; + } +} + +void Item_row::illegal_method_call(const char *method) +{ + DBUG_ENTER("Item_row::illegal_method_call"); + DBUG_PRINT("error", ("!!! %s method was called for row item", method)); + DBUG_ASSERT(0); + my_error(ER_CARDINALITY_COL, MYF(0), arg_count); + DBUG_VOID_RETURN; +} + +bool Item_row::fix_fields(THD *thd, TABLE_LIST *tabl, Item **ref) +{ + tables= 0; + for (uint i= 0; i < arg_count; i++) + { + if (items[i]->fix_fields(thd, tabl, items+i)) + return 1; + tables |= items[i]->used_tables(); + } + return 0; +} + +bool Item_row::check_cols(uint c) +{ + if (c != arg_count) + { + my_error(ER_CARDINALITY_COL, MYF(0), arg_count); + return 1; + } + return 0; +} |