diff options
author | unknown <bell@sanja.is.com.ua> | 2002-11-27 19:31:11 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-11-27 19:31:11 +0200 |
commit | 6339053d9d04161aebbd3d8f9ebcb9d081c10284 (patch) | |
tree | d1b07dc0628b773032c9602776d3da5f234266e5 /sql/item_func.h | |
parent | 48a64b57033b004d6e4fa92e5c13b21f0f24af22 (diff) | |
parent | e3114057d4f397e0f8c3c8f98a8caf7ce06d8197 (diff) | |
download | mariadb-git-6339053d9d04161aebbd3d8f9ebcb9d081c10284.tar.gz |
merging
include/mysql_com.h:
Auto merged
include/mysqld_error.h:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/r/subselect.result:
Auto merged
sql/Makefile.am:
Auto merged
sql/filesort.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/danish/errmsg.txt:
Auto merged
sql/share/dutch/errmsg.txt:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/german/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/italian/errmsg.txt:
Auto merged
sql/share/japanese/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/share/polish/errmsg.txt:
Auto merged
sql/share/portuguese/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/russian/errmsg.txt:
Auto merged
sql/share/serbian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
sql/share/spanish/errmsg.txt:
Auto merged
Diffstat (limited to 'sql/item_func.h')
-rw-r--r-- | sql/item_func.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sql/item_func.h b/sql/item_func.h index 38f461acc13..43fb28e77e8 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -32,6 +32,7 @@ class Item_func :public Item_result_field { protected: Item **args,*tmp_arg[2]; + uint allowed_arg_cols; public: uint arg_count; table_map used_tables_cache; @@ -49,25 +50,27 @@ public: enum optimize_type { OPTIMIZE_NONE,OPTIMIZE_KEY,OPTIMIZE_OP, OPTIMIZE_NULL }; enum Type type() const { return FUNC_ITEM; } virtual enum Functype functype() const { return UNKNOWN_FUNC; } - Item_func(void) + Item_func(void): + allowed_arg_cols(1), arg_count(0) { - arg_count=0; with_sum_func=0; + with_sum_func=0; } - Item_func(Item *a) + Item_func(Item *a): + allowed_arg_cols(1), arg_count(1) { - arg_count=1; args=tmp_arg; args[0]=a; with_sum_func=a->with_sum_func; } - Item_func(Item *a,Item *b) + Item_func(Item *a,Item *b): + allowed_arg_cols(1), arg_count(2) { - arg_count=2; args=tmp_arg; args[0]=a; args[1]=b; with_sum_func=a->with_sum_func || b->with_sum_func; } - Item_func(Item *a,Item *b,Item *c) + Item_func(Item *a,Item *b,Item *c): + allowed_arg_cols(1) { arg_count=0; if ((args=(Item**) sql_alloc(sizeof(Item*)*3))) @@ -77,7 +80,8 @@ public: with_sum_func=a->with_sum_func || b->with_sum_func || c->with_sum_func; } } - Item_func(Item *a,Item *b,Item *c,Item *d) + Item_func(Item *a,Item *b,Item *c,Item *d): + allowed_arg_cols(1) { arg_count=0; if ((args=(Item**) sql_alloc(sizeof(Item*)*4))) @@ -88,7 +92,8 @@ public: d->with_sum_func; } } - Item_func(Item *a,Item *b,Item *c,Item *d,Item* e) + Item_func(Item *a,Item *b,Item *c,Item *d,Item* e): + allowed_arg_cols(1) { arg_count=5; if ((args=(Item**) sql_alloc(sizeof(Item*)*5))) @@ -602,7 +607,8 @@ public: longlong val_int(); bool fix_fields(THD *thd,struct st_table_list *tlist, Item **ref) { - return (item->fix_fields(thd, tlist, &item) || + return (item->check_cols(1) || + item->fix_fields(thd, tlist, &item) || Item_func::fix_fields(thd, tlist, ref)); } void update_used_tables() |