Fixed problem with multiple portals shown up in portals_p2 regression
authorJan Wieck <JanWieck@Yahoo.com>
Sun, 7 Feb 1999 13:37:56 +0000 (13:37 +0000)
committerJan Wieck <JanWieck@Yahoo.com>
Sun, 7 Feb 1999 13:37:56 +0000 (13:37 +0000)
test after new AllocSet code.

Activated optimal AllocSet blocksize and chunk limit.

Jan

src/backend/executor/execMain.c
src/backend/utils/mmgr/aset.c

index 51478f0625332bbe9bd41cfbbfeb7a07d7e277eb..7a8730ce021bb0388f458d4cc77a3afaf1d620bb 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.71 1999/02/06 16:50:23 wieck Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.72 1999/02/07 13:37:55 wieck Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -128,8 +128,22 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate)
        memset(estate->es_param_exec_vals, 0, queryDesc->plantree->nParamExec * sizeof(ParamExecData));
    }
 
-   estate->es_snapshot = QuerySnapshot;
+   /*
+    * 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)
+   {
+       estate->es_snapshot->xip = (TransactionId *)
+                   palloc(estate->es_snapshot->xcnt * sizeof(TransactionId));
+       memcpy(estate->es_snapshot->xip, QuerySnapshot->xip,
+                   estate->es_snapshot->xcnt * sizeof(TransactionId));
+   }
 
+   /*
+    * Initialize the plan
+    */
    result = InitPlan(queryDesc->operation,
                      queryDesc->parsetree,
                      queryDesc->plantree,
index 15b5094881e94bc7b0603848e84248087e694012..739bd998971f825015200648022624b4d76b517d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.12 1999/02/06 16:50:25 wieck Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.13 1999/02/07 13:37:56 wieck Exp $
  *
  * NOTE:
  * This is a new (Feb. 05, 1999) implementation of the allocation set
 #undef realloc
 
 
-/*
 #define    ALLOC_BLOCK_SIZE    8192
 #define    ALLOC_CHUNK_LIMIT   512
- *
- * The above settings for block size and chunk limit gain better
- * performance. But the ones below force a bug that I didn't found
- * up to now letting the portals_p2 regression test fail.
- *
- */
-#define    ALLOC_BLOCK_SIZE    16384
-#define    ALLOC_CHUNK_LIMIT   256
 
 #define ALLOC_BLOCKHDRSZ   MAXALIGN(sizeof(AllocBlockData))
 #define ALLOC_CHUNKHDRSZ   MAXALIGN(sizeof(AllocChunkData))