On 02/03/2020 18:09, Don Seiler wrote: > The REAL reason for this is that I'm wondering if I created a NOT NULL > check constraint with "NOT VALID" would that then NOT be considered in such > a "short-circuit" case until I ran the VALIDATE CONSTRAINT on it? Perhaps I > should have just asked this in its own thread but I started diving into the > query plan thing.
You cannot do this because NOT NULL isn't a real constraint (meaning it does not appear in pg_constraint). There have been several attempts to make it a real constraint over the years but so far nothing has come of them
Using the check constraint method seemed to allow for the "not valid" step. I'm curious what the difference is between a NOT NULL check constraint versus setting the column to NOT NULL (assuming both are validated).