mirror of https://github.com/postgres/postgres
Improve assertion in FindReplTupleInLocalRel().
The first part of the assertion verifying that the passed index must be PK or RI was incorrectly passing index relation instead of heap relation in GetRelationIdentityOrPK(). The assertion was not failing because the second part of the assertion which needs to be performed only when remote relation has REPLICA_IDENTITY_FULL set was also incorrect. The change is not backpatched because the current coding doesn't lead to any failure. Reported-by: Dilip Kumar Author: Amit Kapila Reviewed-by: Vignesh C Discussion: https://postgr.es/m/CAFiTN-tmguaT1DXbCC+ZomZg-oZLmU6BPhr0po7akQSG6vNJrg@mail.gmail.com
This commit is contained in:
parent
65c310b310
commit
3beb945da9
|
@ -2929,9 +2929,10 @@ FindReplTupleInLocalRel(ApplyExecutionData *edata, Relation localrel,
|
|||
Relation idxrel = index_open(localidxoid, AccessShareLock);
|
||||
|
||||
/* Index must be PK, RI, or usable for REPLICA IDENTITY FULL tables */
|
||||
Assert(GetRelationIdentityOrPK(idxrel) == localidxoid ||
|
||||
Assert(GetRelationIdentityOrPK(localrel) == localidxoid ||
|
||||
(remoterel->replident == REPLICA_IDENTITY_FULL &&
|
||||
IsIndexUsableForReplicaIdentityFull(BuildIndexInfo(idxrel),
|
||||
edata->targetRel->attrmap));
|
||||
edata->targetRel->attrmap)));
|
||||
index_close(idxrel, AccessShareLock);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue