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

From Álvaro Herrera
Subject Re: NOT ENFORCED constraint feature
Date
Msg-id 202502121113.rhieqp66w3sg@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
List pgsql-hackers
On 2025-Feb-12, Ashutosh Bapat wrote:

> I have been asking a different question: What's the use of
> not-enforced constraints if we don't allow VALID, NOT ENFORCED state
> for them?

That's a question for the SQL standards committee.  They may serve
schema documentation purposes, for example.
https://www.postgresql.eu/events/pgconfeu2024/schedule/session/5677-exploring-postgres-databases-with-graphs/

> OTOH, consider an application which "knows" that the constraint is
> valid for the data (either because of checks at application level, or
> because the data was replicated from some other system where the
> cosntraints were applied). It's a natural ask to use the constraints
> for, say optimization, but don't take unnecessary overhead of
> validating them. VALID, NOT ENFORCED state helps in such a scenario.
> Of course an application can misuse it (just like stable marking on a
> function), but well ... they will be penalised for their misuse.

I disagree that we should see a VALID NOT ENFORCED constraint as one
that can be used for query optimization purposes.  This is only going to
bring users pain, because it's far too easy to misuse and they will get
wrong query results, possibly without knowing for who knows how long.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)



pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: Showing applied extended statistics in explain Part 2
Next
From: Nitin Jadhav
Date:
Subject: Re: Address the bug in 041_checkpoint_at_promote.pl