Re: tablecmds: fix bug where index rebuild loses replica identity on partitions - Mailing list pgsql-hackers

From Chao Li
Subject Re: tablecmds: fix bug where index rebuild loses replica identity on partitions
Date
Msg-id F42E6546-E46B-46FE-9C21-30BD289259AE@gmail.com
Whole thread Raw
In response to Re: tablecmds: fix bug where index rebuild loses replica identity on partitions  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: tablecmds: fix bug where index rebuild loses replica identity on partitions
List pgsql-hackers

> On Jan 27, 2026, at 15:59, Chao Li <li.evan.chao@gmail.com> wrote:
>
>
>
>> On Jan 27, 2026, at 15:39, Michael Paquier <michael@paquier.xyz> wrote:
>>
>> On Tue, Jan 27, 2026 at 01:13:32PM +0800, Chao Li wrote:
>>> I found this bug while working on a related patch [1].
>>>
>>> When ALTER TABLE ... ALTER COLUMN TYPE causes an index rebuild, and
>>> that index is used as REPLICA IDENTITY on a partitioned table, the
>>> replica identity marking on partitions can be silently lost after the
>>> rebuild.
>>
>> I am slightly confused by the tests included in the proposed patch.
>> On HEAD, if I undo the proposed changes of tablecmds.c, the tests
>> pass.  If I run the tests of the patch with the changes of
>> tablecmds.c, the tests also pass.
>
> Oops, that isn’t supposed to be so. I’ll check the test.
>

Okay, I see the problem is here:
```
+CREATE UNIQUE INDEX test_replica_identity_partitioned_pkey ON test_replica_identity_partitioned (id);
```

I missed to add column “val” into the index, so that alter type of val didn’t cause index rebuild.

Ideally, it’s better to also verify that index OIDs should have changed before and after alter column type, but I
haven’tfigured out how to do so. Do you have an idea? 

Please see v2, the test should fail on master now.

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





Attachment

pgsql-hackers by date:

Previous
From: jian he
Date:
Subject: could not find replacement targetlist entry for attno -6
Next
From: Jim Jones
Date:
Subject: Re: display hot standby state in psql prompt