Re: tablecmds: Open pg_class only when an update is required - Mailing list pgsql-hackers

From Chao Li
Subject Re: tablecmds: Open pg_class only when an update is required
Date
Msg-id F061684B-840F-4905-A58C-2D72B3BA162D@gmail.com
Whole thread Raw
In response to Re: tablecmds: Open pg_class only when an update is required  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
List pgsql-hackers

> On Dec 11, 2025, at 21:17, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote:
>
> On Thu, Dec 11, 2025 at 12:45 PM Chao Li <li.evan.chao@gmail.com> wrote:
>>
>> Hi Hackers,
>>
>> I just noticed that relation_mark_replica_identity() unconditionally opened pg_class with RowExclusiveLock even in
caseswhere 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 think we need to lock the relation before fetching the tuple so that
> the field being read remains consistent. Instead of upgrading the lock
> which can deadlock, we get hold of row exclusive lock right at the
> beginning.
>
> --
> Best Wishes,
> Ashutosh Bapat

Hi Ashutosh,

Thanks for the explanation, so I withdraw this patch.

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







pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: enhance wraparound warnings
Next
From: shveta malik
Date:
Subject: Re: Improve pg_sync_replication_slots() to wait for primary to advance