postgres.git / summary / log / commit / refs
commit a198c26dede50a1fd4c22fb134b53ce8d4f8f5e3
Author: Álvaro Herrera <alvherre@kurilemu.de>
Date: Tue Mar 10 15:00:19 2026 +0000
pg_dumpall: simplify coding of dropDBs()
There's no need for a StringInfo when all you want is a string
being constructed in a single pass.
Author: Álvaro Herrera <alvherre@kurilemu.de>
Reported-by: Ranier Vilela <ranier.vf@gmail.com>
Reviewed-by: Yang Yuanzhuo <1197620467@qq.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
Discussion: https://postgr.es/m/CAEudQAq2wyXZRdsh+wVHcOrungPU+_aQeQU12wbcgrmE0bQovA@mail.gmail.com
src/bin/pg_dump/pg_dumpall.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index b29eaa81938..3d2a1d27aef 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -1833,7 +1833,6 @@ dropDBs(PGconn *conn)
for (i = 0; i < PQntuples(res); i++)
{
char *dbname = PQgetvalue(res, i, 0);
- PQExpBuffer delQry = createPQExpBuffer();
/*
* Skip "postgres" and "template1"; dumpDatabases() will deal with
@@ -1846,15 +1845,14 @@ dropDBs(PGconn *conn)
{
if (archDumpFormat == archNull)
{
- appendPQExpBuffer(delQry, "DROP DATABASE %s%s;\n",
- if_exists ? "IF EXISTS " : "",
- fmtId(dbname));
- fprintf(OPF, "%s", delQry->data);
+ fprintf(OPF, "DROP DATABASE %s%s;\n",
+ if_exists ? "IF EXISTS " : "",
+ fmtId(dbname));
}
else
{
- appendPQExpBuffer(delQry, "DROP DATABASE IF EXISTS %s;\n",
- fmtId(dbname));
+ char *stmt = psprintf("DROP DATABASE IF EXISTS %s;\n",
+ fmtId(dbname));
ArchiveEntry(fout,
nilCatalogId, /* catalog ID */
@@ -1862,10 +1860,9 @@ dropDBs(PGconn *conn)
ARCHIVE_OPTS(.tag = psprintf("DATABASE %s", fmtId(dbname)),
.description = "DROP_GLOBAL",
.section = SECTION_PRE_DATA,
- .createStmt = delQry->data));
+ .createStmt = stmt));
+ pg_free(stmt);
}
-
- destroyPQExpBuffer(delQry);
}
}
[parent: 59bae234352d]