vacuumdb: Add missing PQfinish() calls to vacuum_one_database().
authorNathan Bossart <nathan@postgresql.org>
Tue, 4 Feb 2025 19:26:57 +0000 (13:26 -0600)
committerNathan Bossart <nathan@postgresql.org>
Tue, 4 Feb 2025 19:26:57 +0000 (13:26 -0600)
A few of the version checks in vacuum_one_database() do not call
PQfinish() before exiting.  This precedent was unintentionally
established in commit 00d1e88d36, and while it's probably not too
problematic, it seems better to properly close the connection.

Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/Z6JAwqN1I8ljTuXp%40nathan
Backpatch-through: 13

src/bin/scripts/vacuumdb.c

index c59790cd1230ef8437622333dad8782ea960500f..c475c0f28612012d53c0cccd79d2076613ed9e2e 100644 (file)
@@ -568,20 +568,32 @@ vacuum_one_database(ConnParams *cparams,
    }
 
    if (vacopts->min_xid_age != 0 && PQserverVersion(conn) < 90600)
+   {
+       PQfinish(conn);
        pg_fatal("cannot use the \"%s\" option on server versions older than PostgreSQL %s",
                 "--min-xid-age", "9.6");
+   }
 
    if (vacopts->min_mxid_age != 0 && PQserverVersion(conn) < 90600)
+   {
+       PQfinish(conn);
        pg_fatal("cannot use the \"%s\" option on server versions older than PostgreSQL %s",
                 "--min-mxid-age", "9.6");
+   }
 
    if (vacopts->parallel_workers >= 0 && PQserverVersion(conn) < 130000)
+   {
+       PQfinish(conn);
        pg_fatal("cannot use the \"%s\" option on server versions older than PostgreSQL %s",
                 "--parallel", "13");
+   }
 
    if (vacopts->buffer_usage_limit && PQserverVersion(conn) < 160000)
+   {
+       PQfinish(conn);
        pg_fatal("cannot use the \"%s\" option on server versions older than PostgreSQL %s",
                 "--buffer-usage-limit", "16");
+   }
 
    /* skip_database_stats is used automatically if server supports it */
    vacopts->skip_database_stats = (PQserverVersion(conn) >= 160000);