]> granicus.if.org Git - postgresql/commitdiff
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;
                }