v3-0004-switch-prepare-from-conn-to-serverVersion.patch
text/x-patch
Filename: v3-0004-switch-prepare-from-conn-to-serverVersion.patch
Type: text/x-patch
Part: 3
Message:
Re: vacuumdb: add --dry-run
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 v3-0004
Subject: switch prepare from conn to serverVersion
| File | + | − |
|---|---|---|
| src/bin/scripts/vacuuming.c | 5 | 4 |
From 2c0cf278b8e1c239fe90dcf2320f0c8d5c28646d Mon Sep 17 00:00:00 2001
From: Corey Huinker <corey.huinker@gmail.com>
Date: Wed, 19 Nov 2025 19:36:59 -0500
Subject: [PATCH v3 4/5] switch prepare from conn to serverVersion
---
src/bin/scripts/vacuuming.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/bin/scripts/vacuuming.c b/src/bin/scripts/vacuuming.c
index f52af273d7e..14d843bed10 100644
--- a/src/bin/scripts/vacuuming.c
+++ b/src/bin/scripts/vacuuming.c
@@ -41,7 +41,7 @@ static SimpleStringList *retrieve_objects(PGconn *conn,
SimpleStringList *objects,
bool echo);
static void free_retrieved_objects(SimpleStringList *list);
-static void prepare_vacuum_command(PGconn *conn, PQExpBuffer sql,
+static void prepare_vacuum_command(int serverVersion, PQExpBuffer sql,
vacuumingOptions *vacopts, const char *table);
static void run_vacuum_command(ParallelSlot *free_slot, const char *sql,
bool echo, bool dry_run, const char *table);
@@ -178,6 +178,7 @@ vacuum_one_database(ConnParams *cparams,
SimpleStringList *retobjs = NULL;
bool free_retobjs = false;
int ret = EXIT_SUCCESS;
+ int serverVersion;
const char *stage_commands[] = {
"SET default_statistics_target=1; SET vacuum_cost_delay=0;",
"SET default_statistics_target=10; RESET vacuum_cost_delay;",
@@ -351,6 +352,7 @@ vacuum_one_database(ConnParams *cparams,
* for the first slot. If not in parallel mode, the first slot in the
* array contains the connection.
*/
+ serverVersion = PQserverVersion(conn);
sa = ParallelSlotsSetup(concurrentCons, cparams, progname, echo, initcmd);
ParallelSlotsAdoptConn(sa, conn);
@@ -375,7 +377,7 @@ vacuum_one_database(ConnParams *cparams,
goto finish;
}
- prepare_vacuum_command(free_slot->connection, &sql,
+ prepare_vacuum_command(serverVersion, &sql,
vacopts, tabname);
run_vacuum_command(free_slot, sql.data,
@@ -823,10 +825,9 @@ free_retrieved_objects(SimpleStringList *list)
* depends on the server version involved and it is semicolon-terminated.
*/
static void
-prepare_vacuum_command(PGconn *conn, PQExpBuffer sql,
+prepare_vacuum_command(int serverVersion, PQExpBuffer sql,
vacuumingOptions *vacopts, const char *table)
{
- int serverVersion = PQserverVersion(conn);
const char *paren = " (";
const char *comma = ", ";
const char *sep = paren;
--
2.51.1