public inbox for [email protected]  
help / color / mirror / Atom feed
Re: New developer papercut - Makefile references INSTALL
7+ messages / 4 participants
[nested] [flat]

* Re: New developer papercut - Makefile references INSTALL
@ 2022-01-17 12:26 Daniel Gustafsson <[email protected]>
  2022-01-18 15:51 ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  0 siblings, 1 reply; 7+ messages in thread

From: Daniel Gustafsson @ 2022-01-17 12:26 UTC (permalink / raw)
  To: Magnus Hagander <[email protected]>; +Cc: Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>

> On 17 Jan 2022, at 11:25, Magnus Hagander <[email protected]> wrote:

> That said, I'm not sure we're actually gaining anything by *not*
> referring to the website as well. TBH, I bet the majority of users
> will actually prefer to read them there. So I'd suggest always
> including the reference to the website as well, per the suggestion
> from Tim.

Fair point, I'll go ahead and do that in a bit unless anyone objects.

--
Daniel Gustafsson		https://vmware.com/







^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* Re: New developer papercut - Makefile references INSTALL
  2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
@ 2022-01-18 15:51 ` Daniel Gustafsson <[email protected]>
  2022-01-18 16:05   ` Re: New developer papercut - Makefile references INSTALL Peter Eisentraut <[email protected]>
  2022-01-18 16:06   ` Re: New developer papercut - Makefile references INSTALL Tom Lane <[email protected]>
  0 siblings, 2 replies; 7+ messages in thread

From: Daniel Gustafsson @ 2022-01-18 15:51 UTC (permalink / raw)
  To: Magnus Hagander <[email protected]>; +Cc: Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>

> On 17 Jan 2022, at 13:26, Daniel Gustafsson <[email protected]> wrote:
> 
>> On 17 Jan 2022, at 11:25, Magnus Hagander <[email protected]> wrote:
> 
>> That said, I'm not sure we're actually gaining anything by *not*
>> referring to the website as well. TBH, I bet the majority of users
>> will actually prefer to read them there. So I'd suggest always
>> including the reference to the website as well, per the suggestion
>> from Tim.
> 
> Fair point, I'll go ahead and do that in a bit unless anyone objects.

I plan on applying the attached which address the feedback given.

--
Daniel Gustafsson		https://vmware.com/



Attachments:

  [application/octet-stream] install_v2.diff (781B, ../../[email protected]/2-install_v2.diff)
  download | inline diff:
diff --git a/Makefile b/Makefile
index 99dcfff654..97b9f2bcbc 100644
--- a/Makefile
+++ b/Makefile
@@ -17,8 +17,14 @@ all:
 
 all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world:
 	@if [ ! -f GNUmakefile ] ; then \
+	   if [ -f INSTALL ] ; then \
+	       INSTRUCTIONS="'INSTALL'"; \
+	   else \
+		   INSTRUCTIONS="'README.git'"; \
+	   fi; \
 	   echo "You need to run the 'configure' program first. See the file"; \
-	   echo "'INSTALL' for installation instructions." ; \
+	   echo "$$INSTRUCTIONS for installation instructions, or visit: " ; \
+	   echo "<https://www.postgresql.org/docs/devel/installation.html>" ; \
 	   false ; \
 	 fi
 	@IFS=':' ; \


^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* Re: New developer papercut - Makefile references INSTALL
  2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 15:51 ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
@ 2022-01-18 16:05   ` Peter Eisentraut <[email protected]>
  2022-01-19 13:54     ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  1 sibling, 1 reply; 7+ messages in thread

From: Peter Eisentraut @ 2022-01-18 16:05 UTC (permalink / raw)
  To: Daniel Gustafsson <[email protected]>; Magnus Hagander <[email protected]>; +Cc: Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>


On 18.01.22 16:51, Daniel Gustafsson wrote:
>> On 17 Jan 2022, at 13:26, Daniel Gustafsson <[email protected]> wrote:
>>
>>> On 17 Jan 2022, at 11:25, Magnus Hagander <[email protected]> wrote:
>>
>>> That said, I'm not sure we're actually gaining anything by *not*
>>> referring to the website as well. TBH, I bet the majority of users
>>> will actually prefer to read them there. So I'd suggest always
>>> including the reference to the website as well, per the suggestion
>>> from Tim.
>>
>> Fair point, I'll go ahead and do that in a bit unless anyone objects.
> 
> I plan on applying the attached which address the feedback given.

