Thread: CHECK constraints - order of evaluation

CHECK constraints - order of evaluation

From
PG Doc comments form
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.6/ddl-constraints.html
Description:

I think the information about the "order of execution" when checking CHECK
constraints when inserting or updating records is missing in the
documentation.
There seems to be an old e-mail thread on the topic, however, there is no
information on whether the patch submitted was already merged and if so, in
which version of PostgreSQL.
I also suggest it would be good to point out in the documentation how the
order of CHECK constraints is created when there are more column CHECK
constraints and table CHECK constraints (i.e. in mixed cases) or whether
only the name of the constraint is relevant when it comes to it, not its
type (column/table).

Thank you very much in advance.
Kindest regards,
Ľudovít

Re: CHECK constraints - order of evaluation

From
"David G. Johnston"
Date:
On Thu, May 14, 2020 at 2:30 AM PG Doc comments form <noreply@postgresql.org> wrote:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.6/ddl-constraints.html
Description:

I think the information about the "order of execution" when checking CHECK
constraints when inserting or updating records is missing in the
documentation.

Check constraints require immutable functions and do not have side effects.  The order of their execution is immaterial and thus not documented.  The server is free to do whatever it wishes whenever it wishes and users should not depend on any specific observed order in their usage (I don't believe we actually say to avoid depending upon undocumented behavior but that is the general guideline or working with systems).

David J.