From 6fa3d0a7abe3f1fed5127a5575e2906e27c771de Mon Sep 17 00:00:00 2001 From: Jan Wieck Date: Sun, 7 Feb 1999 13:54:58 +0000 Subject: [PATCH] One more fix to QuerySnapshot usage in ExecutorStart(). Maybe current QuerySnapshot could be NULL. Jan --- src/backend/executor/execMain.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 7a8730ce02..e4f9e0e5d4 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.72 1999/02/07 13:37:55 wieck Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.73 1999/02/07 13:54:58 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -131,14 +131,19 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate) /* * Make our own private copy of the current queries snapshot data */ - estate->es_snapshot = (Snapshot)palloc(sizeof(SnapshotData)); - memcpy(estate->es_snapshot, QuerySnapshot, sizeof(SnapshotData)); - if (estate->es_snapshot->xcnt > 0) + if (QuerySnapshot == NULL) + estate->es_snapshot = NULL + else { - estate->es_snapshot->xip = (TransactionId *) + estate->es_snapshot = (Snapshot)palloc(sizeof(SnapshotData)); + memcpy(estate->es_snapshot, QuerySnapshot, sizeof(SnapshotData)); + if (estate->es_snapshot->xcnt > 0) + { + estate->es_snapshot->xip = (TransactionId *) palloc(estate->es_snapshot->xcnt * sizeof(TransactionId)); - memcpy(estate->es_snapshot->xip, QuerySnapshot->xip, + memcpy(estate->es_snapshot->xip, QuerySnapshot->xip, estate->es_snapshot->xcnt * sizeof(TransactionId)); + } } /* -- 2.40.0