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
<title>Notes</title>
<para>
- While the default index for future
- <xref linkend="sql-cluster"/>
- 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>
FROM invoice
WHERE invoice_date < CURRENT_DATE
GROUP BY
- seller_no,
- invoice_date
- ORDER BY
seller_no,
invoice_date;