One more fix to QuerySnapshot usage in ExecutorStart(). Maybe

current QuerySnapshot could be NULL.

Jan
This commit is contained in:
Jan Wieck 1999-02-07 13:54:58 +00:00
parent a5f3abacb5
commit 6fa3d0a7ab
1 changed files with 11 additions and 6 deletions

View File

@ -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));
}
}
/*