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

