FAQ
Hi,

This patch enables the syntax "GROUP BY tablename.*" in cases where
earlier you'd get the error "field must appear in the GROUP BY clause
or be used in an aggregate function"

I've often needed to write queries like this:
SELECT a.x, a.y, a.z, sum(b.w) FROM a JOIN b USING (a_id) GROUP BY
a.x, a.y, a.z;
Now this becomes:
SELECT a.x, a.y, a.z, sum(b.w) FROM a JOIN b USING (a_id) GROUP BY a.*;

The patch is so trivial that I'm wondering why it hasn't been
implemented before. I couldn't think of any assumptions being broken
by using row comparison instead of comparing each field separately.
But maybe I'm missing something.

If this patch looks reasonable, I guess the obvious next step is to
expand the "a.*" reference to the table's primary key columns and fill
in context->func_grouped_rels

Regards,
Marti

Search Discussions

  • Tom Lane at Jun 8, 2011 at 5:22 pm

    Marti Raudsepp writes:
    This patch enables the syntax "GROUP BY tablename.*" in cases where
    earlier you'd get the error "field must appear in the GROUP BY clause
    or be used in an aggregate function"
    Is this really necessary now that we know about "GROUP BY primary key"?
    The patch is so trivial that I'm wondering why it hasn't been
    implemented before.
    Probably because it's a nonstandard kluge ...

    regards, tom lane
  • Marti Raudsepp at Jun 9, 2011 at 8:35 am

    On Wed, Jun 8, 2011 at 20:22, Tom Lane wrote:
    Is this really necessary now that we know about "GROUP BY primary key"?
    You're right. I was just looking for something easy to hack on and
    didn't put much thought into usefulness.
    I'll try to do better next time. :)

    Regards,
    Marti

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedJun 8, '11 at 5:05p
activeJun 9, '11 at 8:35a
posts3
users2
websitepostgresql.org...
irc#postgresql

2 users in discussion

Marti Raudsepp: 2 posts Tom Lane: 1 post

People

Translate

site design / logo © 2023 Grokbase