On Tue, Nov 28, 2017 at 1:59 PM, Sergei Kornilov <s...@zsrv.org> wrote: > I write patch to speed up ALTER TABLE SET NOT NULL by check existed check > constraints or indexes. Huge phase 3 with verify table data will be skipped > if table has valid check constraint cover "alteredfield IS NOT NULL" > condition or by SPI query if found index with compatible condition or regular > amsearchnulls index on processed field.
Doing this based on the existence of a valid constraint which implies that no nulls can be present seems like a good idea. Doing it based on an index scan doesn't necessarily seem like a good idea. We have no guarantee at all that the index scan will be faster than scanning the table would have been, and a single table scan can do multiple verification steps if, for example, multiple columns are set NOT NULL at the same time. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company