diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index cc98ede5394..0763ed85d0c 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -194,6 +194,11 @@ typedef struct LVShared Oid relid; int elevel; + /* + * Buffer access strategy from leader + */ + BufferAccessStrategy bstrategy; + /* * An indication for vacuum workers to perform either index vacuum or * index cleanup. first_time is true only if for_cleanup is true and @@ -3480,6 +3485,7 @@ begin_parallel_vacuum(LVRelState *vacrel, BlockNumber nblocks, MemSet(shared, 0, est_shared); shared->relid = RelationGetRelid(vacrel->rel); shared->elevel = elevel; + shared->bstrategy = vacrel->bstrategy; shared->maintenance_work_mem_worker = (nindexes_mwm > 0) ? maintenance_work_mem / Min(parallel_workers, nindexes_mwm) : @@ -3720,6 +3726,7 @@ parallel_vacuum_main(dsm_segment *seg, shm_toc *toc) vacrel.rel = rel; vacrel.indrels = indrels; vacrel.nindexes = nindexes; + vacrel.bstrategy = lvshared->bstrategy; vacrel.indstats = (IndexBulkDeleteResult **) palloc0(nindexes * sizeof(IndexBulkDeleteResult *));