]> granicus.if.org Git - postgresql/commitdiff
Improve release note text about set-returning-function changes.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 14 Jun 2017 15:44:34 +0000 (11:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 14 Jun 2017 15:44:43 +0000 (11:44 -0400)
Paul Ramsey griped about this awhile ago, but I'd been holding fire
on changing it until we settled what to do about the CASE/COALESCE
issue.

Discussion: https://postgr.es/m/CACowWR0AMyUt5fwtvuDqWyYNdp-hQJj9XqSxJR6YM9sKWov=_w@mail.gmail.com

doc/src/sgml/release-10.sgml

index b10086bdb0f0459a35ea966e182d115d4275715d..75c48c0f59070996982dff98065543afcaf1361f 100644 (file)
 
     <listitem>
 <!--
+2017-01-16 [d43a619c6] Fix check_srf_call_placement() to handle VALUES cases co
 2017-01-18 [69f4b9c85] Move targetlist SRF handling from expression evaluation
 2017-01-18 [f13a1277a] Doc: improve documentation of new SRF-in-tlist behavior.
+2017-06-13 [0436f6bde] Disallow set-returning functions inside CASE or COALESCE
 -->
      <para>
-      Allow <literal>COALESCE</> and <literal>CASE</> to return multiple
-      rows when evaluating set-returning functions (Andres Freund).
+      Change the implementation of set-returning functions appearing in
+      a query's <literal>SELECT</> list (Andres Freund)
      </para>
 
      <para>
-      This also prevents conditionals like <literal>CASE</> from
-      controlling the execution of set-returning functions because
-      set-returning functions are now executed earlier.
+      Set-returning functions are now evaluated before evaluation of scalar
+      expressions in the <literal>SELECT</> list, much as though they had
+      been placed in a <literal>LATERAL FROM</>-clause item.  This allows
+      saner semantics for cases where multiple set-returning functions are
+      present.  If they return different numbers of rows, the shorter results
+      are extended to match the longest result by adding nulls.  Previously
+      the results were cycled until they all terminated at the same time,
+      producing a number of rows equal to the least common multiple of the
+      functions' periods.  In addition, set-returning functions are now
+      disallowed within <literal>CASE</> and <literal>COALESCE</> constructs.
+      For more information
+      see <xref linkend="xfunc-sql-functions-returning-set">.
      </para>
     </listitem>
 
       </para>
      </listitem>
 
-     <listitem>
-<!--
-2017-01-16 [d43a619c6] Fix check_srf_call_placement() to handle VALUES cases co
--->
-      <para>
-       Fix <function>check_srf_call_placement()</> to handle
-       <command>VALUES</> cases correctly (Tom Lane)
-      </para>
-
-      <para>
-      NEED TEXT.
-      </para>
-     </listitem>
-
     </itemizedlist>
 
    </sect3>