v20--v21-diff-for-0001.patch
text/x-patch
Filename: v20--v21-diff-for-0001.patch
Type: text/x-patch
Part: 6
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v20-0001
Subject: fixes for patch 1
| File | + | − |
|---|---|---|
| src/backend/commands/vacuumparallel.c | 4 | 1 |
| src/backend/postmaster/autovacuum.c | 5 | 13 |
| src/backend/utils/misc/postgresql.conf.sample | 1 | 1 |
From cb6f66f944dbb48a31c90823dd23a6a5d6313250 Mon Sep 17 00:00:00 2001
From: Daniil Davidov <d.davydov@postgrespro.ru>
Date: Sat, 7 Feb 2026 00:04:17 +0700
Subject: [PATCH 1/7] fixes for patch 1
---
src/backend/commands/vacuumparallel.c | 5 ++++-
src/backend/postmaster/autovacuum.c | 18 +++++-------------
src/backend/utils/misc/postgresql.conf.sample | 2 +-
3 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/src/backend/commands/vacuumparallel.c b/src/backend/commands/vacuumparallel.c
index 1e35b82aeaf..d3e0c32b7ee 100644
--- a/src/backend/commands/vacuumparallel.c
+++ b/src/backend/commands/vacuumparallel.c
@@ -710,8 +710,11 @@ parallel_vacuum_process_all_indexes(ParallelVacuumState *pvs, int num_index_scan
* Tell autovacuum that we could not launch all the previously
* reserved workers.
*/
- if (AmAutoVacuumWorkerProcess() && pvs->pcxt->nworkers_launched < nworkers)
+ if (AmAutoVacuumWorkerProcess() &&
+ pvs->pcxt->nworkers_launched < nworkers)
+ {
AutoVacuumReleaseParallelWorkers(nworkers - pvs->pcxt->nworkers_launched);
+ }
if (pvs->pcxt->nworkers_launched > 0)
{
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 784c1178d61..f40abe90ed5 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -3526,7 +3526,7 @@ AutoVacuumShmemInit(void)
AutoVacuumShmem->av_launcherpid = 0;
AutoVacuumShmem->av_maxParallelWorkers =
- Min(autovacuum_max_parallel_workers, max_worker_processes);
+ Min(autovacuum_max_parallel_workers, max_parallel_workers);
AutoVacuumShmem->av_freeParallelWorkers =
AutoVacuumShmem->av_maxParallelWorkers;
dclist_init(&AutoVacuumShmem->av_freeWorkers);
@@ -3622,23 +3622,15 @@ adjust_free_parallel_workers(int prev_max_parallel_workers)
LWLockAcquire(AutovacuumLock, LW_EXCLUSIVE);
- nfree_workers =
- autovacuum_max_parallel_workers - prev_max_parallel_workers +
- AutoVacuumShmem->av_freeParallelWorkers;
-
/*
* Cap or increase number of free parallel workers according to the
* parameter change.
*/
- AutoVacuumShmem->av_freeParallelWorkers = Max(nfree_workers, 0);
-
- /*
- * Don't allow number of free workers to become less than zero if the
- * patameter was decreased.
- */
- AutoVacuumShmem->av_freeParallelWorkers =
- Max(AutoVacuumShmem->av_freeParallelWorkers, 0);
+ nfree_workers =
+ autovacuum_max_parallel_workers - prev_max_parallel_workers +
+ AutoVacuumShmem->av_freeParallelWorkers;
+ AutoVacuumShmem->av_freeParallelWorkers = Max(nfree_workers, 0);
AutoVacuumShmem->av_maxParallelWorkers = autovacuum_max_parallel_workers;
LWLockRelease(AutovacuumLock);
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 35c37f21239..e456fd759eb 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -695,7 +695,7 @@
#autovacuum_worker_slots = 16 # autovacuum worker slots to allocate
# (change requires restart)
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
-#autovacuum_max_parallel_workers = 2 # limited by max_worker_processes
+#autovacuum_max_parallel_workers = 2 # limited by max_parallel_workers
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
--
2.43.0