summaryrefslogtreecommitdiff
path: root/sql/item_row.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-02-10 02:27:37 +0200
committerunknown <monty@mysql.com>2005-02-10 02:27:37 +0200
commit9f04f9d0352e404cf64e044d1c22873595f276d2 (patch)
tree5b603904b731e515c447d53d7843855bfbbe2f8c /sql/item_row.cc
parent70d3ac05d97f7721e564a718ba79afd5eb7eb2cb (diff)
parent0fe1b28b750c12dd500e507f1b688887c9aca227 (diff)
downloadmariadb-git-9f04f9d0352e404cf64e044d1c22873595f276d2.tar.gz
Merge with 4.1
BitKeeper/etc/ignore: auto-union client/mysqltest.c: Auto merged extra/my_print_defaults.c: Auto merged extra/perror.c: Auto merged extra/resolve_stack_dump.c: Auto merged include/help_end.h: Auto merged include/help_start.h: Auto merged myisam/myisamlog.c: Auto merged mysql-test/r/group_by.result: Auto merged mysql-test/r/heap_hash.result: Auto merged BitKeeper/deleted/.del-pack_isam.c~43801f0df7504834: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/r/user_var.result: Auto merged mysql-test/t/subselect.test: Auto merged ndb/src/kernel/vm/FastScheduler.cpp: Auto merged netware/mysql_test_run.c: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_list.h: Auto merged sql/sql_select.cc: Auto merged netware/BUILD/nwbootstrap: merge: keep local scripts/make_binary_distribution.sh: merge: keep local sql/ha_heap.cc: Trivial merge sql/ha_innodb.cc: Auto merge (Code already existed in 5.0) sql/item_cmpfunc.cc: Simple merge sql/item_func.cc: Simple merge sql/item_row.cc: Simple merge sql/item_strfunc.cc: Simple merge sql/item_subselect.cc: Merge with sanjas optimzation patch, but keep old code withing ifdef as a reference until this is fixed
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r--sql/item_row.cc18
1 files changed, 2 insertions, 16 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc
index 08c682afa85..00d849e55de 100644
--- a/sql/item_row.cc
+++ b/sql/item_row.cc
@@ -90,24 +90,10 @@ void Item_row::split_sum_func(THD *thd, Item **ref_pointer_array,
{
Item **arg, **arg_end;
for (arg= items, arg_end= items+arg_count; arg != arg_end ; arg++)
- {
- Item *item= *arg;
- if (item->type() != SUM_FUNC_ITEM &&
- (item->with_sum_func ||
- (item->used_tables() & PSEUDO_TABLE_BITS)))
- item->split_sum_func(thd, ref_pointer_array, fields);
- else if (item->type() == SUM_FUNC_ITEM ||
- (item->used_tables() && item->type() != REF_ITEM))
- {
- uint el= fields.elements;
- ref_pointer_array[el]= *arg;
- Item *new_item= new Item_ref(ref_pointer_array + el, 0, (*arg)->name);
- fields.push_front(*arg);
- thd->change_item_tree(arg, new_item);
- }
- }
+ (*arg)->split_sum_func2(thd, ref_pointer_array, fields, arg);
}
+
void Item_row::update_used_tables()
{
used_tables_cache= 0;