diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index 9f79f54bf7c9f87a0721f36d0d6e0294af2e0f68..02f5d033b28d131e6c0769aa1745d71b24ee320b 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -1432,8 +1432,7 @@ GetSafeSnapshot(Snapshot origSnapshot) * them marked us as conflicted. */ MySerializableXact->flags |= SXACT_FLAG_DEFERRABLE_WAITING; - while (!(SHMQueueEmpty((SHM_QUEUE *) - &MySerializableXact->possibleUnsafeConflicts) || + while (!(SHMQueueEmpty(&MySerializableXact->possibleUnsafeConflicts) || SxactIsROUnsafe(MySerializableXact))) { LWLockRelease(SerializableXactHashLock); @@ -3114,13 +3113,13 @@ ReleasePredicateLocks(const bool isCommit) * opposed to 'outLink' for the r/w xacts. */ possibleUnsafeConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, - (SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, + SHMQueueNext(&MySerializableXact->possibleUnsafeConflicts, + &MySerializableXact->possibleUnsafeConflicts, offsetof(RWConflictData, inLink)); while (possibleUnsafeConflict) { nextConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, + SHMQueueNext(&MySerializableXact->possibleUnsafeConflicts, &possibleUnsafeConflict->inLink, offsetof(RWConflictData, inLink)); @@ -3153,13 +3152,13 @@ ReleasePredicateLocks(const bool isCommit) * previously committed transactions. */ conflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->outConflicts, - (SHM_QUEUE *) &MySerializableXact->outConflicts, + SHMQueueNext(&MySerializableXact->outConflicts, + &MySerializableXact->outConflicts, offsetof(RWConflictData, outLink)); while (conflict) { nextConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->outConflicts, + SHMQueueNext(&MySerializableXact->outConflicts, &conflict->outLink, offsetof(RWConflictData, outLink)); @@ -3186,13 +3185,13 @@ ReleasePredicateLocks(const bool isCommit) * we're rolling back, clear them all. */ conflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts, - (SHM_QUEUE *) &MySerializableXact->inConflicts, + SHMQueueNext(&MySerializableXact->inConflicts, + &MySerializableXact->inConflicts, offsetof(RWConflictData, inLink)); while (conflict) { nextConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts, + SHMQueueNext(&MySerializableXact->inConflicts, &conflict->inLink, offsetof(RWConflictData, inLink)); @@ -3213,13 +3212,13 @@ ReleasePredicateLocks(const bool isCommit) * up if they are known safe or known unsafe. */ possibleUnsafeConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, - (SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, + SHMQueueNext(&MySerializableXact->possibleUnsafeConflicts, + &MySerializableXact->possibleUnsafeConflicts, offsetof(RWConflictData, outLink)); while (possibleUnsafeConflict) { nextConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->possibleUnsafeConflicts, + SHMQueueNext(&MySerializableXact->possibleUnsafeConflicts, &possibleUnsafeConflict->outLink, offsetof(RWConflictData, outLink)); @@ -3290,7 +3289,7 @@ ReleasePredicateLocks(const bool isCommit) /* Add this to the list of transactions to check for later cleanup. */ if (isCommit) SHMQueueInsertBefore(FinishedSerializableTransactions, - (SHM_QUEUE *) &(MySerializableXact->finishedLink)); + &MySerializableXact->finishedLink); if (!isCommit) ReleaseOneSerializableXact(MySerializableXact, false, false); @@ -3789,7 +3788,7 @@ CheckForSerializableConflictOut(const bool visible, const Relation relation, errhint("The transaction might succeed if retried."))); if (SxactHasSummaryConflictIn(MySerializableXact) - || !SHMQueueEmpty((SHM_QUEUE *) &MySerializableXact->inConflicts)) + || !SHMQueueEmpty(&MySerializableXact->inConflicts)) ereport(ERROR, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), errmsg("could not serialize access due to read/write dependencies among transactions"), @@ -4462,8 +4461,8 @@ PreCommit_CheckForSerializationFailure(void) } nearConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts, - (SHM_QUEUE *) &MySerializableXact->inConflicts, + SHMQueueNext(&MySerializableXact->inConflicts, + &MySerializableXact->inConflicts, offsetof(RWConflictData, inLink)); while (nearConflict) { @@ -4496,7 +4495,7 @@ PreCommit_CheckForSerializationFailure(void) } nearConflict = (RWConflict) - SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts, + SHMQueueNext(&MySerializableXact->inConflicts, &nearConflict->inLink, offsetof(RWConflictData, inLink)); } @@ -4543,9 +4542,9 @@ AtPrepare_PredicateLocks(void) * outConflicts lists, if they're non-empty we'll represent that by * setting the appropriate summary conflict flags. */ - if (!SHMQueueEmpty((SHM_QUEUE *) &MySerializableXact->inConflicts)) + if (!SHMQueueEmpty(&MySerializableXact->inConflicts)) xactRecord->flags |= SXACT_FLAG_SUMMARY_CONFLICT_IN; - if (!SHMQueueEmpty((SHM_QUEUE *) &MySerializableXact->outConflicts)) + if (!SHMQueueEmpty(&MySerializableXact->outConflicts)) xactRecord->flags |= SXACT_FLAG_SUMMARY_CONFLICT_OUT; RegisterTwoPhaseRecord(TWOPHASE_RM_PREDICATELOCK_ID, 0,