diff options
author | unknown <igor@rurik.mysql.com> | 2006-02-19 17:26:06 -0800 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2006-02-19 17:26:06 -0800 |
commit | f37ebdb20947fcd757ca031ce59fea66091d237a (patch) | |
tree | 2173f25b70e6cac3f443a85226e9b6f91f832d83 /sql/sql_select.cc | |
parent | 34d8c572086ca203fb113e6c1d3a56e009ce43d3 (diff) | |
parent | 731f13f649357922cca137976a33c088ff001ce1 (diff) | |
download | mariadb-git-f37ebdb20947fcd757ca031ce59fea66091d237a.tar.gz |
Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
mysql-test/r/subselect.result:
Auto merged
sql/sql_select.cc:
Auto merged
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 807cb129aca..768ae7bf71f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -364,22 +364,8 @@ JOIN::prepare(Item ***rref_pointer_array, select_lex->having_fix_field= 0; if (having_fix_rc || thd->net.report_error) DBUG_RETURN(-1); /* purecov: inspected */ - if (having->with_sum_func) - having->split_sum_func2(thd, ref_pointer_array, all_fields, - &having, TRUE); thd->lex->allow_sum_func= save_allow_sum_func; } - if (select_lex->inner_sum_func_list) - { - Item_sum *end=select_lex->inner_sum_func_list; - Item_sum *item_sum= end; - do - { - item_sum= item_sum->next; - item_sum->split_sum_func2(thd, ref_pointer_array, - all_fields, item_sum->ref_by, FALSE); - } while (item_sum != end); - } if (!thd->lex->view_prepare_mode) { @@ -397,6 +383,21 @@ JOIN::prepare(Item ***rref_pointer_array, } } + if (having && having->with_sum_func) + having->split_sum_func2(thd, ref_pointer_array, all_fields, + &having, TRUE); + if (select_lex->inner_sum_func_list) + { + Item_sum *end=select_lex->inner_sum_func_list; + Item_sum *item_sum= end; + do + { + item_sum= item_sum->next; + item_sum->split_sum_func2(thd, ref_pointer_array, + all_fields, item_sum->ref_by, FALSE); + } while (item_sum != end); + } + if (setup_ftfuncs(select_lex)) /* should be after having->fix_fields */ DBUG_RETURN(-1); |