summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2006-02-19 17:26:06 -0800
committerunknown <igor@rurik.mysql.com>2006-02-19 17:26:06 -0800
commitf37ebdb20947fcd757ca031ce59fea66091d237a (patch)
tree2173f25b70e6cac3f443a85226e9b6f91f832d83 /sql/sql_select.cc
parent34d8c572086ca203fb113e6c1d3a56e009ce43d3 (diff)
parent731f13f649357922cca137976a33c088ff001ce1 (diff)
downloadmariadb-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.cc29
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);