Doc: improve description of window function processing.
authorTom Lane <[email protected]>
Mon, 10 Mar 2025 14:22:08 +0000 (10:22 -0400)
committerTom Lane <[email protected]>
Mon, 10 Mar 2025 14:22:31 +0000 (10:22 -0400)
The previous wording talked about a "single pass over the data",
which can be read as promising more than intended (to wit, that only
one WindowAgg plan node will be used).  What we promise is only what
the SQL spec requires, namely that the data not get re-sorted between
window functions with compatible PARTITION BY/ORDER BY clauses.
Adjust the wording in hopes of making this clearer.

Reported-by: Christopher Inokuchi <[email protected]>
Author: Tom Lane <[email protected]>
Reviewed-by: David G. Johnston <[email protected]>
Discussion: https://postgr.es/m/CABde6B5va2wMsnM79u_x=n9KUgfKQje_pbLROEBmA9Ru5XWidw@mail.gmail.com
Backpatch-through: 13

doc/src/sgml/queries.sgml

index cf9c0890af3bcfb940d7041de76837e036f9a127..a2fd0ac1750d680911f7d0346856fcf0e6f52bbd 100644 (file)
@@ -1455,10 +1455,10 @@ GROUP BY GROUPING SETS (
 
    <para>
     When multiple window functions are used, all the window functions having
-    syntactically equivalent <literal>PARTITION BY</literal> and <literal>ORDER BY</literal>
-    clauses in their window definitions are guaranteed to be evaluated in a
-    single pass over the data. Therefore they will see the same sort ordering,
-    even if the <literal>ORDER BY</literal> does not uniquely determine an ordering.
+    equivalent <literal>PARTITION BY</literal> and <literal>ORDER BY</literal>
+    clauses in their window definitions are guaranteed to see the same
+    ordering of the input rows, even if the <literal>ORDER BY</literal> does
+    not uniquely determine the ordering.
     However, no guarantees are made about the evaluation of functions having
     different <literal>PARTITION BY</literal> or <literal>ORDER BY</literal> specifications.
     (In such cases a sort step is typically required between the passes of