Re: [PATCH] GROUP BY ALL

David Christensen <david@pgguru.net>

From: David Christensen <david@pgguru.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andrey Borodin <x4mmm@yandex-team.ru>, Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers <pgsql-hackers@postgresql.org>, "David G. Johnston" <david.g.johnston@gmail.com>, Jelte Fennema-Nio <postgres@jeltef.nl>
Date: 2025-09-26T16:13:04Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add GROUP BY ALL.

  2. Refactor to avoid code duplication in transformPLAssignStmt.

  3. Fix missed copying of groupDistinct in transformPLAssignStmt.

On Fri, Sep 26, 2025 at 11:05 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> David Christensen <david@pgguru.net> writes:
> > Here is a rebased version with a few more tests.  I also changed the
> > main check here to using `!contain_agg_clause` instead of
> > `!IsA(Aggref))` directly.  (This was defined in `optimizer/clauses.h`,
> > but we already are pulling in `optimizer.h`, so it felt valid to me.)
>
> contain_agg_clause will blow up on a SubLink, so I doubt this is
> gonna be robust.

Fair enough, see that Assert now; easy enough to make a new
expression_tree_walker that only looks for Aggref and short-circuits
SubLink (which I assume is the right behavior here, but might have to
add some more tests/play around with subqueries in the GROUP BY ALL
part).

David