Doc: improve documentation about ORDER BY in matviews.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 29 Nov 2021 17:13:12 +0000 (12:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 29 Nov 2021 17:13:12 +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 3bf888444782f424dfa88dbca06fcdb1ce9cc58e..675d6090f3cd68b17da2ccfa1db851641795b47e 100644 (file)
@@ -93,12 +93,10 @@ REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] <replaceable class="parameter">name</
   <title>Notes</title>
 
   <para>
-   While the default index for future
-   <link linkend="sql-cluster"><command>CLUSTER</command></link>
-   operations is retained, <command>REFRESH MATERIALIZED VIEW</command> 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</literal>
-   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 6065b1c2a3187557a099007cf18b6087dabcb5b1..4aa4e00e017be86b0e94844d4d054bfdd6d55376 100644 (file)
@@ -961,9 +961,6 @@ CREATE MATERIALIZED VIEW sales_summary AS
     FROM invoice
     WHERE invoice_date &lt; CURRENT_DATE
     GROUP BY
-      seller_no,
-      invoice_date
-    ORDER BY
       seller_no,
       invoice_date;