Order of InvokeObjectPostAlterHook within ATExecSetNotNull - Mailing list pgsql-hackers

From Artur Zakirov
Subject Order of InvokeObjectPostAlterHook within ATExecSetNotNull
Date
Msg-id CAKNkYnxUPCJk-3Xe0A3rmCC8B8V8kqVJbYMVN6ySGpjs_qd7dQ@mail.gmail.com
Whole thread
Responses Re: Order of InvokeObjectPostAlterHook within ATExecSetNotNull
List 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



pgsql-hackers by date:

Previous
From: Jacob Champion
Date:
Subject: Re: Serverside SNI support in libpq
Next
From: Tom Lane
Date:
Subject: Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion?