Order of InvokeObjectPostAlterHook within ATExecSetNotNull

From: Artur Zakirov <zaartur(at)gmail(dot)com>
To: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Order of InvokeObjectPostAlterHook within ATExecSetNotNull
Date: 2026-03-18 16:21:06
Message-ID: CAKNkYnxUPCJk-3Xe0A3rmCC8B8V8kqVJbYMVN6ySGpjs_qd7dQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello hackers!

The commit 14e87ff added pg_constraint rows for not-null [1]. The
consequence of the patch is that it changed the order of
InvokeObjectPostAlterHook() call and update of "attnotnull" field in
the catalog. Before the update was before the call of the hook [2].
And now "attnotnull" is updated after the call of
InvokeObjectPostAlterHook() [3].

This is a noticeable change to extensions which use
"object_access_hook" since they see a bit of stale information about
the attribute.

Is this an intended behavior or rather a bug?

1 - https://postgr.es/m/202408310358.sdhumtyuy2ht@alvherre.pgsql
2 - https://github.com/postgres/postgres/blob/REL_17_9/src/backend/commands/tablecmds.c#L7818
3 - https://github.com/postgres/postgres/blob/REL_18_1/src/backend/commands/tablecmds.c#L8043-L8047

--
Kind regards,
Artur

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2026-03-18 16:23:51 Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion?
Previous Message Jacob Champion 2026-03-18 16:14:02 Re: Serverside SNI support in libpq