Subject: pgsql: Need to do CommandCounterIncrement after StoreAttrMissingVal.

From: Tom Lane <[email-masked]>
Date: Wed, 02 Apr 2025 15:13:18 +0000

Need to do CommandCounterIncrement after StoreAttrMissingVal.

Without this, an additional change to the same pg_attribute row
within the same command will fail.  This is possible at least with
ALTER TABLE ADD COLUMN on a multiple-inheritance-pathway structure.
(Another potential hazard is that immediately-following operations
might not see the missingval.)

Introduced by 95f650674, which split the former coding that
used a single pg_attribute update to change both atthasdef and
atthasmissing/attmissingval into two updates, but missed that
this should entail two CommandCounterIncrements as well.  Like
that fix, back-patch through v13.

Reported-by: Alexander Lakhin <[email-masked]>
Author: Tender Wang <[email-masked]>
Reviewed-by: Tom Lane <[email-masked]>
Discussion: https://postgr.es/m/[email-masked]
Backpatch-through: 13

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/2d6cfb0cddd35d724da4441c57e1c41a3991cbcb

Modified Files
--------------
src/backend/commands/tablecmds.c      |  2 ++
src/test/regress/expected/inherit.out | 15 ++++++++++++++-
src/test/regress/sql/inherit.sql      |  3 ++-
3 files changed, 18 insertions(+), 2 deletions(-)