Re: string_agg delimiter having no effect with order by - Mailing list pgsql-bugs

From Tom Lane
Subject Re: string_agg delimiter having no effect with order by
Date
Msg-id 1413.1281019292@sss.pgh.pa.us
Whole thread Raw
In response to Re: string_agg delimiter having no effect with order by  (Thom Brown <thom@linux.com>)
Responses Re: string_agg delimiter having no effect with order by  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-bugs
Thom Brown <thom@linux.com> writes:
> On 5 August 2010 10:29, Greg Stark <gsstark@mit.edu> wrote:
>> On Thu, Aug 5, 2010 at 5:18 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>>> The same problem can be with custom aggregates :( so this syntax isn't
>>> too robust. We can support Oracle's syntax in future releases, where
>>> syntax divide aggregate call and ORDER BY clause.
>>
>> What syntax is that?

> An example I've found is:
> SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
> FROM   emp
> GROUP BY deptno;

That wouldn't help this problem in the least.  The problem is that
novices unfamiliar with the SQL-standard aggregrate ORDER BY syntax
may try to put the ORDER BY in the wrong place.  Offering a different
syntax won't stop them from doing that.  The only way it might stop
would be if we documented *only* the Oracle syntax and not the
spec-compliant syntax.  Which ain't gonna happen.

[ does a bit more research ... ]  Actually, the syntax Thom mentions
is not Oracle-specific; it's in SQL:2008, and AFAICT it means something
different from an aggregate ORDER BY anyway.  Maybe Pavel had something
else in mind.  But my point is still that offering a different syntax
doesn't fix the problem unless we eliminate the mistake-prone syntax;
which we can't because it's in the spec.

            regards, tom lane

pgsql-bugs by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: My computer shut down automatically
Next
From: Pavel Stehule
Date:
Subject: Re: string_agg delimiter having no effect with order by