Re: [PATCH] GROUP BY ALL

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, "David G. Johnston" <david.g.johnston@gmail.com>, David Christensen <david@pgguru.net>, Jelte Fennema-Nio <postgres@jeltef.nl>
Date: 2026-07-07T06:54:50Z
Lists: pgsql-hackers
On 30.06.26 16:01, Tom Lane wrote:
> Peter Eisentraut <peter@eisentraut.org> writes:
>>> The code in transformGroupClause() currently says:
>>>       * Likewise, TLEs containing window functions are not okay to add
>>>       * to GROUP BY.  At this writing, the SQL standard is silent on
>>>       * what to do with them, but by analogy to aggregates we'll just
>>>       * skip them.
> 
>> At the most recent SQL standard meeting, I had this issue addressed, and
>> the handling of window functions in GROUP BY ALL is now specified to
>> work like PostgreSQL already works.  I propose the attached patch that
>> updates the code comment about that, and also makes the documentation
>> more specific that we are only talking about aggregate functions and
>> window functions referring to the same query level, which is another
>> thing the original specification was silent about but which has since
>> been fixed.
> 
> Cool, thanks for seeing to that.  The proposed patch seems okay,
> except that the docs wording makes it sound like outer-level window
> functions are a thing, which they are not AFAIK.  You could instead
> write
> 
> -    contain either an aggregate function or a window function.
> +    contain either an aggregate function referring to the
> +    same query level or a window function.

Ok, done that way.




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.