The indentation of the two INSTRUCTIONS= lines uses a different mix of 
tabs and spaces, so it looks a bit weird depending on how you view it.

It's also a bit strange that the single quotes are part of the value of 
$INSTRUCTIONS rather than part of the fixed text.

The URL links to the "devel" version of the installation instructions, 
which will not remain appropriate after release.  I don't know how to 
fix that without creating an additional maintenance point.  Since 
README.git already contains that link, I would leave off the web site 
business and just make the change of the dynamically chosen file name.






^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* Re: New developer papercut - Makefile references INSTALL
  2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 15:51 ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 16:05   ` Re: New developer papercut - Makefile references INSTALL Peter Eisentraut <[email protected]>
@ 2022-01-19 13:54     ` Daniel Gustafsson <[email protected]>
  2022-01-19 14:57       ` Re: New developer papercut - Makefile references INSTALL Tom Lane <[email protected]>
  0 siblings, 1 reply; 7+ messages in thread

From: Daniel Gustafsson @ 2022-01-19 13:54 UTC (permalink / raw)
  To: Peter Eisentraut <[email protected]>; +Cc: Magnus Hagander <[email protected]>; Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>

> On 18 Jan 2022, at 17:05, Peter Eisentraut <[email protected]> wrote:
> On 18.01.22 16:51, Daniel Gustafsson wrote:

>> I plan on applying the attached which address the feedback given.
> 
> The indentation of the two INSTRUCTIONS= lines uses a different mix of tabs and spaces, so it looks a bit weird depending on how you view it.
> 
> It's also a bit strange that the single quotes are part of the value of $INSTRUCTIONS rather than part of the fixed text.

Fixed both of these, thanks!

> The URL links to the "devel" version of the installation instructions, which will not remain appropriate after release.  I don't know how to fix that without creating an additional maintenance point.  Since README.git already contains that link, I would leave off the web site business and just make the change of the dynamically chosen file name.

I ended up pushing this with the URL in place as there IMO was consensus in the
thread for including it.  We could if we want to update it to point to v15 docs
once we branch off, but anything more than that is probably in the diminishing
returns territory in terms of effort involved.

--
Daniel Gustafsson		https://vmware.com/







^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* Re: New developer papercut - Makefile references INSTALL
  2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 15:51 ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 16:05   ` Re: New developer papercut - Makefile references INSTALL Peter Eisentraut <[email protected]>
  2022-01-19 13:54     ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
@ 2022-01-19 14:57       ` Tom Lane <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Tom Lane @ 2022-01-19 14:57 UTC (permalink / raw)
  To: Daniel Gustafsson <[email protected]>; +Cc: Peter Eisentraut <[email protected]>; Magnus Hagander <[email protected]>; Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>

Daniel Gustafsson <[email protected]> writes:
> I ended up pushing this with the URL in place as there IMO was consensus in the
> thread for including it.  We could if we want to update it to point to v15 docs
> once we branch off, but anything more than that is probably in the diminishing
> returns territory in terms of effort involved.

I think pointing at devel is fine, since this text is mostly aimed
at developers or would-be developers anyway.

			regards, tom lane






^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* Re: New developer papercut - Makefile references INSTALL
  2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
  2022-01-18 15:51 ` Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
