Order of enforcement of CHECK constraints?
От | Tom Lane |
---|---|
Тема | Order of enforcement of CHECK constraints? |
Дата | |
Msg-id | 23683.1426878907@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: Order of enforcement of CHECK constraints?
Re: Order of enforcement of CHECK constraints? Re: Order of enforcement of CHECK constraints? Re: Order of enforcement of CHECK constraints? |
Список | pgsql-hackers |
My Salesforce colleagues noticed some tests flapping as a result of table CHECK constraints not always being enforced in the same order; ie, if a tuple insertion/update violates more than one CHECK constraint, it's not deterministic which one is reported. This is evidently because relcache.c's CheckConstraintFetch() just happily loads up the constraints in whatever order it happens to find them in pg_constraint. There's at least one regression test case where this can happen, so we've been lucky so far that this hasn't caused buildfarm noise. We could fix it by, say, having CheckConstraintFetch() sort the constraints by name after loading them. In principle the same problem could occur for domain CHECK constraints, though the odds of multiple CHECKs failing are probably a lot lower. Do people think this is worth fixing? regards, tom lane
В списке pgsql-hackers по дате отправления: