Re: NOT ENFORCED constraint feature
От | Peter Eisentraut |
---|---|
Тема | Re: NOT ENFORCED constraint feature |
Дата | |
Msg-id | d9de67a9-46b4-4f56-8ad8-5510c7e6ffeb@eisentraut.org обсуждение исходный текст |
Ответ на | Re: NOT ENFORCED constraint feature (Alvaro Herrera <alvherre@alvh.no-ip.org>) |
Список | pgsql-hackers |
On 03.02.25 13:19, Alvaro Herrera wrote: > On 2025-Feb-03, Ashutosh Bapat wrote: > >> ``` >> If the >> constraint is <literal>NOT ENFORCED</literal>, the database system will >> not check the constraint. It is then up to the application code to >> ensure that the constraints are satisfied. The database system might >> still assume that the data actually satisfies the constraint for >> optimization decisions where this does not affect the correctness of the >> result. >> ``` > > IMO the third sentence should be removed because it is bogus. There's > no situation in which a not-enforced constraint can be used for any > query optimizations -- you cannot know if a constraint remains valid > after it's been turned NOT ENFORCED, because anyone could insert data > that violates it milliseconds after it stops being enforced. I think > the expectation that the application is going to correctly enforce the > constraint after it's told the database server not to enforce it, is > going to be problematic. As I recall, we already do this in FDWs for > instance and it's already a problem. The database system could use the presence of a not enforced constraint for selectivity estimation, for example.
В списке pgsql-hackers по дате отправления: