Commit 82eafabe authored by Tom Lane's avatar Tom Lane

Improve docs about using ORDER BY to control aggregate input order.

David Johnston pointed out that the original text here had been obsoleted
by SQL:2008, which allowed ORDER BY in subqueries.  We could weaken the
text to describe ORDER-BY-in-subqueries as an optional SQL feature that's
possibly unportable; but then the exact same statements would apply to
the alternative it's being compared to (ORDER-BY-in-aggregate-calls).
So really that would be pretty useless; let's just take out the sentence
entirely.  Instead, point out the hazard that any extra processing in the
upper query might cause the subquery output order to be destroyed.

Discussion: <CAKFQuwbAX=iO9QbpN7_jr+BnUWm9FYX8WbEPUvG0p+nZhp6TZg@mail.gmail.com>
parent 50e5315a
...@@ -13102,8 +13102,9 @@ SELECT count(*) FROM sometable; ...@@ -13102,8 +13102,9 @@ SELECT count(*) FROM sometable;
SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
]]></screen> ]]></screen>
But this syntax is not allowed in the SQL standard, and is Beware that this approach can fail if the outer query level contains
not portable to other database systems. additional processing, such as a join, because that might cause the
subquery's output to be reordered before the aggregate is computed.
</para> </para>
<para> <para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment