Improve RelationGetIdentityKeyBitmap().

We were using RelationGetIndexList() to update the relation's replica
identity index but instead, we can directly use RelationGetReplicaIndex()
which uses the same functionality. This is a minor code readability
improvement.

Author: Japin Li
Reviewed-By: Takamichi Osumi, Amit Kapila
Discussion: https://postgr.es/m/4C99A862-69C8-431F-960A-81B1151F1B89@enterprisedb.com
This commit is contained in:
Amit Kapila 2021-06-28 10:56:53 +05:30
parent b786304c29
commit ee3fdb8f34
1 changed files with 4 additions and 9 deletions

View File

@ -5244,9 +5244,9 @@ Bitmapset *
RelationGetIdentityKeyBitmap(Relation relation)
{
Bitmapset *idindexattrs = NULL; /* columns in the replica identity */
List *indexoidlist;
Relation indexDesc;
int i;
Oid replidindex;
MemoryContext oldcxt;
/* Quick exit if we already computed the result */
@ -5260,18 +5260,14 @@ RelationGetIdentityKeyBitmap(Relation relation)
/* Historic snapshot must be set. */
Assert(HistoricSnapshotActive());
indexoidlist = RelationGetIndexList(relation);
/* Fall out if no indexes (but relhasindex was set) */
if (indexoidlist == NIL)
return NULL;
replidindex = RelationGetReplicaIndex(relation);
/* Fall out if there is no replica identity index */
if (!OidIsValid(relation->rd_replidindex))
if (!OidIsValid(replidindex))
return NULL;
/* Look up the description for the replica identity index */
indexDesc = RelationIdGetRelation(relation->rd_replidindex);
indexDesc = RelationIdGetRelation(replidindex);
if (!RelationIsValid(indexDesc))
elog(ERROR, "could not open relation with OID %u",
@ -5295,7 +5291,6 @@ RelationGetIdentityKeyBitmap(Relation relation)
}
RelationClose(indexDesc);
list_free(indexoidlist);
/* Don't leak the old values of these bitmaps, if any */
bms_free(relation->rd_idattr);