[PATCH] Allow star syntax in GROUP BY, as a shorthand for all table columns

Started by Marti Raudseppalmost 15 years ago3 messageshackers
Jump to latest
#1Marti Raudsepp
marti@juffo.org

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

Attachments:

0001-Allow-star-syntax-in-GROUP-BY-as-a-shorthand-for-all.patchtext/x-patch; charset=US-ASCII; name=0001-Allow-star-syntax-in-GROUP-BY-as-a-shorthand-for-all.patchDownload+29-3
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Marti Raudsepp (#1)
Re: [PATCH] Allow star syntax in GROUP BY, as a shorthand for all table columns

Marti Raudsepp <marti@juffo.org> 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

#3Marti Raudsepp
marti@juffo.org
In reply to: Tom Lane (#2)
Re: [PATCH] Allow star syntax in GROUP BY, as a shorthand for all table columns

On Wed, Jun 8, 2011 at 20:22, Tom Lane <tgl@sss.pgh.pa.us> 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