Re: [PATCH] GROUP BY ALL - Mailing list pgsql-hackers

From Isaac Morland
Subject Re: [PATCH] GROUP BY ALL
Date
Msg-id CAMsGm5eUihhgcNqDr1h=PwRZxt=3GUnOHqAhvam8X7j2jioaeQ@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] GROUP BY ALL  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: [PATCH] GROUP BY ALL
Re: [PATCH] GROUP BY ALL
List pgsql-hackers
On Mon, 22 Jul 2024 at 17:34, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Mon, Jul 22, 2024 at 1:55 PM David Christensen <david@pgguru.net> wrote:
I see that there'd been some chatter but not a lot of discussion about
a GROUP BY ALL feature/functionality.  There certainly is utility in
such a construct IMHO.

Still need some docs; just throwing this out there and getting some feedback.


I strongly dislike adding this feature.  I'd only consider supporting it if it was part of the SQL standard.

Code is written once and read many times.  This feature caters to the writer, not the reader.  And furthermore usage of this is prone to be to the writer's detriment as well.

And for when this might be useful, the syntax for it already exists, although a spurious error message is generated:

odyssey=> select (uw_term).*, count(*) from uw_term group by uw_term;
ERROR:  column "uw_term.term_id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select (uw_term).*, count(*) from uw_term group by uw_term;
                ^

I'm not sure exactly what's going on here — it's like it's still seeing the table name in the field list as only a table name and not the value corresponding to the whole table as a row value (But in general I'm not happy with the system's ability to figure out that a column's value has only one possibility given the grouping columns). You can work around:

odyssey=> with t as (select uw_term, count(*) from uw_term group by uw_term) select (uw_term).*, count from t;

This query works.

pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: Re: Remove dependence on integer wrapping
Next
From: Ilya Gladyshev
Date:
Subject: Re: pg_rewind with cascade standby doesn't work well