Make pull_var_clause() handle GroupingFuncs exactly like Aggrefs. This follows in the footsteps of commit 2591ee8ec by removing one more ill-advised shortcut from planning of GroupingFuncs. It's true that we don't intend to execute the argument expression(s) at runtime, but we still have to process any Vars appearing within them, or we risk failure at setrefs.c time (or more fundamentally, in EXPLAIN trying to print such an expression). Vars in upper plan nodes have to have referents in the next plan level, whether we ever execute 'em or not.
Per bug #17479 from Michael J. Sullivan. Back-patch to all supported branches. Richard Guo Discussion: https://postgr.es/m/17479-6260deceaf0ad...@postgresql.org Branch ------ REL_10_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/b53442f6fe0f82cc7c2d1e7b15d52da79e6db295 Modified Files -------------- src/backend/optimizer/util/var.c | 10 +---- src/test/regress/expected/groupingsets.out | 64 ++++++++++++++++++++++++++++++ src/test/regress/sql/groupingsets.sql | 23 +++++++++++ 3 files changed, 89 insertions(+), 8 deletions(-)