Re: NOT ENFORCED constraint feature - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: NOT ENFORCED constraint feature
Date
Msg-id 202502030750.xkfxjak4it2c@alvherre.pgsql
Whole thread Raw
In response to Re: NOT ENFORCED constraint feature  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Responses Re: NOT ENFORCED constraint feature
Re: NOT ENFORCED constraint feature
List pgsql-hackers
On 2025-Feb-03, Ashutosh Bapat wrote:

> VALID, NOT ENFORCED changed to VALID, ENFORCED - data validation
> required, constraint is enforced

There's no such thing as a VALID NOT ENFORCED constraint.  It just
cannot exist.

> NOT VALID, NOT ENFORCED changed to NOT_VALID, ENFORCED - no data
> validation required, constraint is enforced on the new tuples/changes

This may make sense, but it needs special nonstandard syntax.  If you
start with a NOT VALID NOT ENFORCED constraint (which is the only way to
have a NOT ENFORCED constraint) and apply ALTER TABLE ALTER CONSTRAINT
ENFORCE, you will end up with a VALID ENFORCED constraint, therefore
validation must be run.

If you wanted to add a nonstandard command
ALTER TABLE ALTER CONSTRAINT ENFORCE NO VALIDATE
then maybe the transition you suggest could be made.
It should be a separate patch from regular ALTER CONSTRAINT ENFORCE
though, just in case some problems with it emerge later and we're forced
to revert it, we can still keep the standard command.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"Use it up, wear it out, make it do, or do without"



pgsql-hackers by date:

Previous
From: Yura Sokolov
Date:
Subject: Re: Optimize scram_SaltedPassword performance
Next
From: Álvaro Herrera
Date:
Subject: Re: pgbench with partitioned tables