summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2003-03-24 22:52:46 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2003-03-24 22:52:46 +0200
commitd99370dd1b2d5e85c36ed45a9f7758c3d2ebb35c (patch)
tree7390f1326facb58897c2b70cd6bcbc46949301f1 /sql/item_func.cc
parentae14fa140834396d1ede607989edcee2bdea5d7b (diff)
downloadmariadb-git-d99370dd1b2d5e85c36ed45a9f7758c3d2ebb35c.tar.gz
A fix for bug #176
code cleanup mysql-test/r/having.result: A test for the bug fix for bug #176 mysql-test/t/having.test: A test for the bug fix for bug #176 sql/item.cc: A for the bug #176 sql/item_func.cc: Code cleanup
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc37
1 files changed, 20 insertions, 17 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 15018085146..6c23b0aa424 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -70,15 +70,16 @@ Item_func::fix_fields(THD *thd,TABLE_LIST *tables)
{ // Print purify happy
for (arg=args, arg_end=args+arg_count; arg != arg_end ; arg++)
{
- if ((*arg)->fix_fields(thd,tables))
+ Item *item=*arg;
+ if (item->fix_fields(thd,tables))
return 1; /* purecov: inspected */
- if ((*arg)->maybe_null)
+ if (item->maybe_null)
maybe_null=1;
- if ((*arg)->binary)
+ if (item->binary)
binary=1;
- with_sum_func= with_sum_func || (*arg)->with_sum_func;
- used_tables_cache|=(*arg)->used_tables();
- const_item_cache&= (*arg)->const_item();
+ with_sum_func= with_sum_func || item->with_sum_func;
+ used_tables_cache|=item->used_tables();
+ const_item_cache&= item->const_item();
}
}
fix_length_and_dec();
@@ -91,12 +92,13 @@ void Item_func::split_sum_func(List<Item> &fields)
Item **arg,**arg_end;
for (arg=args, arg_end=args+arg_count; arg != arg_end ; arg++)
{
- if ((*arg)->with_sum_func && (*arg)->type() != SUM_FUNC_ITEM)
- (*arg)->split_sum_func(fields);
- else if ((*arg)->used_tables() || (*arg)->type() == SUM_FUNC_ITEM)
+ Item *item=*arg;
+ if (item->with_sum_func && item->type() != SUM_FUNC_ITEM)
+ item->split_sum_func(fields);
+ else if (item->used_tables() || item->type() == SUM_FUNC_ITEM)
{
fields.push_front(*arg);
- *arg=new Item_ref((Item**) fields.head_ref(),0,(*arg)->name);
+ *arg=new Item_ref((Item**) fields.head_ref(),0,item->name);
}
}
}
@@ -1231,16 +1233,17 @@ udf_handler::fix_fields(THD *thd,TABLE_LIST *tables,Item_result_field *func,
arg != arg_end ;
arg++,i++)
{
- if ((*arg)->fix_fields(thd,tables))
+ Item *item=*arg;
+ if (item->fix_fields(thd,tables))
return 1;
- if ((*arg)->binary)
+ if (item->binary)
func->binary=1;
- if ((*arg)->maybe_null)
+ if (item->maybe_null)
func->maybe_null=1;
- func->with_sum_func= func->with_sum_func || (*arg)->with_sum_func;
- used_tables_cache|=(*arg)->used_tables();
- const_item_cache&=(*arg)->const_item();
- f_args.arg_type[i]=(*arg)->result_type();
+ func->with_sum_func= func->with_sum_func || item->with_sum_func;
+ used_tables_cache|=item->used_tables();
+ const_item_cache&=item->const_item();
+ f_args.arg_type[i]=item->result_type();
}
if (!(buffers=new String[arg_count]) ||
!(f_args.args= (char**) sql_alloc(arg_count * sizeof(char *))) ||