Thread

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

    Marti Raudsepp <marti@juffo.org> — 2011-06-08T16:57:54Z

    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
    
  2. Re: [PATCH] Allow star syntax in GROUP BY, as a shorthand for all table columns

    Tom Lane <tgl@sss.pgh.pa.us> — 2011-06-08T17:22:15Z

    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
    
    
  3. Re: [PATCH] Allow star syntax in GROUP BY, as a shorthand for all table columns

    Marti Raudsepp <marti@juffo.org> — 2011-06-09T08:29:24Z

    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