pgsql: Fix failure to detect some cases of improperly-nested aggregates

Started by Tom Laneover 3 years ago1 messagescomitters
Jump to latest
#1Tom 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: /messages/by-id/17835-4f29f3098b2d0ba4@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/30dbdbe75384bcb034172c781b24bc982434a967

Modified Files
--------------
src/backend/parser/parse_agg.c | 3 +--
src/test/regress/expected/aggregates.out | 6 ++++++
src/test/regress/sql/aggregates.sql | 3 +++
3 files changed, 10 insertions(+), 2 deletions(-)