From: Magnus Hagander Date: Fri, 18 Feb 2011 10:59:57 +0000 (+0100) Subject: Properly initialize variables X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=45a6d79b1764a78301ef008f4561b5e176352331;p=pg-rex%2Fsyncrep.git Properly initialize variables Kevin Grittner --- diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index e2d79e20b4..d660ce5af7 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -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; }