Re: repack: fix a bug to reject deferrable primary key fallback for concurrent mode

From: Antonin Houska <ah(at)cybertec(dot)at>
To: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: repack: fix a bug to reject deferrable primary key fallback for concurrent mode
Date: 2026-04-21 06:09:42
Message-ID: 5990.1776751782@localhost
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:

> > On Apr 20, 2026, at 22:52, Antonin Houska <ah(at)cybertec(dot)at> wrote:
> >
> > I'm just thinking if it's worth a separate error message.
> > RelationGetIndexList() just ignores the deferrable PK
> >
> > if (replident == REPLICA_IDENTITY_DEFAULT && OidIsValid(pkeyIndex) && !pkdeferrable)
> > relation->rd_replidindex = pkeyIndex;
> >
> > and if there's no other suitable index, the result is that there is no
> > identity index for the table. So the change attached here should be consistent
> > with this approach.

> Thanks for your review. I guess you read the v1 patch. In v2, I have switched to use GetRelationIdentityOrPK() that Zhijie suggested, which has covered RelationGetIndexList() and all checks, so that code is simplified, and there is no longer a separate error message.

Yes, this looks like the best approach. Sorry for missing v2.

--
Antonin Houska
Web: https://www.cybertec-postgresql.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message a.kozhemyakin 2026-04-21 06:10:07 Re: Add \pset options for boolean value display
Previous Message Richard Guo 2026-04-21 06:05:07 Re: Bug: Rule actions see wrong values for generated columns (NEW.gen reads OLD value)