postgresql/src/test/regress
Tom Lane e5f455f59f Apply table and domain CHECK constraints in name order.
Previously, CHECK constraints of the same scope were checked in whatever
order they happened to be read from pg_constraint.  (Usually, but not
reliably, this would be creation order for domain constraints and reverse
creation order for table constraints, because of differing implementation
details.)  Nondeterministic results of this sort are problematic at least
for testing purposes, and in discussion it was agreed to be a violation of
the principle of least astonishment.  Therefore, borrow the principle
already established for triggers, and apply such checks in name order
(using strcmp() sort rules).  This lets users control the check order
if they have a mind to.

Domain CHECK constraints still follow the rule of checking lower nested
domains' constraints first; the name sort only applies to multiple
constraints attached to the same domain.

In passing, I failed to resist the temptation to wordsmith a bit in
create_domain.sgml.

Apply to HEAD only, since this could result in a behavioral change in
existing applications, and the potential regression test failures have
not actually been observed in our buildfarm.
2015-03-23 16:59:35 -04:00
..
data Improve key representation for GIN jsonb_ops, and fix existence-search bug. 2014-05-09 08:41:26 -04:00
expected to_char: revert cc0d90b73b 2015-03-22 22:56:56 -04:00
input Apply table and domain CHECK constraints in name order. 2015-03-23 16:59:35 -04:00
output Apply table and domain CHECK constraints in name order. 2015-03-23 16:59:35 -04:00
sql to_char: revert cc0d90b73b 2015-03-22 22:56:56 -04:00
.gitignore Update .gitignore for config.cache. 2014-12-18 19:56:42 +09:00
GNUmakefile Update copyright for 2015 2015-01-06 11:43:47 -05:00
Makefile Remove remains of old depend target. 2007-01-20 17:16:17 +00:00
parallel_schedule Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
pg_regress_main.c Update copyright for 2015 2015-01-06 11:43:47 -05:00
pg_regress.c Add macros wrapping all usage of gcc's __attribute__. 2015-03-11 14:30:01 +01:00
pg_regress.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
README Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:04 -05:00
regress.c Add CHECK_FOR_INTERRUPTS() to the wait_pid() loop. 2015-03-07 00:47:38 -05:00
regressplans.sh Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
resultmap Enable compiling with the mingw-w64 32 bit compiler. 2011-12-10 15:35:41 -05:00
serial_schedule Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
standby_schedule Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00

Documentation concerning how to run these regression tests and interpret
the results can be found in the PostgreSQL manual, in the chapter
"Regression Tests".