Dear Vignesh,

> I ran claude to identify issues related to the EXCEPT TABLE
> publication changes.

Very nice. I think this should be part of the community's routine.

> Finding #1: ALTER PUBLICATION race
> Finding #2: ALTER PUBLICATION validates against pre-lock state

To confirm, why can't we acquire the lock at the beginning of AlterPublication()
and re-check the publication state? For now AlterPublicationOptions() acquires
the AccessShareLock only if the row filter and column list may be specified, but
it could cause elog(ERROR, "tuple concurrently updated") error. It cannot be
translated thus may be surprising. Instead, can we obtain AccessExclusive
(or ShareUpdateExclusiveLock, which can block each other) at the beginning to
block concurrent operations?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Reply via email to