* 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);
* 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));
* 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));
* 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));
* 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));
/* 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);
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"),
}
nearConflict = (RWConflict)
- SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts,
- (SHM_QUEUE *) &MySerializableXact->inConflicts,
+ SHMQueueNext(&MySerializableXact->inConflicts,
+ &MySerializableXact->inConflicts,
offsetof(RWConflictData, inLink));
while (nearConflict)
{
}
nearConflict = (RWConflict)
- SHMQueueNext((SHM_QUEUE *) &MySerializableXact->inConflicts,
+ SHMQueueNext(&MySerializableXact->inConflicts,
&nearConflict->inLink,
offsetof(RWConflictData, inLink));
}
* 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,