From: Bruce Momjian Date: Fri, 5 Sep 2014 23:01:26 +0000 (-0400) Subject: Clarify documentation about "peer" rows in window functions X-Git-Tag: REL9_4_BETA3~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6d9b331aaa1bccd740700954c15bd56727189ad;p=postgresql Clarify documentation about "peer" rows in window functions Peer rows are matching rows when ORDER BY is specified. Report by arnaud.mouronval@gmail.com, David G Johnston Backpatch through 9.4 --- diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index dafc9e3d92..77920f4706 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -13048,7 +13048,8 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; Window functions provide the ability to perform calculations across sets of rows that are related to the current query row. See for an introduction to this - feature. + feature, and for syntax + details. diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml index b69b63494b..940d1aa5c0 100644 --- a/doc/src/sgml/ref/select.sgml +++ b/doc/src/sgml/ref/select.sgml @@ -792,8 +792,9 @@ UNBOUNDED FOLLOWING The default framing option is RANGE UNBOUNDED PRECEDING, which is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW; it sets the frame to be all rows from the partition start - up through the current row's last peer in the ORDER BY - ordering (which means all rows if there is no ORDER BY). + up through the current row's last peer (a row that ORDER + BY considers equivalent to the current row, or all rows if there + is no ORDER BY). In general, UNBOUNDED PRECEDING means that the frame starts with the first row of the partition, and similarly UNBOUNDED FOLLOWING means that the frame ends with the last @@ -817,7 +818,7 @@ UNBOUNDED FOLLOWING results if the ORDER BY ordering does not order the rows uniquely. The RANGE options are designed to ensure that rows that are peers in the ORDER BY ordering are treated - alike; any two peer rows will be both in or both not in the frame. + alike; all peer rows will be in the same frame. diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml index 434a894157..2f0680fd0b 100644 --- a/doc/src/sgml/syntax.sgml +++ b/doc/src/sgml/syntax.sgml @@ -1877,7 +1877,7 @@ UNBOUNDED FOLLOWING first peer row (a row that ORDER BY considers equivalent to the current row), while a frame_end of CURRENT ROW means the frame ends with the last equivalent - peer. In ROWS mode, CURRENT ROW simply means + ORDER BY peer. In ROWS mode, CURRENT ROW simply means the current row. @@ -1897,7 +1897,7 @@ UNBOUNDED FOLLOWING which is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. With ORDER BY, this sets the frame to be all rows from the partition start up through the current row's last - peer. Without ORDER BY, all rows of the partition are + ORDER BY peer. Without ORDER BY, all rows of the partition are included in the window frame, since all rows become peers of the current row.