Re: Confused comment about drop replica identity index
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: "wangw.fnst@fujitsu.com" <wangw.fnst@fujitsu.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-12-15T03:24:45Z
Lists: pgsql-hackers
On Tue, Dec 14, 2021 at 07:10:49PM +0530, Ashutosh Bapat wrote: > This code in RelationGetIndexList() is not according to that comment. > > if (replident == REPLICA_IDENTITY_DEFAULT && OidIsValid(pkeyIndex)) > relation->rd_replidindex = pkeyIndex; > else if (replident == REPLICA_IDENTITY_INDEX && OidIsValid(candidateIndex)) > relation->rd_replidindex = candidateIndex; > else > relation->rd_replidindex = InvalidOid; Yeah, the comment is wrong. If the index of a REPLICA_IDENTITY_INDEX is dropped, I recall that the behavior is the same as REPLICA_IDENTITY_NOTHING. > Comment in code is one thing, but I think PG documentation is not > covering the use case you tried. What happens when a replica identity > index is dropped has not been covered either in ALTER TABLE > https://www.postgresql.org/docs/13/sql-altertable.html or DROP INDEX > https://www.postgresql.org/docs/14/sql-dropindex.html documentation. Not sure about the DROP INDEX page, but I'd be fine with mentioning that in the ALTER TABLE page in the paragraph related to REPLICA IDENTITY. While on it, I would be tempted to switch this stuff to use a list of <variablelist> for all the option values. That would be much easier to read. [ ... thinks a bit ... ] FWIW, this brings back some memories, as of this thread: https://www.postgresql.org/message-id/20200522035028.GO2355@paquier.xyz See also commit fe7fd4e from August 2020, where some tests have been added. I recall seeing this incorrect comment from last year's thread and it may have been mentioned in one of the surrounding threads.. Maybe I just let it go back then. I don't know. -- Michael
Commits
-
Correct comment and some documentation about REPLICA_IDENTITY_INDEX
- 9edca4cb57d2 10.20 landed
- 1a0ef5e2cc63 11.15 landed
- 861095a40987 12.10 landed
- 28e1e5c2a91c 13.6 landed
- 420f9ac1b77c 14.2 landed
- fc95d35b9429 15.0 landed
-
Add regression tests for REPLICA IDENTITY with dropped indexes
- fe7fd4e9613f 14.0 cited