Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Properly initialize variables
authorMagnus Hagander <magnus@hagander.net>
Fri, 18 Feb 2011 10:59:57 +0000 (11:59 +0100)
committerMagnus Hagander <magnus@hagander.net>
Fri, 18 Feb 2011 10:59:57 +0000 (11:59 +0100)
Kevin Grittner

src/backend/storage/lmgr/predicate.c

index e2d79e20b44f0c733e8ed16337e7fe26344fdb5a..d660ce5af78aefaa4dcb5576db722269603d5133 100644 (file)
@@ -2535,9 +2535,12 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
        if (!found)
        {
            SHMQueueInit(&(newtarget->predicateLocks));
-           newpredlocktag.myTarget = newtarget;
+           newtarget->priorVersionOfRow = NULL;
+           newtarget->nextVersionOfRow = NULL;
        }
 
+       newpredlocktag.myTarget = newtarget;
+
        oldpredlock = (PREDICATELOCK *)
            SHMQueueNext(&(oldtarget->predicateLocks),
                         &(oldtarget->predicateLocks),
@@ -2586,10 +2589,14 @@ TransferPredicateLocksToNewTarget(const PREDICATELOCKTARGETTAG oldtargettag,
                outOfShmem = true;
                goto exit;
            }
-           SHMQueueInsertBefore(&(newtarget->predicateLocks),
-                                &(newpredlock->targetLink));
-           SHMQueueInsertBefore(&(newpredlocktag.myXact->predicateLocks),
-                                &(newpredlock->xactLink));
+           if (!found)
+           {
+               SHMQueueInsertBefore(&(newtarget->predicateLocks),
+                                    &(newpredlock->targetLink));
+               SHMQueueInsertBefore(&(newpredlocktag.myXact->predicateLocks),
+                                    &(newpredlock->xactLink));
+               newpredlock->commitSeqNo = InvalidSerCommitSeqNo;
+           }
 
            oldpredlock = nextpredlock;
        }