mirror of
https://github.com/postgres/postgres.git
synced 2025-06-27 23:21:58 +03:00
One more fix to QuerySnapshot usage in ExecutorStart(). Maybe
current QuerySnapshot could be NULL. Jan
This commit is contained in:
@ -26,7 +26,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* Make our own private copy of the current queries snapshot data
|
||||||
*/
|
*/
|
||||||
estate->es_snapshot = (Snapshot)palloc(sizeof(SnapshotData));
|
if (QuerySnapshot == NULL)
|
||||||
memcpy(estate->es_snapshot, QuerySnapshot, sizeof(SnapshotData));
|
estate->es_snapshot = NULL
|
||||||
if (estate->es_snapshot->xcnt > 0)
|
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));
|
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));
|
estate->es_snapshot->xcnt * sizeof(TransactionId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user