diff --git a/include/tableam/handler.h b/include/tableam/handler.h index 4e8f3735c..359f964b7 100644 --- a/include/tableam/handler.h +++ b/include/tableam/handler.h @@ -209,7 +209,9 @@ typedef struct ParallelOScanDescData dsm_handle dsmHandle; /* debug only */ int cur_int_pageno; - bool worker_active[10]; +#ifdef USE_ASSERT_CHECKING + bool worker_active[1024]; +#endif } ParallelOScanDescData; typedef ParallelOScanDescData *ParallelOScanDesc; diff --git a/src/btree/scan.c b/src/btree/scan.c index 9eca8a697..5ec93d8b8 100644 --- a/src/btree/scan.c +++ b/src/btree/scan.c @@ -1039,13 +1039,18 @@ init_btree_seq_scan(BTreeSeqScan *scan) * after all workers completed their scans). */ SpinLockAcquire(&poscan->workerStart); +#ifdef USE_ASSERT_CHECKING for (scan->workerNumber = 0; poscan->worker_active[scan->workerNumber] == true; scan->workerNumber++) { } poscan->worker_active[scan->workerNumber] = true; poscan->nworkers = scan->workerNumber + 1; - /* leader */ +#else + scan->workerNumber = poscan->nworkers; + poscan->nworkers++; +#endif + /* Scan leader */ if (scan->workerNumber == 0) { Assert(!(poscan->flags & O_PARALLEL_LEADER_STARTED));