tablecmds: Open pg_class only when an update is required

Chao Li <li.evan.chao@gmail.com>

From: Chao Li <li.evan.chao@gmail.com>
To: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-12-11T07:15:30Z
Lists: pgsql-hackers

Attachments

Hi Hackers,

I just noticed that relation_mark_replica_identity() unconditionally opened
pg_class with RowExclusiveLock even in cases where relreplident has no
change, which incurred unnecessary relation opens, lock acquisition.

I just made a tiny refactor that defers opening pg_class until we know that
an update to relreplident is required.

I have manually tested the change, and "make check" passed.

Best regards,
Chao Li (Evan)
---------------------
HighGo Software Co., Ltd.
https://www.highgo.com/