diff options
author | unknown <monty@mysql.com> | 2005-02-10 02:27:37 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-02-10 02:27:37 +0200 |
commit | 9f04f9d0352e404cf64e044d1c22873595f276d2 (patch) | |
tree | 5b603904b731e515c447d53d7843855bfbbe2f8c /sql/item_row.cc | |
parent | 70d3ac05d97f7721e564a718ba79afd5eb7eb2cb (diff) | |
parent | 0fe1b28b750c12dd500e507f1b688887c9aca227 (diff) | |
download | mariadb-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.cc | 18 |
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; |