Jeff Davis <pgsql@xxxxxxxxxxx> writes: > On Tue, 2008-09-02 at 19:22 -0400, Tom Lane wrote: >> Jeff Davis <pgsql@xxxxxxxxxxx> writes: >>> My question is not why don't we allow subqueries in CHECK, my question >>> is why do we allow stable/volatile functions? >> >> Historically we've allowed it, > I suppose this means that we're already treating any CHECK constraint as > immutable anyway, e.g. for constraint_exclusion? I think the constraint_exclusion code does check for immutability before assuming it can deduce exclusion. But the ordinary use of CHECK just assumes it only needs to evaluate the check at tuple insertion. regards, tom lane