summaryrefslogtreecommitdiff
path: root/sql/item_sum.cc
diff options
context:
space:
mode:
authorunknown <sergefp@pylon.mylan>2007-03-29 12:24:23 +0400
committerunknown <sergefp@pylon.mylan>2007-03-29 12:24:23 +0400
commitd04efe39f020f743411c9ae9d1e1bee1ec1bc193 (patch)
tree899f2fd8517100118e0727eb54ee00cb8ac31524 /sql/item_sum.cc
parente980838f7fed94ac764bb067fff6129ce0304d8a (diff)
parent43a5c4e70b1309d27795f59138a7dc2e43b23e06 (diff)
downloadmariadb-git-d04efe39f020f743411c9ae9d1e1bee1ec1bc193.tar.gz
Merge mysql.com:/home/psergey/mysql-5.0-merge
into mysql.com:/home/psergey/mysql-5.1-merge BitKeeper/deleted/.del-mysqld.cc.rej: Auto merged mysql-test/r/range.result: Auto merged mysql-test/t/range.test: Auto merged sql/item_sum.cc: Auto merged sql/sql_list.h: Auto merged mysql-test/r/subselect.result: Manual merge mysql-test/t/subselect.test: Manual merge sql/opt_range.cc: Manual merge
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r--sql/item_sum.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 8965a5a8f8c..7d7662f06f7 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -149,6 +149,8 @@ bool Item_sum::check_sum_func(THD *thd, Item **ref)
if (register_sum_func(thd, ref))
return TRUE;
invalid= aggr_level < 0 && !(allow_sum_func & (1 << nest_level));
+ if (!invalid && thd->variables.sql_mode & MODE_ANSI)
+ invalid= aggr_level < 0 && max_arg_level < nest_level;
}
if (!invalid && aggr_level < 0)
{
@@ -164,8 +166,9 @@ bool Item_sum::check_sum_func(THD *thd, Item **ref)
Additionally we have to check whether possible nested set functions
are acceptable here: they are not, if the level of aggregation of
some of them is less than aggr_level.
- */
- invalid= aggr_level <= max_sum_func_level;
+ */
+ if (!invalid)
+ invalid= aggr_level <= max_sum_func_level;
if (invalid)
{
my_message(ER_INVALID_GROUP_FUNC_USE, ER(ER_INVALID_GROUP_FUNC_USE),