Doc: improve documentation about ORDER BY in matviews.
authorTom Lane <[email protected]>
Mon, 29 Nov 2021 17:13:13 +0000 (12:13 -0500)
committerTom Lane <[email protected]>
Mon, 29 Nov 2021 17:13:13 +0000 (12:13 -0500)
Remove the confusing use of ORDER BY in an example materialized
view.  It adds nothing to the example, but might encourage
people to follow bad practice.  Clarify REFRESH MATERIALIZED
VIEW's note about whether view ordering is retained (it isn't).

Maciek Sakrejda

Discussion: https://postgr.es/m/CAOtHd0D-OvrUU0C=4hX28p4BaSE1XL78BAQ0VcDaLLt8tdUzsg@mail.gmail.com

doc/src/sgml/ref/refresh_materialized_view.sgml
doc/src/sgml/rules.sgml

index 82d1628e8024a13d306441b1af857ba3b671a8dc..86bf5c462b636007ad745c3859b1c1cd7aa66e55 100644 (file)
@@ -93,12 +93,10 @@ REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] <replaceable class="PARAMETER">name</
   <title>Notes</title>
 
   <para>
-   While the default index for future
-   <xref linkend="SQL-CLUSTER">
-   operations is retained, <command>REFRESH MATERIALIZED VIEW</> does not
-   order the generated rows based on this property. If you want the data
-   to be ordered upon generation, you must use an <literal>ORDER BY</>
-   clause in the backing query.
+   If there is an <literal>ORDER BY</literal> clause in the materialized
+   view's defining query, the original contents of the materialized view
+   will be ordered that way; but <command>REFRESH MATERIALIZED
+   VIEW</command> does not guarantee to preserve that ordering.
   </para>
  </refsect1>
 
index 5c30e361d424a1653d1ce359123e622257a1ac32..8da83715681a64be3f1ddafa92dfbe13d3541095 100644 (file)
@@ -956,9 +956,6 @@ CREATE MATERIALIZED VIEW sales_summary AS
     FROM invoice
     WHERE invoice_date < CURRENT_DATE
     GROUP BY
-      seller_no,
-      invoice_date
-    ORDER BY
       seller_no,
       invoice_date;