On Tue, Jul 11, 2023 at 10:52:16PM +0530, Shruthi Gowda wrote: > While testing some use cases, I encountered 'ERROR: attempted to update > invisible tuple' when a partitioned index is attached to a parent index > which is also a replica identity index. > Below is the reproducible test case. The issue is seen only when the > commands are executed inside a transaction.
Thanks for the report, reproduced here. > The 'ALTER INDEX pk_foo ATTACH PARTITION foo_2023_id_ts_ix' returns > "*ERROR: attempted to update invisible tuple"* While working recently on what has led to cfc43ae and fc55c7f, I really got the feeling that there could be some command sequences that lacked some CCIs (or CommandCounterIncrement calls) to make sure that the catalog updates are visible in any follow-up steps in the same transaction. > The 'indisreplident' is false, the ctid field value is old and it does > not reflect the ctid changes made by 'ALTER TABLE ONLY foo REPLICA > IDENTITY USING INDEX pk_foo'. Your report is telling that we are missing a CCI somewhere in this sequence. I would have thought that relation_mark_replica_identity() is the correct place when the pg_index entry is dirtied, but that does not seem correct. Hmm. -- Michael
signature.asc
Description: PGP signature