@ 2022-01-18 16:06   ` Tom Lane <[email protected]>
  1 sibling, 0 replies; 7+ messages in thread

From: Tom Lane @ 2022-01-18 16:06 UTC (permalink / raw)
  To: Daniel Gustafsson <[email protected]>; +Cc: Magnus Hagander <[email protected]>; Tim McNamara <[email protected]>; PostgreSQL Hackers <[email protected]>

Daniel Gustafsson <[email protected]> writes:
> I plan on applying the attached which address the feedback given.

+1

			regards, tom lane






^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* [PATCH v5 5/7] Row pattern recognition patch (docs).
@ 2023-09-02 06:32 Tatsuo Ishii <[email protected]>
  0 siblings, 0 replies; 7+ messages in thread

From: Tatsuo Ishii @ 2023-09-02 06:32 UTC (permalink / raw)

---
 doc/src/sgml/advanced.sgml   | 52 ++++++++++++++++++++++++++++++++++
 doc/src/sgml/func.sgml       | 54 ++++++++++++++++++++++++++++++++++++
 doc/src/sgml/ref/select.sgml | 38 +++++++++++++++++++++++--
 3 files changed, 142 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/advanced.sgml b/doc/src/sgml/advanced.sgml
index 755c9f1485..eda3612822 100644
--- a/doc/src/sgml/advanced.sgml
+++ b/doc/src/sgml/advanced.sgml
@@ -537,6 +537,58 @@ WHERE pos &lt; 3;
     <literal>rank</literal> less than 3.
    </para>
 
+   <para>
+    Row pattern common syntax can be used with row pattern common syntax to
+    perform row pattern recognition in a query. Row pattern common syntax
+    includes two sub clauses. <literal>DEFINE</literal> defines definition
+    variables along with an expression. The expression must be a logical
+    expression, which means it must
+    return <literal>TRUE</literal>, <literal>FALSE</literal>
+    or <literal>NULL</literal>. Moreover if the expression comprises a column
+    reference, it must be the argument of <function>rpr</function>. An example
+    of <literal>DEFINE</literal> is as follows.
+
+<programlisting>
+DEFINE
+ LOWPRICE AS price &lt;= 100,
+ UP AS price &gt; PREV(price),
+ DOWN AS price &lt; PREV(price)
+</programlisting>
+
+    Note that <function>PREV</function> returns price column in the previous
+    row if it's called in a context of row pattern recognition. So in the
+    second line means the definition variable "UP" is <literal>TRUE</literal>
+    when price column in the current row is greater than the price column in
+    the previous row. Likewise, "DOWN" is <literal>TRUE</literal> when when
+    price column in the current row is lower than the price column in the
+    previous row.
+   </para>
+   <para>
+    Once <literal>DEFINE</literal> exists, <literal>PATTERN</literal> can be
+    used. <literal>PATTERN</literal> defines a sequence of rows that satisfies
+    certain conditions.  For example following <literal>PATTERN</literal>
+    defines that a row starts with the condition "LOWPRICE", then one or more
+    rows satisfy "UP" and finally one or more rows satisfy "DOWN". If a
+    sequence of rows found, rpr returns the column at the starting row.
+    Example of a <literal>SELECT</literal> using the <literal>DEFINE</literal>
+    and <literal>PATTERN</literal> clause is as follows.
+
+<programlisting>    
+SELECT company, tdate, price, max(price) OVER w FROM stock
+ WINDOW w AS (
+ PARTITION BY company
+ ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
+ AFTER MATCH SKIP PAST LAST ROW
+ INITIAL
+ PATTERN (LOWPRICE UP+ DOWN+)
+ DEFINE
+  LOWPRICE AS price &lt;= 100,
+  UP AS price &gt; PREV(price),
+  DOWN AS price &lt; PREV(price)
+);
+</programlisting>
+   </para>
+
    <para>
     When a query involves multiple window functions, it is possible to write
     out each one with a separate <literal>OVER</literal> clause, but this is
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 7a0d4b9134..b7bfc9271e 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -21772,6 +21772,7 @@ SELECT count(*) FROM sometable;
         returns <literal>NULL</literal> if there is no such row.
        </para></entry>
       </row>
+
      </tbody>
     </tgroup>
    </table>
@@ -21811,6 +21812,59 @@ SELECT count(*) FROM sometable;
    Other frame specifications can be used to obtain other effects.
   </para>
 
+  <para>
+   Row pattern recognition navigation functions are listed in
+   <xref linkend="functions-rpr-navigation-table"/>.  These functions
+   can be used to describe DEFINE clause of Row pattern recognition.
+  </para>
+
+   <table id="functions-rpr-navigation-table">
+    <title>Row Pattern Navigation Functions</title>
+    <tgroup cols="1">
+     <thead>
+      <row>
+       <entry role="func_table_entry"><para role="func_signature">
+        Function
+       </para>
+       <para>
+        Description
+       </para></entry>
+      </row>
+     </thead>
+
+     <tbody>
+      <row>
+       <entry role="func_table_entry"><para role="func_signature">
+        <indexterm>
+         <primary>prev</primary>
+        </indexterm>
+        <function>prev</function> ( <parameter>value</parameter> <type>anyelement</type> )
+        <returnvalue>anyelement</returnvalue>
+       </para>
+       <para>
+        Returns the column value at the previous row;
+        returns NULL if there is no previous row in the window frame.
+       </para></entry>
+      </row>
+
+      <row>
+       <entry role="func_table_entry"><para role="func_signature">
+        <indexterm>
+         <primary>next</primary>
+        </indexterm>
+        <function>next</function> ( <parameter>value</parameter> <type>anyelement</type> )
+        <returnvalue>anyelement</returnvalue>
+       </para>
+       <para>
+        Returns the column value at the next row;
+        returns NULL if there is no next row in the window frame.
+       </para></entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
+
   <note>
    <para>
     The SQL standard defines a <literal>RESPECT NULLS</literal> or
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index 0ee0cc7e64..8d3becd57a 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -966,8 +966,8 @@ WINDOW <replaceable class="parameter">window_name</replaceable> AS ( <replaceabl
     The <replaceable class="parameter">frame_clause</replaceable> can be one of
 
 <synopsis>
-{ RANGE | ROWS | GROUPS } <replaceable>frame_start</replaceable> [ <replaceable>frame_exclusion</replaceable> ]
-{ RANGE | ROWS | GROUPS } BETWEEN <replaceable>frame_start</replaceable> AND <replaceable>frame_end</replaceable> [ <replaceable>frame_exclusion</replaceable> ]
+{ RANGE | ROWS | GROUPS } <replaceable>frame_start</replaceable> [ <replaceable>frame_exclusion</replaceable> ] [row_pattern_common_syntax]
+{ RANGE | ROWS | GROUPS } BETWEEN <replaceable>frame_start</replaceable> AND <replaceable>frame_end</replaceable> [ <replaceable>frame_exclusion</replaceable> ] [row_pattern_common_syntax]
 </synopsis>
 
     where <replaceable>frame_start</replaceable>
@@ -1074,6 +1074,40 @@ EXCLUDE NO OTHERS
     a given peer group will be in the frame or excluded from it.
    </para>
 
+   <para>
+    The
+    optional <replaceable class="parameter">row_pattern_common_syntax</replaceable>
+    defines the <firstterm>row pattern recognition condition</firstterm> for
+    this
+    window. <replaceable class="parameter">row_pattern_common_syntax</replaceable>
+    includes following subclauses. <literal>AFTER MATCH SKIP PAST LAST
+    ROW</literal> or <literal>AFTER MATCH SKIP TO NEXT ROW</literal> controls
+    how to proceed to next row position after a match
+    found. With <literal>AFTER MATCH SKIP PAST LAST ROW</literal> (the
+    default) next row position is next to the last row of previous match. On
+    the other hand, with <literal>AFTER MATCH SKIP TO NEXT ROW</literal> next
+    row position is always next to the last row of previous
+    match. <literal>DEFINE</literal> defines definition variables along with a
+    boolean expression. <literal>PATTERN</literal> defines a sequence of rows
+    that satisfies certain conditions using variables defined
+    in <literal>DEFINE</literal> clause. If the variable is not defined in
+    the <literal>DEFINE</literal> clause, it is implicitly assumed
+    following is defined in the <literal>DEFINE</literal> clause.
+
+<synopsis>
+<literal>variable_name</literal> AS TRUE
+</synopsis>
+
+    Note that the maximu number of variables defined
+    in <literal>DEFINE</literal> clause is 26.
+
+<synopsis>
+[ AFTER MATCH SKIP PAST LAST ROW | AFTER MATCH SKIP TO NEXT ROW ]
+PATTERN <replaceable class="parameter">pattern_variable_name</replaceable>[+] [, ...]
+DEFINE <replaceable class="parameter">definition_varible_name</replaceable> AS <replaceable class="parameter">expression</replaceable> [, ...]
+</synopsis>    
+   </para>
+
    <para>
     The purpose of a <literal>WINDOW</literal> clause is to specify the
     behavior of <firstterm>window functions</firstterm> appearing in the query's
-- 
2.25.1


----Next_Part(Sat_Sep__2_15_52_35_2023_273)--
Content-Type: Text/X-Patch; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="v5-0006-Row-pattern-recognition-patch-tests.patch"



^ permalink  raw  reply  [nested|flat] 7+ messages in thread


end of thread, other threads:[~2023-09-02 06:32 UTC | newest]

Thread overview: 7+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2022-01-17 12:26 Re: New developer papercut - Makefile references INSTALL Daniel Gustafsson <[email protected]>
2022-01-18 15:51 ` Daniel Gustafsson <[email protected]>
2022-01-18 16:05   ` Peter Eisentraut <[email protected]>
2022-01-19 13:54     ` Daniel Gustafsson <[email protected]>
2022-01-19 14:57       ` Tom Lane <[email protected]>
2022-01-18 16:06   ` Tom Lane <[email protected]>
2023-09-02 06:32 [PATCH v5 5/7] Row pattern recognition patch (docs). Tatsuo Ishii <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox