Re: Proposal: Conflict log history table for Logical Replication

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Dilip Kumar <dilipbalaut(at)gmail(dot)com>
Cc: Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>, saurabh singh <saurabh(dot)singh214(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Proposal: Conflict log history table for Logical Replication
Date: 2026-10-09 17:47:06
Message-ID: CAA4eK1LneccwPw_CDxgcYfGuQhOPUddMVf7Ou-WvNA-Ls2w6dg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Oct 9, 2026 at 4:08 AM Dilip Kumar <dilipbalaut(at)gmail(dot)com> wrote:
>
> On Fri, Oct 9, 2026 at 2:51 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> >
> > Okay, I see the problem but I wonder why you didn't consider using
> > rd_opcintype stored in index relation to solve this problem. I have
> > tried the attached atop v79-0001 and v79-0002, manually executed the
> > test you shared in this email and it fixed the issue for me.
>
> Yeah you can do that, but if we directly fetch the heap attribute and
> then value from the slot like I have done in my 0003 patch you can get
> rid of all the processing done inside build_index_datums_from_slot()
> i.e. calling FormIndexDatum(BuildIndexInfo) etc. If you see my patch
> with that I am able to remove all this extra processing, I am sure we
> can get rid of that by some other way as well but I think thats the
> most obvious way of doing it.
>

I was looking from the code consistency point of view. We already used
this idea in build_index_value_desc() code path while reporting the
conflict in LOG, so it looks natural to use the same idea here. Also,
as this is a path where conflict already happened and we decided to
insert into conflict_history_table, so the performance will anyway be
not the main concern, so we can consider this optimization separately.

--
With Regards,
Amit Kapila.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Manu 2026-10-09 17:48:42 Re: [PATCH] Extensible ReadyForQuery wire protocol message and C hook, for connection pools and WAIT FOR LSN
Previous Message Bharath Rupireddy 2026-10-09 17:44:21 Re: Parallel autovacuum: DROP DATABASE WITH (FORCE) fails on the parallel workers