v29--v30-diff-for-0002.patch
text/x-patch
Filename: v29--v30-diff-for-0002.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 v29
Subject: fixes for 0002
| File | + | − |
|---|---|---|
| src/backend/access/common/reloptions.c | 1 | 1 |
| src/backend/postmaster/autovacuum.c | 5 | 1 |
| src/backend/utils/misc/guc_parameters.dat | 1 | 1 |
| src/include/utils/rel.h | 0 | 7 |
From 029354cf40fea428c20de09ccacc6afe503c73f6 Mon Sep 17 00:00:00 2001
From: Daniil Davidov <d.davydov@postgrespro.ru>
Date: Thu, 19 Mar 2026 21:19:35 +0700
Subject: [PATCH] fixes for 0002
---
src/backend/access/common/reloptions.c | 2 +-
src/backend/postmaster/autovacuum.c | 6 +++++-
src/backend/utils/misc/guc_parameters.dat | 2 +-
src/include/utils/rel.h | 7 -------
4 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 055585c38f3..03e6fae930e 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -238,7 +238,7 @@ static relopt_int intRelOpts[] =
{
{
"autovacuum_parallel_workers",
- "Maximum number of parallel autovacuum workers that can be used for processing this table.",
+ "Overrides value of the autovacuum_max_parallel_workers parameter for this table, if > -1.",
RELOPT_KIND_HEAP,
ShareUpdateExclusiveLock
},
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index ff57d8fca2a..e810e1303db 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -2866,7 +2866,11 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
if (avopts->autovacuum_parallel_workers > 0)
nparallel_workers = avopts->autovacuum_parallel_workers;
else if (avopts->autovacuum_parallel_workers == -1)
- nparallel_workers = 0;
+ {
+ nparallel_workers = autovacuum_max_parallel_workers > 0
+ ? autovacuum_max_parallel_workers
+ : -1; /* disable parallelism if parameter's value is 0 */
+ }
}
tab->at_params.freeze_min_age = freeze_min_age;
diff --git a/src/backend/utils/misc/guc_parameters.dat b/src/backend/utils/misc/guc_parameters.dat
index bc23ddf5201..3d2fd35a004 100644
--- a/src/backend/utils/misc/guc_parameters.dat
+++ b/src/backend/utils/misc/guc_parameters.dat
@@ -155,7 +155,7 @@
},
{ name => 'autovacuum_max_parallel_workers', type => 'int', context => 'PGC_SIGHUP', group => 'VACUUM_AUTOVACUUM',
- short_desc => 'Maximum number of parallel processes per autovacuuming of one table.',
+ short_desc => 'Maximum number of parallel workers that can be used by a single autovacuum worker.',
variable => 'autovacuum_max_parallel_workers',
boot_val => '2',
min => '0',
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index 1981954008e..cd1e92f2302 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -312,14 +312,7 @@ typedef struct AutoVacOpts
{
bool enabled;
- /*
- * Target number of parallel autovacuum workers. 0 by default disables
- * parallel vacuum during autovacuum. -1 means choose the parallel degree
- * based on the number of indexes (the autovacuum_max_parallel_workers
- * parameter will be used as a limit).
- */
int autovacuum_parallel_workers;
-
int vacuum_threshold;
int vacuum_max_threshold;
int vacuum_ins_threshold;
--
2.43.0