On 08/10/18 07:02, Pantelis Theodosiou wrote:
>
> I like this:
>
>> "Postgres does not currently support CHECK constraints containing
> queries, therefore we recommend to avoid them."
>
> Perhaps adding:
>
>> CHECK constraints are currently meant to be used as *row constraints*
> only.
>> Use - if possible - UNIQUE or EXCLUDE constraints. for constraints
> that involve many or all rows of a table,
>> and FOREIGN KEY constraints for cross table constraints.
>> More complex constraints will be available when ASSERTION are implemented.
>
> And then adding some warning about using functions in CHECK constraints
> to bypass current limitations.
>
> Pantelis Theodsoiou
Hi,
I have rewritten the patch to include your remarks.
In fact, the whole patch is now based on it, so thank you.
Patrick Francelle
diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index b5ed1b7939..f57f6e716d 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -403,6 +403,18 @@ CREATE TABLE products (
ensure that a column does not contain null values, the not-null
constraint described in the next section can be used.
</para>
+
+ <note>
+ <para>
+ Postgres does not currently support CHECK constraints containing queries,
+ therefore we recommend to avoid them. By using them, you may expect
+ troubles, especially to restore dumps.
+ CHECK constraints are currently meant to be used as row constraints only.
+ Use - if possible - UNIQUE or EXCLUDE constraints for constraints that
+ involve many or all rows of a table, and FOREIGN KEY constraints for cross
+ table constraints.
+ </para>
+ </note>
</sect2>
<sect2>