Doc: improve documentation about ORDER BY in matviews.

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
This commit is contained in:
Tom Lane 2021-11-29 12:13:12 -05:00
parent e04a8059a7
commit 4f33af23e7
2 changed files with 4 additions and 9 deletions

View 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>

View 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;