Re: using index or check in ALTER TABLE SET NOT NULL

Sergei Kornilov <sk@zsrv.org>

From: Sergei Kornilov <sk@zsrv.org>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>, "alvherre@alvh.no-ip.org" <alvherre@alvh.no-ip.org>, Stephen Frost <sfrost@snowman.net>, Robert Haas <robertmhaas@gmail.com>, "i.musin@postgrespro.ru" <i.musin@postgrespro.ru>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2018-11-04T18:03:19Z
Lists: pgsql-hackers
Hello

> This patch went through the last tree commit fests without any noticeable activity
Well, last two CF. During march commitfest patch has activity and was marked as ready for committer. But at end of july CF was no further activity and patch was reverted back to "need review" with reason [1]:
> It's not clear that there is consensus that this is wanted.
I can't say something here.

> If not properly cataloguing NOT NULL constraints would be fixed, can it
> potentially conflict with the current patch or not?
We already doing same stuff for "alter table attach partition" and in this patch i use exactly this routine. If proper cataloguing would conflict with my patch - it would conflict with "attach partition" validation too.
I think proper cataloguing can be implemented without conflict with proposed feature.

regards, Sergei

[1]: https://www.postgresql.org/message-id/c4c7556d-a046-ac29-2549-bdef0078b6fe%402ndQuadrant.com


Commits

  1. Avoid using INFO elevel for what are fundamentally debug messages.

  2. Revert setting client_min_messages to 'debug1' in new tests.

  3. Allow ALTER TABLE .. SET NOT NULL to skip provably unnecessary scans.

  4. Improve predtest.c's internal docs, and enhance its functionality a bit.