mirror of
https://github.com/postgres/postgres.git
synced 2025-06-29 10:41:53 +03:00
Fix failure to detect some cases of improperly-nested aggregates.
check_agg_arguments_walker() supposed that it needn't descend into the arguments of a lower-level aggregate function, but this is just wrong in the presence of multiple levels of sub-select. The oversight would lead to executor failures on queries that should be rejected. (Prior to v11, they actually were rejected, thanks to a "redundant" execution-time check.) Per bug #17835 from Anban Company. Back-patch to all supported branches. Discussion: https://postgr.es/m/17835-4f29f3098b2d0ba4@postgresql.org
This commit is contained in:
@ -717,8 +717,7 @@ check_agg_arguments_walker(Node *node,
|
||||
context->min_agglevel > agglevelsup)
|
||||
context->min_agglevel = agglevelsup;
|
||||
}
|
||||
/* no need to examine args of the inner aggregate */
|
||||
return false;
|
||||
/* Continue and descend into subtree */
|
||||
}
|
||||
if (IsA(node, GroupingFunc))
|
||||
{
|
||||
|
Reference in New Issue
Block a user