mirror of
https://github.com/postgres/postgres.git
synced 2025-06-26 12:21:12 +03:00
Re-allow SRFs and window functions within sub-selects within aggregates.
check_agg_arguments_walker threw an error upon seeing a SRF or window function, but that is too aggressive: if the function is within a sub-select then it's perfectly fine. I broke the SRF case in commit0436f6bde
by copying the logic for window functions ... but that was broken too, and had been since commiteaccfded9
. Repair both cases in HEAD, and the window function case back to 9.3. 9.2 gets this right.
This commit is contained in:
@ -700,7 +700,7 @@ check_agg_arguments_walker(Node *node,
|
||||
/* Continue and descend into subtree */
|
||||
}
|
||||
/* We can throw error on sight for a window function */
|
||||
if (IsA(node, WindowFunc))
|
||||
if (IsA(node, WindowFunc) && context->sublevels_up == 0)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_GROUPING_ERROR),
|
||||
errmsg("aggregate function calls cannot contain window function calls"),
|
||||
|
Reference in New Issue
Block a user