Re: CHECK Constraint Deferrable - Mailing list pgsql-hackers

From David G. Johnston
Subject Re: CHECK Constraint Deferrable
Date
Msg-id CAKFQuwYXSqC-fe6s+HyNYTaTk_Vqw5xfd7UosMFqCwjSs6usrg@mail.gmail.com
Whole thread Raw
In response to Re: CHECK Constraint Deferrable  (Andreas Joseph Krogh <andreas@visena.com>)
Responses Re: CHECK Constraint Deferrable
List pgsql-hackers
On Monday, October 2, 2023, Andreas Joseph Krogh <andreas@visena.com> wrote:
På fredag 07. juli 2023 kl. 13:50:44, skrev Dilip Kumar <dilipbalaut@gmail.com>:
On Wed, Jul 5, 2023 at 3:08 PM Himanshu Upadhyaya
<upadhyaya.himanshu@gmail.com> wrote:
>
> Hi,
>
> Currently, there is no support for CHECK constraint DEFERRABLE in a create table statement.
> SQL standard specifies that CHECK constraint can be defined as DEFERRABLE.

I think this is a valid argument that this is part of SQL standard so
it would be good addition to PostgreSQL.  So +1 for the feature.

But I am wondering whether there are some real-world use cases for
deferred CHECK/NOT NULL constraints?  I mean like for foreign key
constraints if there is a cyclic dependency between two tables then
deferring the constraint is the simplest way to insert without error.

 

The real-world use case, at least for me, is when using an ORM. For large object-graphs ORMs have a tendency to INSERT first with NULLs then UPDATE the “NOT NULLs” later.

“Rewrite the ORM” is not an option for most of us…

Between this and Vik comment it sounds like we should probably require a patch in this area to solve both the not null and check constraint deferral omissions then, not just one of them (alternatively, let’s solve the not null one first).

David J.

pgsql-hackers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: On login trigger: take three
Next
From: Tom Lane
Date:
Subject: Re: Modernize const handling with readline