@@ -2535,9 +2535,12 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
25352535if (!found )
25362536{
25372537SHMQueueInit (& (newtarget -> predicateLocks ));
2538- newpredlocktag .myTarget = newtarget ;
2538+ newtarget -> priorVersionOfRow = NULL ;
2539+ newtarget -> nextVersionOfRow = NULL ;
25392540}
25402541
2542+ newpredlocktag .myTarget = newtarget ;
2543+
25412544oldpredlock = (PREDICATELOCK * )
25422545SHMQueueNext (& (oldtarget -> predicateLocks ),
25432546& (oldtarget -> predicateLocks ),
@@ -2586,10 +2589,14 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
25862589outOfShmem = true;
25872590gotoexit ;
25882591}
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+ }
25932600
25942601oldpredlock = nextpredlock ;
25952602}