Laurenz Albe <laurenz.albe@cybertec.at> writes:
> We throw an error if the expression in a CREATE INDEX statement is not IMMUTABLE.
> But while the documentation notes that expressions in CHECK constraints are not
> to be immutable, we don't enforce that. Why don't we call something like
> CheckMutability inside cookConstraint? Sure, that wouldn't catch all abuse,
> but it would be better than nothing.
> There is of course the worry of breaking upgrade for unsafe constraints, but is
> there any other reason not to enforce immutability?
Yeah, that's exactly it, it's a historical exemption for compatibility
reasons. There are discussions about this in the archives, if memory
serves ... but I'm too tired to go digging.
regards, tom lane