Re: DEFERRABLE NOT NULL constraint - Mailing list pgsql-general

From Andreas Joseph Krogh
Subject Re: DEFERRABLE NOT NULL constraint
Date
Msg-id OrigoEmail.15f.fdfc92f088952638.13ca9a7e242@prod2.officenet.no
Whole thread Raw
In response to Re: DEFERRABLE NOT NULL constraint  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Responses Re: DEFERRABLE NOT NULL constraint  (Darren Duncan <darren@darrenduncan.net>)
Re: DEFERRABLE NOT NULL constraint  (Gavan Schneider <pg-gts@snkmail.com>)
List pgsql-general
P=C3=A5 tirsdag 05. februar 2013 kl. 09:59:54, skrev Albe Laurenz <=
laurenz.albe@w=
ien.gv.at>:

<blockquote style=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt=
 0pt 0pt 0.8ex; padding-left: 1ex;">
And=
reas Joseph Krogh wrote:
> It's currently (9.2) not possible to define DEFERRABLE NOT NULL constr=
aints. Meaning the following is
> not valid:
>
> CREATE TABLE my_table(
> id varchar PRIMARY KEY,
> stuff_id BIGINT NOT NULL DEFERRABLE INITIALLY DEFERRED
> );
>
> While it's possible to define a trigger to enforce this, like this:
>
> CREATE CONSTRAINT TRIGGER my_table_t AFTER INSERT OR UPDATE ON onp_crm=
_relation DEFERRABLE INITIALLY
> DEFERRED
> FOR EACH ROW EXECUTE PROCEDURE my_table_check_stuff_id_nn_tf();
>
> And have the my_table_check_stuff_id_nn_tf() raise an exception if &qu=
ot;stuff_id" is null.
>
> Having deferrable constraints on FKs and UKs is really nice and when w=
orking with ORMs it's almost
> impossible to not use this feature.
>
> Are there any plans to make NOT NULL constraints deferrable so one can=
 avoid the trigger
> "boilerplate"?

Not that I know of.

There's an entry in the TODO list that recognizes that it would
be desirable to make NOT NULL a regular constraint (you can do
that today by using CHECK (col IS NOT NULL) instead).

But CHECK constraints are also not deferrable...


=C2=A0

+100 for having NOT NULL and CHECK-constraints deferrable:-)

=C2=A0

Is there any "I want to sponsor development of <feature-X> =
with $xxx" mechanism?

=C2=A0

--
Andreas Joseph Krogh <andreak@officenet.no>=C2=A0 =C2=A0 =C2=A0 mob: =
+47 909 56 963
Senior Software Developer / CTO - OfficeNet AS - http://www.officenet.no
Public key: http://home.officenet.no/~andreak/public_key.asc

=C2=A0=

pgsql-general by date:

Previous
From: Albe Laurenz
Date:
Subject: Re: DEFERRABLE NOT NULL constraint
Next
From: Misa Simic
Date:
Subject: Re: partial time stamp query