Fix failure to detect some cases of improperly-nested aggregates.
Tom Lane <tgl@sss.pgh.pa.us>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/parser/parse_agg.c | modified | +1 −2 |
| src/test/regress/expected/aggregates.out | modified | +6 −0 |
| src/test/regress/sql/aggregates.sql | modified | +3 −0 |
Discussion
- BUG #17835: Two assertions failed in nodeAgg.c and execExprInterp.c with the same SQL 3 messages · 2023-03-13