@@ -2535,9 +2535,12 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
2535
2535
if (!found )
2536
2536
{
2537
2537
SHMQueueInit (& (newtarget -> predicateLocks ));
2538
- newpredlocktag .myTarget = newtarget ;
2538
+ newtarget -> priorVersionOfRow = NULL ;
2539
+ newtarget -> nextVersionOfRow = NULL ;
2539
2540
}
2540
2541
2542
+ newpredlocktag .myTarget = newtarget ;
2543
+
2541
2544
oldpredlock = (PREDICATELOCK * )
2542
2545
SHMQueueNext (& (oldtarget -> predicateLocks ),
2543
2546
& (oldtarget -> predicateLocks ),
@@ -2586,10 +2589,14 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
2586
2589
outOfShmem = true;
2587
2590
gotoexit ;
2588
2591
}
2589
- SHMQueueInsertBefore (& (newtarget -> predicateLocks ),
2590
- & (newpredlock -> targetLink ));
2591
- SHMQueueInsertBefore (& (newpredlocktag .myXact -> predicateLocks ),
2592
- & (newpredlock -> xactLink ));
2592
+ if (!found )
2593
+ {
2594
+ SHMQueueInsertBefore (& (newtarget -> predicateLocks ),
2595
+ & (newpredlock -> targetLink ));
2596
+ SHMQueueInsertBefore (& (newpredlocktag .myXact -> predicateLocks ),
2597
+ & (newpredlock -> xactLink ));
2598
+ newpredlock -> commitSeqNo = InvalidSerCommitSeqNo ;
2599
+ }
2593
2600
2594
2601
oldpredlock = nextpredlock ;
2595
2602
}