Ben Tilly wrote:
On 8/22/07, Gregory Stark <[EMAIL PROTECTED]> wrote:
"Ben Tilly" <[EMAIL PROTECTED]> writes:
2. Why is 'non-integer constant in GROUP BY' an error?
Hm... I was a bit surprised by this warning myself. IIRC there was an
implementation convenience issue.
If your implementation accepts:
group by case when true then 'foo' end
how much harder can it be to accept:
group by 'foo'
This is not about hardness of the implementation, but rather about
non-confusing behaviour I think.
AFAIK, "group by 1" means "group by the first selected column", not
"group all rows together". But "group by 'foo'" would carry the second
meaning - "group all rows together". This is so totally counter-intuitive,
that it's not even funny...
"group by case when true then 'foo' end" looks different enough compared to
"group by 1" to make this less of a footgun.
Seems that the "group by <integer>" syntax predates the appearance of
aliases in the sql standard...
greetings, Florian flug
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate