mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
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:
13
src/backend/utils/cache/relcache.c
vendored
13
src/backend/utils/cache/relcache.c
vendored
@ -5244,9 +5244,9 @@ Bitmapset *
|
|||||||
RelationGetIdentityKeyBitmap(Relation relation)
|
RelationGetIdentityKeyBitmap(Relation relation)
|
||||||
{
|
{
|
||||||
Bitmapset *idindexattrs = NULL; /* columns in the replica identity */
|
Bitmapset *idindexattrs = NULL; /* columns in the replica identity */
|
||||||
List *indexoidlist;
|
|
||||||
Relation indexDesc;
|
Relation indexDesc;
|
||||||
int i;
|
int i;
|
||||||
|
Oid replidindex;
|
||||||
MemoryContext oldcxt;
|
MemoryContext oldcxt;
|
||||||
|
|
||||||
/* Quick exit if we already computed the result */
|
/* Quick exit if we already computed the result */
|
||||||
@ -5260,18 +5260,14 @@ RelationGetIdentityKeyBitmap(Relation relation)
|
|||||||
/* Historic snapshot must be set. */
|
/* Historic snapshot must be set. */
|
||||||
Assert(HistoricSnapshotActive());
|
Assert(HistoricSnapshotActive());
|
||||||
|
|
||||||
indexoidlist = RelationGetIndexList(relation);
|
replidindex = RelationGetReplicaIndex(relation);
|
||||||
|
|
||||||
/* Fall out if no indexes (but relhasindex was set) */
|
|
||||||
if (indexoidlist == NIL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* Fall out if there is no replica identity index */
|
/* Fall out if there is no replica identity index */
|
||||||
if (!OidIsValid(relation->rd_replidindex))
|
if (!OidIsValid(replidindex))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Look up the description for the replica identity index */
|
/* Look up the description for the replica identity index */
|
||||||
indexDesc = RelationIdGetRelation(relation->rd_replidindex);
|
indexDesc = RelationIdGetRelation(replidindex);
|
||||||
|
|
||||||
if (!RelationIsValid(indexDesc))
|
if (!RelationIsValid(indexDesc))
|
||||||
elog(ERROR, "could not open relation with OID %u",
|
elog(ERROR, "could not open relation with OID %u",
|
||||||
@ -5295,7 +5291,6 @@ RelationGetIdentityKeyBitmap(Relation relation)
|
|||||||
}
|
}
|
||||||
|
|
||||||
RelationClose(indexDesc);
|
RelationClose(indexDesc);
|
||||||
list_free(indexoidlist);
|
|
||||||
|
|
||||||
/* Don't leak the old values of these bitmaps, if any */
|
/* Don't leak the old values of these bitmaps, if any */
|
||||||
bms_free(relation->rd_idattr);
|
bms_free(relation->rd_idattr);
|
||||||
|
Reference in New Issue
Block a user