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>