summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authorbell@sanja.is.com.ua <>2004-02-18 01:08:52 +0200
committerbell@sanja.is.com.ua <>2004-02-18 01:08:52 +0200
commit14b9fa3588a35c8e7df3961eba06e6e590eabfcf (patch)
tree65aff983542f7b988996319163a7a3e003e845f4 /sql/item_func.cc
parent8a865250c4180ee197c4626560eb46c2cea0a696 (diff)
downloadmariadb-git-14b9fa3588a35c8e7df3961eba06e6e590eabfcf.tar.gz
revision of fix_fields() calls (BUG2838)
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 0327204dbfd..817bd2b866b 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1469,8 +1469,11 @@ udf_handler::fix_fields(THD *thd, TABLE_LIST *tables, Item_result_field *func,
arg != arg_end ;
arg++,i++)
{
+ if ((*arg)->fix_fields(thd, tables, arg))
+ return 1;
+ // we can't assign 'item' before, because fix_fields() can change arg
Item *item= *arg;
- if (item->fix_fields(thd, tables, arg) || item->check_cols(1))
+ if (item->check_cols(1))
return 1;
/*
TODO: We should think about this. It is not always