Fix failure to detect some cases of improperly-nested aggregates.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: bc0bcce2e74bf777b458e3fd815bb125dbda2ce6
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2023-03-13T16:40:28Z
Releases: 13.11
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

Discussion