One more fix to QuerySnapshot usage in ExecutorStart(). Maybe
authorJan Wieck
Sun, 7 Feb 1999 13:54:58 +0000 (13:54 +0000)
committerJan Wieck
Sun, 7 Feb 1999 13:54:58 +0000 (13:54 +0000)
current QuerySnapshot could be NULL.

Jan

src/backend/executor/execMain.c

index 7a8730ce021bb0388f458d4cc77a3afaf1d620bb..e4f9e0e5d4639ec0303b759d0aa25422fef394c0 100644 (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));
+       }
    }
 
    /*