From: Erik Rijkers <er@xs4all.nl>
To: Oliver Ford <ojford@gmail.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Subject: Re: Add RANGE with values and exclusions clauses to the Window Functions
Date: Mon, 27 Nov 2017 17:40:08 +0100
Message-ID: <2c084c1c2bf599ceb2afa87874de8bc1@xs4all.nl> (raw)
In-Reply-To: <bc8a1d397fa81d6ae33c297d0224184b@xs4all.nl>
References: <CAGMVOdu9sivPAxbNN0X+q19Sfv9edEPv=HibOJhB14TJv_RCQg@mail.gmail.com>
<b2374b9461c349b17b50c77f3a70e1a1@xs4all.nl>
<CAGMVOdsopg5ZAuJh9+ceq-s0pU2qqZsZn-jbL4A1c=h1iWaZVA@mail.gmail.com>
<CAGMVOdvrZCwJg0BngM9GMO+LK=j20vhSfdk1gTTBNNH311Vgsw@mail.gmail.com>
<bc8a1d397fa81d6ae33c297d0224184b@xs4all.nl>
On 2017-11-27 17:34, Erik Rijkers wrote:
> On 2017-11-27 16:01, Oliver Ford wrote:
>> Attached is it in bare diff form.
>
> [0001-window-frame-v3.patch]
>
> Thanks, that did indeed fix it:
>
> make && make check now ok.
>
> There were errors in the doc build (unmatched tags); I fixed them in
> the attached doc-patch (which should go on top of yours).
0001-window-frame-v3-fixtags.diff
now attached, I hope...
Attachments:0001-window-frame-v3-fixtags.diff (text/x-diff, 4.1K) download--- doc/src/sgml/syntax.sgml.orig 2017-11-27 17:19:30.253810944 +0100+++ doc/src/sgml/syntax.sgml 2017-11-27 17:20:55.515626931 +0100@@ -1805,8 +1805,8 @@
and the optional <replaceable class="parameter">frame_clause</replaceable>
can be one of
<synopsis>
-{ RANGE | ROWS } <replaceable>frame_start</> [ <replaceable class="parameter">frame_exclusion_clause</replaceable> ]-{ RANGE | ROWS } BETWEEN <replaceable>frame_start</> AND <replaceable>frame_end</> [ <replaceable class="parameter">frame_exclusion_clause</replaceable> ]+{ RANGE | ROWS } <replaceable>frame_start</replaceable> [ <replaceable class="parameter">frame_exclusion_clause</replaceable> ]+{ RANGE | ROWS } BETWEEN <replaceable>frame_start</replaceable> AND <replaceable>frame_end</replaceable> [ <replaceable class="parameter">frame_exclusion_clause</replaceable> ]
</synopsis>
where <replaceable>frame_start</replaceable> and <replaceable>frame_end</replaceable> can be
one of
@@ -1817,7 +1817,7 @@
<replaceable>value</replaceable> FOLLOWING
UNBOUNDED FOLLOWING
</synopsis>
- where the optional <replaceable>frame_exclusion_clause</> can be one of+ where the optional <replaceable>frame_exclusion_clause</replaceable> can be one of
<synopsis>
EXCLUDE CURRENT ROW
EXCLUDE TIES
@@ -1888,24 +1888,24 @@
<para>
The <replaceable>value</replaceable> <literal>PRECEDING</literal> and
- <replaceable>value</> <literal>FOLLOWING</> cases, when used- in <literal>ROWS</> mode, indicate that the frame starts or ends the specified- number of rows before or after the current row. In <literal>ROWS</> mode,- <replaceable>value</> must be an integer expression not containing any variables,+ <replaceable>value</replaceable> <literal>FOLLOWING</literal> cases, when used+ in <literal>ROWS</literal> mode, indicate that the frame starts or ends the specified+ number of rows before or after the current row. In <literal>ROWS</literal> mode,+ <replaceable>value</replaceable> must be an integer expression not containing any variables,
aggregate functions, or window functions.
- When used in <literal>RANGE</> mode, they indicate that the frame starts or ends when the value of- each row's ORDER BY column is within the start value and end value bounds. In <literal>RANGE</> mode,- <replaceable>value</> can be either an integer expression or a date/time interval.- In <literal>RANGE</> mode, there must be exactly one ORDER BY column and if the column is an integer column,- then <replaceable>value</> must be an integer.- If it is a date/time column, then <replaceable>value</> must be an interval. In both modes,+ When used in <literal>RANGE</literal> mode, they indicate that the frame starts or ends when the value of+ each row's ORDER BY column is within the start value and end value bounds. In <literal>RANGE</literal> mode,+ <replaceable>value</replaceable> can be either an integer expression or a date/time interval.+ In <literal>RANGE</literal> mode, there must be exactly one ORDER BY column and if the column is an integer column,+ then <replaceable>value</replaceable> must be an integer.+ If it is a date/time column, then <replaceable>value</replaceable> must be an interval. In both modes,
the value must not be null or negative; but it can be zero, which just selects the current row.
</para>
<para>
- For the <replaceable class="parameter">frame_exclusion_clause</replaceable>, <literal>EXCLUDE CURRENT ROW</>- excludes the current row from the frame. <literal>EXCLUDE TIES</> excludes any peers of the current row from the- frame. <literal>EXCLUDE NO OTHERS</> does nothing, but is provided in order to optionally document the intention+ For the <replaceable class="parameter">frame_exclusion_clause</replaceable>, <literal>EXCLUDE CURRENT ROW</literal>+ excludes the current row from the frame. <literal>EXCLUDE TIES</literal> excludes any peers of the current row from the+ frame. <literal>EXCLUDE NO OTHERS</literal> does nothing, but is provided in order to optionally document the intention
not to exclude any other rows.
</para>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: er@xs4all.nl, ojford@gmail.com
Subject: Re: Add RANGE with values and exclusions clauses to the Window Functions
In-Reply-To: <2c084c1c2bf599ceb2afa87874de8bc1@xs4all.nl>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox