Re: Invalid Assert while validating REPLICA IDENTITY? - Mailing list pgsql-hackers

From vignesh C
Subject Re: Invalid Assert while validating REPLICA IDENTITY?
Date
Msg-id CALDaNm2LDousas-_cEbXW9_+d++KiHqo-qCTO3TGztFgwm13nQ@mail.gmail.com
Whole thread Raw
In response to Re: Invalid Assert while validating REPLICA IDENTITY?  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: Invalid Assert while validating REPLICA IDENTITY?
List pgsql-hackers
On Mon, 2 Sept 2024 at 18:22, Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Mon, Sep 2, 2024 at 3:32 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Mon, Sep 2, 2024 at 11:21 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > >
> > > While working on some other code I noticed that in
> > > FindReplTupleInLocalRel() there is an assert [1] that seems to be
> > > passing IndexRelation to GetRelationIdentityOrPK() whereas it should
> > > be passing normal relation.
> > >
> >
> > Agreed. But this should lead to assertion failure. Did you try testing it?
>
> No, I did not test this particular case, it impacted me with my other
> addition of the code where I got Index Relation as input to the
> RelationGetIndexList() function, and my local changes were impacted by
> that.  I will write a test for this stand-alone case so that it hits
> the assert.  Thanks for looking into this.

The FindReplTupleInLocalRel function can be triggered by both update
and delete operations, but this only occurs if the relation has been
marked as updatable by the logicalrep_rel_mark_updatable function. If
the relation is marked as non-updatable, an error will be thrown by
check_relation_updatable. Given this, if a relation is updatable, the
IsIndexUsableForReplicaIdentityFull condition might always evaluate to
true due to the previous checks in logicalrep_rel_mark_updatable.
Therefore, it’s possible that we might not encounter the Assert
statement, as IsIndexUsableForReplicaIdentityFull may consistently be
true.
Thoughts?

Regards,
Vignesh



pgsql-hackers by date:

Previous
From: Rafia Sabih
Date:
Subject: Re: pgstattuple: fix free space calculation
Next
From: Michail Nikolaev
Date:
Subject: Re: PATCH: Issue with set_indexsafe_procflags in ReindexRelationConcurrently