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>

Reply via email to