summaryrefslogtreecommitdiff
path: root/src/bin/scripts/vacuumdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/scripts/vacuumdb.c')
-rw-r--r--src/bin/scripts/vacuumdb.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index a6bb135e259..c10b58bf0fc 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -540,6 +540,7 @@ vacuum_all_databases(vacuumingOptions *vacopts,
{
PGconn *conn;
PGresult *result;
+ PQExpBufferData connstr;
int stage;
int i;
@@ -550,6 +551,7 @@ vacuum_all_databases(vacuumingOptions *vacopts,
progname, echo);
PQfinish(conn);
+ initPQExpBuffer(&connstr);
if (analyze_in_stages)
{
/*
@@ -564,10 +566,11 @@ vacuum_all_databases(vacuumingOptions *vacopts,
{
for (i = 0; i < PQntuples(result); i++)
{
- const char *dbname;
+ resetPQExpBuffer(&connstr);
+ appendPQExpBuffer(&connstr, "dbname=");
+ appendConnStrVal(&connstr, PQgetvalue(result, i, 0));
- dbname = PQgetvalue(result, i, 0);
- vacuum_one_database(dbname, vacopts,
+ vacuum_one_database(connstr.data, vacopts,
stage,
NULL,
host, port, username, prompt_password,
@@ -580,10 +583,11 @@ vacuum_all_databases(vacuumingOptions *vacopts,
{
for (i = 0; i < PQntuples(result); i++)
{
- const char *dbname;
+ resetPQExpBuffer(&connstr);
+ appendPQExpBuffer(&connstr, "dbname=");
+ appendConnStrVal(&connstr, PQgetvalue(result, i, 0));
- dbname = PQgetvalue(result, i, 0);
- vacuum_one_database(dbname, vacopts,
+ vacuum_one_database(connstr.data, vacopts,
ANALYZE_NO_STAGE,
NULL,
host, port, username, prompt_password,
@@ -591,6 +595,7 @@ vacuum_all_databases(vacuumingOptions *vacopts,
progname, echo, quiet);
}
}
+ termPQExpBuffer(&connstr);
PQclear(result);
}