• Tom Lane's avatar
    Apply table and domain CHECK constraints in name order. · e5f455f5
    Tom Lane authored
    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.
    e5f455f5
create_domain.sgml 8.19 KB