]> granicus.if.org Git - postgresql/commitdiff
One more fix to QuerySnapshot usage in ExecutorStart(). Maybe
authorJan Wieck <JanWieck@Yahoo.com>
Sun, 7 Feb 1999 13:54:58 +0000 (13:54 +0000)
committerJan Wieck <JanWieck@Yahoo.com>
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));
+               }
        }
 
        /*