summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pg_dump/dumputils.c18
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c12
-rw-r--r--src/bin/pg_dump/pg_dump.c725
-rw-r--r--src/bin/pg_dump/pg_dumpall.c116
-rw-r--r--src/bin/psql/command.c2
-rw-r--r--src/bin/psql/copy.c4
-rw-r--r--src/bin/psql/describe.c520
-rw-r--r--src/bin/psql/tab-complete.c4
-rw-r--r--src/bin/scripts/clusterdb.c6
-rw-r--r--src/bin/scripts/createdb.c4
-rw-r--r--src/bin/scripts/createuser.c32
-rw-r--r--src/bin/scripts/reindexdb.c4
-rw-r--r--src/bin/scripts/vacuumdb.c18
-rw-r--r--src/interfaces/libpq/fe-connect.c22
-rw-r--r--src/test/isolation/isolationtester.c2
15 files changed, 739 insertions, 750 deletions
diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c
index 9c55147c81..d6184e31b5 100644
--- a/src/bin/pg_dump/dumputils.c
+++ b/src/bin/pg_dump/dumputils.c
@@ -168,11 +168,11 @@ fmtQualifiedId(int remoteVersion, const char *schema, const char *id)
{
appendPQExpBuffer(lcl_pqexp, "%s.", fmtId(schema));
}
- appendPQExpBuffer(lcl_pqexp, "%s", fmtId(id));
+ appendPQExpBufferStr(lcl_pqexp, fmtId(id));
id_return = getLocalPQExpBuffer();
- appendPQExpBuffer(id_return, "%s", lcl_pqexp->data);
+ appendPQExpBufferStr(id_return, lcl_pqexp->data);
destroyPQExpBuffer(lcl_pqexp);
return id_return->data;
@@ -625,7 +625,7 @@ buildACLCommands(const char *name, const char *subname,
appendPQExpBuffer(secondsql, "%sGRANT %s ON %s %s TO ",
prefix, privs->data, type, name);
if (grantee->len == 0)
- appendPQExpBuffer(secondsql, "PUBLIC;\n");
+ appendPQExpBufferStr(secondsql, "PUBLIC;\n");
else if (strncmp(grantee->data, "group ",
strlen("group ")) == 0)
appendPQExpBuffer(secondsql, "GROUP %s;\n",
@@ -638,19 +638,19 @@ buildACLCommands(const char *name, const char *subname,
appendPQExpBuffer(secondsql, "%sGRANT %s ON %s %s TO ",
prefix, privswgo->data, type, name);
if (grantee->len == 0)
- appendPQExpBuffer(secondsql, "PUBLIC");
+ appendPQExpBufferStr(secondsql, "PUBLIC");
else if (strncmp(grantee->data, "group ",
strlen("group ")) == 0)
appendPQExpBuffer(secondsql, "GROUP %s",
fmtId(grantee->data + strlen("group ")));
else
- appendPQExpBuffer(secondsql, "%s", fmtId(grantee->data));
- appendPQExpBuffer(secondsql, " WITH GRANT OPTION;\n");
+ appendPQExpBufferStr(secondsql, fmtId(grantee->data));
+ appendPQExpBufferStr(secondsql, " WITH GRANT OPTION;\n");
}
if (grantor->len > 0
&& (!owner || strcmp(owner, grantor->data) != 0))
- appendPQExpBuffer(secondsql, "RESET SESSION AUTHORIZATION;\n");
+ appendPQExpBufferStr(secondsql, "RESET SESSION AUTHORIZATION;\n");
}
}
}
@@ -947,7 +947,7 @@ AddAcl(PQExpBuffer aclbuf, const char *keyword, const char *subname)
{
if (aclbuf->len > 0)
appendPQExpBufferChar(aclbuf, ',');
- appendPQExpBuffer(aclbuf, "%s", keyword);
+ appendPQExpBufferStr(aclbuf, keyword);
if (subname)
appendPQExpBuffer(aclbuf, "(%s)", subname);
}
@@ -1205,7 +1205,7 @@ emitShSecLabels(PGconn *conn, PGresult *res, PQExpBuffer buffer,
" %s IS ",
fmtId(objname));
appendStringLiteralConn(buffer, label, conn);
- appendPQExpBuffer(buffer, ";\n");
+ appendPQExpBufferStr(buffer, ";\n");
}
}
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 1e189fe8ad..63a800938a 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -2619,7 +2619,7 @@ _doSetSessionAuth(ArchiveHandle *AH, const char *user)
{
PQExpBuffer cmd = createPQExpBuffer();
- appendPQExpBuffer(cmd, "SET SESSION AUTHORIZATION ");
+ appendPQExpBufferStr(cmd, "SET SESSION AUTHORIZATION ");
/*
* SQL requires a string literal here. Might as well be correct.
@@ -2627,8 +2627,8 @@ _doSetSessionAuth(ArchiveHandle *AH, const char *user)
if (user && *user)
appendStringLiteralAHX(cmd, user, AH);
else
- appendPQExpBuffer(cmd, "DEFAULT");
- appendPQExpBuffer(cmd, ";");
+ appendPQExpBufferStr(cmd, "DEFAULT");
+ appendPQExpBufferChar(cmd, ';');
if (RestoringToDB(AH))
{
@@ -2798,7 +2798,7 @@ _selectOutputSchema(ArchiveHandle *AH, const char *schemaName)
appendPQExpBuffer(qry, "SET search_path = %s",
fmtId(schemaName));
if (strcmp(schemaName, "pg_catalog") != 0)
- appendPQExpBuffer(qry, ", pg_catalog");
+ appendPQExpBufferStr(qry, ", pg_catalog");
if (RestoringToDB(AH))
{
@@ -2853,7 +2853,7 @@ _selectTablespace(ArchiveHandle *AH, const char *tablespace)
if (strcmp(want, "") == 0)
{
/* We want the tablespace to be the database's default */
- appendPQExpBuffer(qry, "SET default_tablespace = ''");
+ appendPQExpBufferStr(qry, "SET default_tablespace = ''");
}
else
{
@@ -3119,7 +3119,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat
{
PQExpBuffer temp = createPQExpBuffer();
- appendPQExpBuffer(temp, "ALTER ");
+ appendPQExpBufferStr(temp, "ALTER ");
_getObjectDescription(temp, te, AH);
appendPQExpBuffer(temp, " OWNER TO %s;", fmtId(te->owner));
ahprintf(AH, "%s\n\n", temp->data);
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index f81094ee70..a611940690 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -1033,7 +1033,7 @@ setup_connection(Archive *AH, const char *dumpencoding, char *use_role)
{
PQExpBuffer query = createPQExpBuffer();
- appendPQExpBuffer(query, "SET TRANSACTION SNAPSHOT ");
+ appendPQExpBufferStr(query, "SET TRANSACTION SNAPSHOT ");
appendStringLiteralConn(query, AH->sync_snapshot_id, conn);
ExecuteSqlStatement(AH, query->data);
destroyPQExpBuffer(query);
@@ -1127,7 +1127,7 @@ expand_schema_name_patterns(Archive *fout,
for (cell = patterns->head; cell; cell = cell->next)
{
if (cell != patterns->head)
- appendPQExpBuffer(query, "UNION ALL\n");
+ appendPQExpBufferStr(query, "UNION ALL\n");
appendPQExpBuffer(query,
"SELECT oid FROM pg_catalog.pg_namespace n\n");
processSQLNamePattern(GetConnection(fout), query, cell->val, false,
@@ -1171,7 +1171,7 @@ expand_table_name_patterns(Archive *fout,
for (cell = patterns->head; cell; cell = cell->next)
{
if (cell != patterns->head)
- appendPQExpBuffer(query, "UNION ALL\n");
+ appendPQExpBufferStr(query, "UNION ALL\n");
appendPQExpBuffer(query,
"SELECT c.oid"
"\nFROM pg_catalog.pg_class c"
@@ -1920,7 +1920,7 @@ buildMatViewRefreshDependencies(Archive *fout)
query = createPQExpBuffer();
- appendPQExpBuffer(query, "with recursive w as "
+ appendPQExpBufferStr(query, "with recursive w as "
"( "
"select d1.objid, d2.refobjid, c2.relkind as refrelkind "
"from pg_depend d1 "
@@ -2260,33 +2260,33 @@ dumpDatabase(Archive *fout)
fmtId(datname));
if (strlen(encoding) > 0)
{
- appendPQExpBuffer(creaQry, " ENCODING = ");
+ appendPQExpBufferStr(creaQry, " ENCODING = ");
appendStringLiteralAH(creaQry, encoding, fout);
}
if (strlen(collate) > 0)
{
- appendPQExpBuffer(creaQry, " LC_COLLATE = ");
+ appendPQExpBufferStr(creaQry, " LC_COLLATE = ");
appendStringLiteralAH(creaQry, collate, fout);
}
if (strlen(ctype) > 0)
{
- appendPQExpBuffer(creaQry, " LC_CTYPE = ");
+ appendPQExpBufferStr(creaQry, " LC_CTYPE = ");
appendStringLiteralAH(creaQry, ctype, fout);
}
if (strlen(tablespace) > 0 && strcmp(tablespace, "pg_default") != 0)
appendPQExpBuffer(creaQry, " TABLESPACE = %s",
fmtId(tablespace));
- appendPQExpBuffer(creaQry, ";\n");
+ appendPQExpBufferStr(creaQry, ";\n");
if (binary_upgrade)
{
- appendPQExpBuffer(creaQry, "\n-- For binary upgrade, set datfrozenxid.\n");
+ appendPQExpBufferStr(creaQry, "\n-- For binary upgrade, set datfrozenxid.\n");
appendPQExpBuffer(creaQry, "UPDATE pg_catalog.pg_database\n"
"SET datfrozenxid = '%u'\n"
"WHERE datname = ",
frozenxid);
appendStringLiteralAH(creaQry, datname, fout);
- appendPQExpBuffer(creaQry, ";\n");
+ appendPQExpBufferStr(creaQry, ";\n");
}
@@ -2336,7 +2336,7 @@ dumpDatabase(Archive *fout)
i_relfrozenxid = PQfnumber(lo_res, "relfrozenxid");
- appendPQExpBuffer(loOutQry, "\n-- For binary upgrade, set pg_largeobject.relfrozenxid\n");
+ appendPQExpBufferStr(loOutQry, "\n-- For binary upgrade, set pg_largeobject.relfrozenxid\n");
appendPQExpBuffer(loOutQry, "UPDATE pg_catalog.pg_class\n"
"SET relfrozenxid = '%u'\n"
"WHERE oid = %u;\n",
@@ -2368,7 +2368,7 @@ dumpDatabase(Archive *fout)
i_relfrozenxid = PQfnumber(lo_res, "relfrozenxid");
- appendPQExpBuffer(loOutQry, "\n-- For binary upgrade, set pg_largeobject_metadata.relfrozenxid\n");
+ appendPQExpBufferStr(loOutQry, "\n-- For binary upgrade, set pg_largeobject_metadata.relfrozenxid\n");
appendPQExpBuffer(loOutQry, "UPDATE pg_catalog.pg_class\n"
"SET relfrozenxid = '%u'\n"
"WHERE oid = %u;\n",
@@ -2407,7 +2407,7 @@ dumpDatabase(Archive *fout)
*/
appendPQExpBuffer(dbQry, "COMMENT ON DATABASE %s IS ", fmtId(datname));
appendStringLiteralAH(dbQry, comment, fout);
- appendPQExpBuffer(dbQry, ";\n");
+ appendPQExpBufferStr(dbQry, ";\n");
ArchiveEntry(fout, dbCatId, createDumpId(), datname, NULL, NULL,
dba, false, "COMMENT", SECTION_NONE,
@@ -2460,9 +2460,9 @@ dumpEncoding(Archive *AH)
if (g_verbose)
write_msg(NULL, "saving encoding = %s\n", encname);
- appendPQExpBuffer(qry, "SET client_encoding = ");
+ appendPQExpBufferStr(qry, "SET client_encoding = ");
appendStringLiteralAH(qry, encname, AH);
- appendPQExpBuffer(qry, ";\n");
+ appendPQExpBufferStr(qry, ";\n");
ArchiveEntry(AH, nilCatalogId, createDumpId(),
"ENCODING", NULL, NULL, "",
@@ -2530,13 +2530,13 @@ getBlobs(Archive *fout)
" FROM pg_largeobject_metadata",
username_subquery);
else if (fout->remoteVersion >= 70100)
- appendPQExpBuffer(blobQry,
- "SELECT DISTINCT loid, NULL::oid, NULL::oid"
- " FROM pg_largeobject");
+ appendPQExpBufferStr(blobQry,
+ "SELECT DISTINCT loid, NULL::oid, NULL::oid"
+ " FROM pg_largeobject");
else
- appendPQExpBuffer(blobQry,
- "SELECT oid, NULL::oid, NULL::oid"
- " FROM pg_class WHERE relkind = 'l'");
+ appendPQExpBufferStr(blobQry,
+ "SELECT oid, NULL::oid, NULL::oid"
+ " FROM pg_class WHERE relkind = 'l'");
res = ExecuteSqlQuery(fout, blobQry->data, PGRES_TUPLES_OK);
@@ -2723,7 +2723,7 @@ binary_upgrade_set_type_oids_by_type_oid(Archive *fout,
PGresult *upgrade_res;
Oid pg_type_array_oid;
- appendPQExpBuffer(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type oid\n");
+ appendPQExpBufferStr(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type oid\n");
appendPQExpBuffer(upgrade_buffer,
"SELECT binary_upgrade.set_next_pg_type_oid('%u'::pg_catalog.oid);\n\n",
pg_type_oid);
@@ -2741,7 +2741,7 @@ binary_upgrade_set_type_oids_by_type_oid(Archive *fout,
if (OidIsValid(pg_type_array_oid))
{
- appendPQExpBuffer(upgrade_buffer,
+ appendPQExpBufferStr(upgrade_buffer,
"\n-- For binary upgrade, must preserve pg_type array oid\n");
appendPQExpBuffer(upgrade_buffer,
"SELECT binary_upgrade.set_next_array_pg_type_oid('%u'::pg_catalog.oid);\n\n",
@@ -2784,7 +2784,7 @@ binary_upgrade_set_type_oids_by_rel_oid(Archive *fout,
Oid pg_type_toast_oid = atooid(PQgetvalue(upgrade_res, 0,
PQfnumber(upgrade_res, "trel")));
- appendPQExpBuffer(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type toast oid\n");
+ appendPQExpBufferStr(upgrade_buffer, "\n-- For binary upgrade, must preserve pg_type toast oid\n");
appendPQExpBuffer(upgrade_buffer,
"SELECT binary_upgrade.set_next_toast_pg_type_oid('%u'::pg_catalog.oid);\n\n",
pg_type_toast_oid);
@@ -2820,8 +2820,8 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
pg_class_reltoastrelid = atooid(PQgetvalue(upgrade_res, 0, PQfnumber(upgrade_res, "reltoastrelid")));
pg_index_indexrelid = atooid(PQgetvalue(upgrade_res, 0, PQfnumber(upgrade_res, "indexrelid")));
- appendPQExpBuffer(upgrade_buffer,
- "\n-- For binary upgrade, must preserve pg_class oids\n");
+ appendPQExpBufferStr(upgrade_buffer,
+ "\n-- For binary upgrade, must preserve pg_class oids\n");
if (!is_index)
{
@@ -2855,7 +2855,7 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
"SELECT binary_upgrade.set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
pg_class_oid);
- appendPQExpBuffer(upgrade_buffer, "\n");
+ appendPQExpBufferChar(upgrade_buffer, '\n');
PQclear(upgrade_res);
destroyPQExpBuffer(upgrade_query);
@@ -2892,7 +2892,7 @@ binary_upgrade_extension_member(PQExpBuffer upgrade_buffer,
if (extobj == NULL)
exit_horribly(NULL, "could not find parent extension for %s\n", objlabel);
- appendPQExpBuffer(upgrade_buffer,
+ appendPQExpBufferStr(upgrade_buffer,
"\n-- For binary upgrade, handle extension membership the hard way\n");
appendPQExpBuffer(upgrade_buffer, "ALTER EXTENSION %s ADD %s;\n",
fmtId(extobj->name),
@@ -3079,10 +3079,10 @@ getExtensions(Archive *fout, int *numExtensions)
/* Make sure we are in proper schema */
selectSourceSchema(fout, "pg_catalog");
- appendPQExpBuffer(query, "SELECT x.tableoid, x.oid, "
- "x.extname, n.nspname, x.extrelocatable, x.extversion, x.extconfig, x.extcondition "
- "FROM pg_extension x "
- "JOIN pg_namespace n ON n.oid = x.extnamespace");
+ appendPQExpBufferStr(query, "SELECT x.tableoid, x.oid, "
+ "x.extname, n.nspname, x.extrelocatable, x.extversion, x.extconfig, x.extcondition "
+ "FROM pg_extension x "
+ "JOIN pg_namespace n ON n.oid = x.extnamespace");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -3707,19 +3707,19 @@ getOpclasses(Archive *fout, int *numOpclasses)
}
else if (fout->remoteVersion >= 70100)
{
- appendPQExpBuffer(query, "SELECT tableoid, oid, opcname, "
- "0::oid AS opcnamespace, "
- "''::name AS rolname "
- "FROM pg_opclass");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, opcname, "
+ "0::oid AS opcnamespace, "
+ "''::name AS rolname "
+ "FROM pg_opclass");
}
else
{
- appendPQExpBuffer(query, "SELECT "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_opclass') AS tableoid, "
- "oid, opcname, "
- "0::oid AS opcnamespace, "
- "''::name AS rolname "
- "FROM pg_opclass");
+ appendPQExpBufferStr(query, "SELECT "
+ "(SELECT oid FROM pg_class WHERE relname = 'pg_opclass') AS tableoid, "
+ "oid, opcname, "
+ "0::oid AS opcnamespace, "
+ "''::name AS rolname "
+ "FROM pg_opclass");
}
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -3902,13 +3902,13 @@ getAggregates(Archive *fout, int *numAggs)
"WHERE nspname = 'pg_catalog')",
username_subquery);
if (binary_upgrade && fout->remoteVersion >= 90100)
- appendPQExpBuffer(query,
- " OR EXISTS(SELECT 1 FROM pg_depend WHERE "
- "classid = 'pg_proc'::regclass AND "
- "objid = p.oid AND "
- "refclassid = 'pg_extension'::regclass AND "
- "deptype = 'e')");
- appendPQExpBuffer(query, ")");
+ appendPQExpBufferStr(query,
+ " OR EXISTS(SELECT 1 FROM pg_depend WHERE "
+ "classid = 'pg_proc'::regclass AND "
+ "objid = p.oid AND "
+ "refclassid = 'pg_extension'::regclass AND "
+ "deptype = 'e')");
+ appendPQExpBufferChar(query, ')');
}
else if (fout->remoteVersion >= 80200)
{
@@ -4094,18 +4094,18 @@ getFuncs(Archive *fout, int *numFuncs)
"WHERE nspname = 'pg_catalog')",
username_subquery);
if (fout->remoteVersion >= 90200)
- appendPQExpBuffer(query,
- "\n AND NOT EXISTS (SELECT 1 FROM pg_depend "
- "WHERE classid = 'pg_proc'::regclass AND "
- "objid = p.oid AND deptype = 'i')");
+ appendPQExpBufferStr(query,
+ "\n AND NOT EXISTS (SELECT 1 FROM pg_depend "
+ "WHERE classid = 'pg_proc'::regclass AND "
+ "objid = p.oid AND deptype = 'i')");
if (binary_upgrade && fout->remoteVersion >= 90100)
- appendPQExpBuffer(query,
- "\n OR EXISTS(SELECT 1 FROM pg_depend WHERE "
- "classid = 'pg_proc'::regclass AND "
- "objid = p.oid AND "
- "refclassid = 'pg_extension'::regclass AND "
- "deptype = 'e')");
- appendPQExpBuffer(query, ")");
+ appendPQExpBufferStr(query,
+ "\n OR EXISTS(SELECT 1 FROM pg_depend WHERE "
+ "classid = 'pg_proc'::regclass AND "
+ "objid = p.oid AND "
+ "refclassid = 'pg_extension'::regclass AND "
+ "deptype = 'e')");
+ appendPQExpBufferChar(query, ')');
}
else if (fout->remoteVersion >= 70300)
{
@@ -4721,7 +4721,7 @@ getTables(Archive *fout, int *numTables)
* applied to other things too.
*/
resetPQExpBuffer(query);
- appendPQExpBuffer(query, "SET statement_timeout = ");
+ appendPQExpBufferStr(query, "SET statement_timeout = ");
appendStringLiteralConn(query, lockWaitTimeout, GetConnection(fout));
ExecuteSqlStatement(fout, query->data);
}
@@ -4883,7 +4883,7 @@ getInherits(Archive *fout, int *numInherits)
/* find all the inheritance information */
- appendPQExpBuffer(query, "SELECT inhrelid, inhparent FROM pg_inherits");
+ appendPQExpBufferStr(query, "SELECT inhrelid, inhparent FROM pg_inherits");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -5517,31 +5517,31 @@ getRules(Archive *fout, int *numRules)
if (fout->remoteVersion >= 80300)
{
- appendPQExpBuffer(query, "SELECT "
- "tableoid, oid, rulename, "
- "ev_class AS ruletable, ev_type, is_instead, "
- "ev_enabled "
- "FROM pg_rewrite "
- "ORDER BY oid");
+ appendPQExpBufferStr(query, "SELECT "
+ "tableoid, oid, rulename, "
+ "ev_class AS ruletable, ev_type, is_instead, "
+ "ev_enabled "
+ "FROM pg_rewrite "
+ "ORDER BY oid");
}
else if (fout->remoteVersion >= 70100)
{
- appendPQExpBuffer(query, "SELECT "
- "tableoid, oid, rulename, "
- "ev_class AS ruletable, ev_type, is_instead, "
- "'O'::char AS ev_enabled "
- "FROM pg_rewrite "
- "ORDER BY oid");
+ appendPQExpBufferStr(query, "SELECT "
+ "tableoid, oid, rulename, "
+ "ev_class AS ruletable, ev_type, is_instead, "
+ "'O'::char AS ev_enabled "
+ "FROM pg_rewrite "
+ "ORDER BY oid");
}
else
{
- appendPQExpBuffer(query, "SELECT "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_rewrite') AS tableoid, "
- "oid, rulename, "
- "ev_class AS ruletable, ev_type, is_instead, "
- "'O'::char AS ev_enabled "
- "FROM pg_rewrite "
- "ORDER BY oid");
+ appendPQExpBufferStr(query, "SELECT "
+ "(SELECT oid FROM pg_class WHERE relname = 'pg_rewrite') AS tableoid, "
+ "oid, rulename, "
+ "ev_class AS ruletable, ev_type, is_instead, "
+ "'O'::char AS ev_enabled "
+ "FROM pg_rewrite "
+ "ORDER BY oid");
}
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -6010,17 +6010,17 @@ getProcLangs(Archive *fout, int *numProcLangs)
else if (fout->remoteVersion >= 70100)
{
/* No clear notion of an owner at all before 7.4 ... */
- appendPQExpBuffer(query, "SELECT tableoid, oid, * FROM pg_language "
- "WHERE lanispl "
- "ORDER BY oid");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, * FROM pg_language "
+ "WHERE lanispl "
+ "ORDER BY oid");
}
else
{
- appendPQExpBuffer(query, "SELECT "
- "(SELECT oid FROM pg_class WHERE relname = 'pg_language') AS tableoid, "
- "oid, * FROM pg_language "
- "WHERE lanispl "
- "ORDER BY oid");
+ appendPQExpBufferStr(query, "SELECT "
+ "(SELECT oid FROM pg_class WHERE relname = 'pg_language') AS tableoid, "
+ "oid, * FROM pg_language "
+ "WHERE lanispl "
+ "ORDER BY oid");
}
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -6118,29 +6118,29 @@ getCasts(Archive *fout, int *numCasts)
if (fout->remoteVersion >= 80400)
{
- appendPQExpBuffer(query, "SELECT tableoid, oid, "
- "castsource, casttarget, castfunc, castcontext, "
- "castmethod "
- "FROM pg_cast ORDER BY 3,4");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, "
+ "castsource, casttarget, castfunc, castcontext, "
+ "castmethod "
+ "FROM pg_cast ORDER BY 3,4");
}
else if (fout->remoteVersion >= 70300)
{
- appendPQExpBuffer(query, "SELECT tableoid, oid, "
- "castsource, casttarget, castfunc, castcontext, "
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, "
+ "castsource, casttarget, castfunc, castcontext, "
"CASE WHEN castfunc = 0 THEN 'b' ELSE 'f' END AS castmethod "
- "FROM pg_cast ORDER BY 3,4");
+ "FROM pg_cast ORDER BY 3,4");
}
else
{
- appendPQExpBuffer(query, "SELECT 0 AS tableoid, p.oid, "
- "t1.oid AS castsource, t2.oid AS casttarget, "
- "p.oid AS castfunc, 'e' AS castcontext, "
- "'f' AS castmethod "
- "FROM pg_type t1, pg_type t2, pg_proc p "
- "WHERE p.pronargs = 1 AND "
- "p.proargtypes[0] = t1.oid AND "
- "p.prorettype = t2.oid AND p.proname = t2.typname "
- "ORDER BY 3,4");
+ appendPQExpBufferStr(query, "SELECT 0 AS tableoid, p.oid, "
+ "t1.oid AS castsource, t2.oid AS casttarget, "
+ "p.oid AS castfunc, 'e' AS castcontext, "
+ "'f' AS castmethod "
+ "FROM pg_type t1, pg_type t2, pg_proc p "
+ "WHERE p.pronargs = 1 AND "
+ "p.proargtypes[0] = t1.oid AND "
+ "p.prorettype = t2.oid AND p.proname = t2.typname "
+ "ORDER BY 3,4");
}
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -6840,10 +6840,10 @@ getTSParsers(Archive *fout, int *numTSParsers)
/* Make sure we are in proper schema */
selectSourceSchema(fout, "pg_catalog");
- appendPQExpBuffer(query, "SELECT tableoid, oid, prsname, prsnamespace, "
- "prsstart::oid, prstoken::oid, "
- "prsend::oid, prsheadline::oid, prslextype::oid "
- "FROM pg_ts_parser");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, prsname, prsnamespace, "
+ "prsstart::oid, prstoken::oid, "
+ "prsend::oid, prsheadline::oid, prslextype::oid "
+ "FROM pg_ts_parser");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -7009,9 +7009,9 @@ getTSTemplates(Archive *fout, int *numTSTemplates)
/* Make sure we are in proper schema */
selectSourceSchema(fout, "pg_catalog");
- appendPQExpBuffer(query, "SELECT tableoid, oid, tmplname, "
- "tmplnamespace, tmplinit::oid, tmpllexize::oid "
- "FROM pg_ts_template");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, tmplname, "
+ "tmplnamespace, tmplinit::oid, tmpllexize::oid "
+ "FROM pg_ts_template");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -7471,7 +7471,7 @@ dumpComment(Archive *fout, const char *target,
appendPQExpBuffer(query, "COMMENT ON %s IS ", target);
appendStringLiteralAH(query, comments->descr, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
/*
* We mark comments as SECTION_NONE because they really belong in the
@@ -7535,7 +7535,7 @@ dumpTableComment(Archive *fout, TableInfo *tbinfo,
resetPQExpBuffer(query);
appendPQExpBuffer(query, "COMMENT ON %s IS ", target->data);
appendStringLiteralAH(query, descr, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
ArchiveEntry(fout, nilCatalogId, createDumpId(),
target->data,
@@ -7551,13 +7551,12 @@ dumpTableComment(Archive *fout, TableInfo *tbinfo,
resetPQExpBuffer(target);
appendPQExpBuffer(target, "COLUMN %s.",
fmtId(tbinfo->dobj.name));
- appendPQExpBuffer(target, "%s",
- fmtId(tbinfo->attnames[objsubid - 1]));
+ appendPQExpBufferStr(target, fmtId(tbinfo->attnames[objsubid - 1]));
resetPQExpBuffer(query);
appendPQExpBuffer(query, "COMMENT ON %s IS ", target->data);
appendStringLiteralAH(query, descr, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
ArchiveEntry(fout, nilCatalogId, createDumpId(),
target->data,
@@ -7698,22 +7697,22 @@ collectComments(Archive *fout, CommentItem **items)
if (fout->remoteVersion >= 70300)
{
- appendPQExpBuffer(query, "SELECT description, classoid, objoid, objsubid "
- "FROM pg_catalog.pg_description "
- "ORDER BY classoid, objoid, objsubid");
+ appendPQExpBufferStr(query, "SELECT description, classoid, objoid, objsubid "
+ "FROM pg_catalog.pg_description "
+ "ORDER BY classoid, objoid, objsubid");
}
else if (fout->remoteVersion >= 70200)
{
- appendPQExpBuffer(query, "SELECT description, classoid, objoid, objsubid "
- "FROM pg_description "
- "ORDER BY classoid, objoid, objsubid");
+ appendPQExpBufferStr(query, "SELECT description, classoid, objoid, objsubid "
+ "FROM pg_description "
+ "ORDER BY classoid, objoid, objsubid");
}
else
{
/* Note: this will fail to find attribute comments in pre-7.2... */
- appendPQExpBuffer(query, "SELECT description, 0 AS classoid, objoid, 0 AS objsubid "
- "FROM pg_description "
- "ORDER BY objoid");
+ appendPQExpBufferStr(query, "SELECT description, 0 AS classoid, objoid, 0 AS objsubid "
+ "FROM pg_description "
+ "ORDER BY objoid");
}
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -7976,7 +7975,7 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo)
int i;
int n;
- appendPQExpBuffer(q, "-- For binary upgrade, create an empty extension and insert objects into it\n");
+ appendPQExpBufferStr(q, "-- For binary upgrade, create an empty extension and insert objects into it\n");
/*
* We unconditionally create the extension, so we must drop it if it
@@ -7987,15 +7986,15 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo)
*/
appendPQExpBuffer(q, "DROP EXTENSION IF EXISTS %s;\n", qextname);
- appendPQExpBuffer(q,
+ appendPQExpBufferStr(q,
"SELECT binary_upgrade.create_empty_extension(");
appendStringLiteralAH(q, extinfo->dobj.name, fout);
- appendPQExpBuffer(q, ", ");
+ appendPQExpBufferStr(q, ", ");
appendStringLiteralAH(q, extinfo->namespace, fout);
- appendPQExpBuffer(q, ", ");
+ appendPQExpBufferStr(q, ", ");
appendPQExpBuffer(q, "%s, ", extinfo->relocatable ? "true" : "false");
appendStringLiteralAH(q, extinfo->extversion, fout);
- appendPQExpBuffer(q, ", ");
+ appendPQExpBufferStr(q, ", ");
/*
* Note that we're pushing extconfig (an OID array) back into
@@ -8005,14 +8004,14 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo)
if (strlen(extinfo->extconfig) > 2)
appendStringLiteralAH(q, extinfo->extconfig, fout);
else
- appendPQExpBuffer(q, "NULL");
- appendPQExpBuffer(q, ", ");
+ appendPQExpBufferStr(q, "NULL");
+ appendPQExpBufferStr(q, ", ");
if (strlen(extinfo->extcondition) > 2)
appendStringLiteralAH(q, extinfo->extcondition, fout);
else
- appendPQExpBuffer(q, "NULL");
- appendPQExpBuffer(q, ", ");
- appendPQExpBuffer(q, "ARRAY[");
+ appendPQExpBufferStr(q, "NULL");
+ appendPQExpBufferStr(q, ", ");
+ appendPQExpBufferStr(q, "ARRAY[");
n = 0;
for (i = 0; i < extinfo->dobj.nDeps; i++)
{
@@ -8022,12 +8021,12 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo)
if (extobj && extobj->objType == DO_EXTENSION)
{
if (n++ > 0)
- appendPQExpBuffer(q, ",");
+ appendPQExpBufferChar(q, ',');
appendStringLiteralAH(q, extobj->name, fout);
}
}
- appendPQExpBuffer(q, "]::pg_catalog.text[]");
- appendPQExpBuffer(q, ");\n");
+ appendPQExpBufferStr(q, "]::pg_catalog.text[]");
+ appendPQExpBufferStr(q, ");\n");
}
appendPQExpBuffer(labelq, "EXTENSION %s", qextname);
@@ -8147,13 +8146,13 @@ dumpEnumType(Archive *fout, TypeInfo *tyinfo)
{
label = PQgetvalue(res, i, PQfnumber(res, "enumlabel"));
if (i > 0)
- appendPQExpBuffer(q, ",");
- appendPQExpBuffer(q, "\n ");
+ appendPQExpBufferChar(q, ',');
+ appendPQExpBufferStr(q, "\n ");
appendStringLiteralAH(q, label, fout);
}
}
- appendPQExpBuffer(q, "\n);\n");
+ appendPQExpBufferStr(q, "\n);\n");
if (binary_upgrade)
{
@@ -8164,7 +8163,7 @@ dumpEnumType(Archive *fout, TypeInfo *tyinfo)
label = PQgetvalue(res, i, PQfnumber(res, "enumlabel"));
if (i == 0)
- appendPQExpBuffer(q, "\n-- For binary upgrade, must preserve pg_enum oids\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, must preserve pg_enum oids\n");
appendPQExpBuffer(q,
"SELECT binary_upgrade.set_next_pg_enum_oid('%u'::pg_catalog.oid);\n",
enum_oid);
@@ -8173,7 +8172,7 @@ dumpEnumType(Archive *fout, TypeInfo *tyinfo)
appendPQExpBuffer(q, "%s ADD VALUE ",
qtypname);
appendStringLiteralAH(q, label, fout);
- appendPQExpBuffer(q, ";\n\n");
+ appendPQExpBufferStr(q, ";\n\n");
}
}
@@ -8282,7 +8281,7 @@ dumpRangeType(Archive *fout, TypeInfo *tyinfo)
/* always schema-qualify, don't try to be smart */
appendPQExpBuffer(q, ",\n subtype_opclass = %s.",
fmtId(nspname));
- appendPQExpBuffer(q, "%s", fmtId(opcname));
+ appendPQExpBufferStr(q, fmtId(opcname));
}
collationOid = atooid(PQgetvalue(res, 0, PQfnumber(res, "collation")));
@@ -8295,8 +8294,7 @@ dumpRangeType(Archive *fout, TypeInfo *tyinfo)
/* always schema-qualify, don't try to be smart */
appendPQExpBuffer(q, ",\n collation = %s.",
fmtId(coll->dobj.namespace->dobj.name));
- appendPQExpBuffer(q, "%s",
- fmtId(coll->dobj.name));
+ appendPQExpBufferStr(q, fmtId(coll->dobj.name));
}
}
@@ -8308,7 +8306,7 @@ dumpRangeType(Archive *fout, TypeInfo *tyinfo)
if (strcmp(procname, "-") != 0)
appendPQExpBuffer(q, ",\n subtype_diff = %s", procname);
- appendPQExpBuffer(q, "\n);\n");
+ appendPQExpBufferStr(q, "\n);\n");
appendPQExpBuffer(labelq, "TYPE %s", qtypname);
@@ -8640,11 +8638,11 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
}
if (strcmp(typcollatable, "t") == 0)
- appendPQExpBuffer(q, ",\n COLLATABLE = true");
+ appendPQExpBufferStr(q, ",\n COLLATABLE = true");
if (typdefault != NULL)
{
- appendPQExpBuffer(q, ",\n DEFAULT = ");
+ appendPQExpBufferStr(q, ",\n DEFAULT = ");
if (typdefault_is_literal)
appendStringLiteralAH(q, typdefault, fout);
else
@@ -8664,41 +8662,41 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
if (strcmp(typcategory, "U") != 0)
{
- appendPQExpBuffer(q, ",\n CATEGORY = ");
+ appendPQExpBufferStr(q, ",\n CATEGORY = ");
appendStringLiteralAH(q, typcategory, fout);
}
if (strcmp(typispreferred, "t") == 0)
- appendPQExpBuffer(q, ",\n PREFERRED = true");
+ appendPQExpBufferStr(q, ",\n PREFERRED = true");
if (typdelim && strcmp(typdelim, ",") != 0)
{
- appendPQExpBuffer(q, ",\n DELIMITER = ");
+ appendPQExpBufferStr(q, ",\n DELIMITER = ");
appendStringLiteralAH(q, typdelim, fout);
}
if (strcmp(typalign, "c") == 0)
- appendPQExpBuffer(q, ",\n ALIGNMENT = char");
+ appendPQExpBufferStr(q, ",\n ALIGNMENT = char");
else if (strcmp(typalign, "s") == 0)
- appendPQExpBuffer(q, ",\n ALIGNMENT = int2");
+ appendPQExpBufferStr(q, ",\n ALIGNMENT = int2");
else if (strcmp(typalign, "i") == 0)
- appendPQExpBuffer(q, ",\n ALIGNMENT = int4");
+ appendPQExpBufferStr(q, ",\n ALIGNMENT = int4");
else if (strcmp(typalign, "d") == 0)
- appendPQExpBuffer(q, ",\n ALIGNMENT = double");
+ appendPQExpBufferStr(q, ",\n ALIGNMENT = double");
if (strcmp(typstorage, "p") == 0)
- appendPQExpBuffer(q, ",\n STORAGE = plain");
+ appendPQExpBufferStr(q, ",\n STORAGE = plain");
else if (strcmp(typstorage, "e") == 0)
- appendPQExpBuffer(q, ",\n STORAGE = external");
+ appendPQExpBufferStr(q, ",\n STORAGE = external");
else if (strcmp(typstorage, "x") == 0)
- appendPQExpBuffer(q, ",\n STORAGE = extended");
+ appendPQExpBufferStr(q, ",\n STORAGE = extended");
else if (strcmp(typstorage, "m") == 0)
- appendPQExpBuffer(q, ",\n STORAGE = main");
+ appendPQExpBufferStr(q, ",\n STORAGE = main");
if (strcmp(typbyval, "t") == 0)
- appendPQExpBuffer(q, ",\n PASSEDBYVALUE");
+ appendPQExpBufferStr(q, ",\n PASSEDBYVALUE");
- appendPQExpBuffer(q, "\n);\n");
+ appendPQExpBufferStr(q, "\n);\n");
appendPQExpBuffer(labelq, "TYPE %s", qtypname);
@@ -8822,17 +8820,16 @@ dumpDomain(Archive *fout, TypeInfo *tyinfo)
/* always schema-qualify, don't try to be smart */
appendPQExpBuffer(q, " COLLATE %s.",
fmtId(coll->dobj.namespace->dobj.name));
- appendPQExpBuffer(q, "%s",
- fmtId(coll->dobj.name));
+ appendPQExpBufferStr(q, fmtId(coll->dobj.name));
}
}
if (typnotnull[0] == 't')
- appendPQExpBuffer(q, " NOT NULL");
+ appendPQExpBufferStr(q, " NOT NULL");
if (typdefault != NULL)
{
- appendPQExpBuffer(q, " DEFAULT ");
+ appendPQExpBufferStr(q, " DEFAULT ");
if (typdefault_is_literal)
appendStringLiteralAH(q, typdefault, fout);
else
@@ -8853,7 +8850,7 @@ dumpDomain(Archive *fout, TypeInfo *tyinfo)
fmtId(domcheck->dobj.name), domcheck->condef);
}
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
/*
* DROP must be fully qualified in case same name appears in pg_catalog
@@ -9016,8 +9013,8 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
/* Format properly if not first attr */
if (actual_atts++ > 0)
- appendPQExpBuffer(q, ",");
- appendPQExpBuffer(q, "\n\t");
+ appendPQExpBufferChar(q, ',');
+ appendPQExpBufferStr(q, "\n\t");
if (!attisdropped)
{
@@ -9034,8 +9031,7 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
/* always schema-qualify, don't try to be smart */
appendPQExpBuffer(q, " COLLATE %s.",
fmtId(coll->dobj.namespace->dobj.name));
- appendPQExpBuffer(q, "%s",
- fmtId(coll->dobj.name));
+ appendPQExpBufferStr(q, fmtId(coll->dobj.name));
}
}
}
@@ -9050,16 +9046,16 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
appendPQExpBuffer(q, "%s INTEGER /* dummy */", fmtId(attname));
/* stash separately for insertion after the CREATE TYPE */
- appendPQExpBuffer(dropped,
+ appendPQExpBufferStr(dropped,
"\n-- For binary upgrade, recreate dropped column.\n");
appendPQExpBuffer(dropped, "UPDATE pg_catalog.pg_attribute\n"
"SET attlen = %s, "
"attalign = '%s', attbyval = false\n"
"WHERE attname = ", attlen, attalign);
appendStringLiteralAH(dropped, attname, fout);
- appendPQExpBuffer(dropped, "\n AND attrelid = ");
+ appendPQExpBufferStr(dropped, "\n AND attrelid = ");
appendStringLiteralAH(dropped, qtypname, fout);
- appendPQExpBuffer(dropped, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(dropped, "::pg_catalog.regclass;\n");
appendPQExpBuffer(dropped, "ALTER TYPE %s ",
qtypname);
@@ -9067,7 +9063,7 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
fmtId(attname));
}
}
- appendPQExpBuffer(q, "\n);\n");
+ appendPQExpBufferStr(q, "\n);\n");
appendPQExpBufferStr(q, dropped->data);
/*
@@ -9200,13 +9196,12 @@ dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo)
resetPQExpBuffer(target);
appendPQExpBuffer(target, "COLUMN %s.",
fmtId(tyinfo->dobj.name));
- appendPQExpBuffer(target, "%s",
- fmtId(attname));
+ appendPQExpBufferStr(target, fmtId(attname));
resetPQExpBuffer(query);
appendPQExpBuffer(query, "COMMENT ON %s IS ", target->data);
appendStringLiteralAH(query, descr, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
ArchiveEntry(fout, nilCatalogId, createDumpId(),
target->data,
@@ -9396,23 +9391,21 @@ dumpProcLang(Archive *fout, ProcLangInfo *plang)
fmtId(funcInfo->dobj.name));
if (OidIsValid(plang->laninline))
{
- appendPQExpBuffer(defqry, " INLINE ");
+ appendPQExpBufferStr(defqry, " INLINE ");
/* Cope with possibility that inline is in different schema */
if (inlineInfo->dobj.namespace != funcInfo->dobj.namespace)
appendPQExpBuffer(defqry, "%s.",
fmtId(inlineInfo->dobj.namespace->dobj.name));
- appendPQExpBuffer(defqry, "%s",
- fmtId(inlineInfo->dobj.name));
+ appendPQExpBufferStr(defqry, fmtId(inlineInfo->dobj.name));
}
if (OidIsValid(plang->lanvalidator))
{
- appendPQExpBuffer(defqry, " VALIDATOR ");
+ appendPQExpBufferStr(defqry, " VALIDATOR ");
/* Cope with possibility that validator is in different schema */
if (validatorInfo->dobj.namespace != funcInfo->dobj.namespace)
appendPQExpBuffer(defqry, "%s.",
fmtId(validatorInfo->dobj.namespace->dobj.name));
- appendPQExpBuffer(defqry, "%s",
- fmtId(validatorInfo->dobj.name));
+ appendPQExpBufferStr(defqry, fmtId(validatorInfo->dobj.name));
}
}
else
@@ -9429,7 +9422,7 @@ dumpProcLang(Archive *fout, ProcLangInfo *plang)
appendPQExpBuffer(defqry, "CREATE OR REPLACE PROCEDURAL LANGUAGE %s",
qlanname);
}
- appendPQExpBuffer(defqry, ";\n");
+ appendPQExpBufferStr(defqry, ";\n");
appendPQExpBuffer(labelq, "LANGUAGE %s", qlanname);
@@ -9478,9 +9471,9 @@ format_function_arguments(FuncInfo *finfo, char *funcargs, bool is_agg)
PQExpBufferData fn;
initPQExpBuffer(&fn);
- appendPQExpBuffer(&fn, "%s", fmtId(finfo->dobj.name));
+ appendPQExpBufferStr(&fn, fmtId(finfo->dobj.name));
if (is_agg && finfo->nargs == 0)
- appendPQExpBuffer(&fn, "(*)");
+ appendPQExpBufferStr(&fn, "(*)");
else
appendPQExpBuffer(&fn, "(%s)", funcargs);
return fn.data;
@@ -9553,7 +9546,7 @@ format_function_arguments_old(Archive *fout,
typname);
free(typname);
}
- appendPQExpBuffer(&fn, ")");
+ appendPQExpBufferChar(&fn, ')');
return fn.data;
}
@@ -9582,15 +9575,15 @@ format_function_signature(Archive *fout, FuncInfo *finfo, bool honor_quotes)
{
char *typname;
+ if (j > 0)
+ appendPQExpBufferStr(&fn, ", ");
+
typname = getFormattedTypeName(fout, finfo->argtypes[j],
zeroAsOpaque);
-
- appendPQExpBuffer(&fn, "%s%s",
- (j > 0) ? ", " : "",
- typname);
+ appendPQExpBufferStr(&fn, typname);
free(typname);
}
- appendPQExpBuffer(&fn, ")");
+ appendPQExpBufferChar(&fn, ')');
return fn.data;
}
@@ -9822,11 +9815,11 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
*/
if (probin[0] != '\0' && strcmp(probin, "-") != 0)
{
- appendPQExpBuffer(asPart, "AS ");
+ appendPQExpBufferStr(asPart, "AS ");
appendStringLiteralAH(asPart, probin, fout);
if (strcmp(prosrc, "-") != 0)
{
- appendPQExpBuffer(asPart, ", ");
+ appendPQExpBufferStr(asPart, ", ");
/*
* where we have bin, use dollar quoting if allowed and src
@@ -9843,7 +9836,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
{
if (strcmp(prosrc, "-") != 0)
{
- appendPQExpBuffer(asPart, "AS ");
+ appendPQExpBufferStr(asPart, "AS ");
/* with no bin, dollar quote src unconditionally if allowed */
if (disable_dollar_quoting)
appendStringLiteralAH(asPart, prosrc, fout);
@@ -9950,27 +9943,27 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
appendPQExpBuffer(q, "\n LANGUAGE %s", fmtId(lanname));
if (proiswindow[0] == 't')
- appendPQExpBuffer(q, " WINDOW");
+ appendPQExpBufferStr(q, " WINDOW");
if (provolatile[0] != PROVOLATILE_VOLATILE)
{
if (provolatile[0] == PROVOLATILE_IMMUTABLE)
- appendPQExpBuffer(q, " IMMUTABLE");
+ appendPQExpBufferStr(q, " IMMUTABLE");
else if (provolatile[0] == PROVOLATILE_STABLE)
- appendPQExpBuffer(q, " STABLE");
+ appendPQExpBufferStr(q, " STABLE");
else if (provolatile[0] != PROVOLATILE_VOLATILE)
exit_horribly(NULL, "unrecognized provolatile value for function \"%s\"\n",
finfo->dobj.name);
}
if (proisstrict[0] == 't')
- appendPQExpBuffer(q, " STRICT");
+ appendPQExpBufferStr(q, " STRICT");
if (prosecdef[0] == 't')
- appendPQExpBuffer(q, " SECURITY DEFINER");
+ appendPQExpBufferStr(q, " SECURITY DEFINER");
if (proleakproof[0] == 't')
- appendPQExpBuffer(q, " LEAKPROOF");
+ appendPQExpBufferStr(q, " LEAKPROOF");
/*
* COST and ROWS are emitted only if present and not default, so as not to
@@ -10014,7 +10007,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
*/
if (pg_strcasecmp(configitem, "DateStyle") == 0
|| pg_strcasecmp(configitem, "search_path") == 0)
- appendPQExpBuffer(q, "%s", pos);
+ appendPQExpBufferStr(q, pos);
else
appendStringLiteralAH(q, pos, fout);
}
@@ -10159,10 +10152,10 @@ dumpCast(Archive *fout, CastInfo *cast)
switch (cast->castmethod)
{
case COERCION_METHOD_BINARY:
- appendPQExpBuffer(defqry, "WITHOUT FUNCTION");
+ appendPQExpBufferStr(defqry, "WITHOUT FUNCTION");
break;
case COERCION_METHOD_INOUT:
- appendPQExpBuffer(defqry, "WITH INOUT");
+ appendPQExpBufferStr(defqry, "WITH INOUT");
break;
case COERCION_METHOD_FUNCTION:
if (funcInfo)
@@ -10186,10 +10179,10 @@ dumpCast(Archive *fout, CastInfo *cast)
}
if (cast->castcontext == 'a')
- appendPQExpBuffer(defqry, " AS ASSIGNMENT");
+ appendPQExpBufferStr(defqry, " AS ASSIGNMENT");
else if (cast->castcontext == 'i')
- appendPQExpBuffer(defqry, " AS IMPLICIT");
- appendPQExpBuffer(defqry, ";\n");
+ appendPQExpBufferStr(defqry, " AS IMPLICIT");
+ appendPQExpBufferStr(defqry, ";\n");
appendPQExpBuffer(labelq, "CAST (%s AS %s)",
getFormattedTypeName(fout, cast->castsource, zeroAsNone),
@@ -10375,10 +10368,10 @@ dumpOpr(Archive *fout, OprInfo *oprinfo)
else
name = fmtId(oprleft);
appendPQExpBuffer(details, ",\n LEFTARG = %s", name);
- appendPQExpBuffer(oprid, "%s", name);
+ appendPQExpBufferStr(oprid, name);
}
else
- appendPQExpBuffer(oprid, "NONE");
+ appendPQExpBufferStr(oprid, "NONE");
if (strcmp(oprkind, "l") == 0 ||
strcmp(oprkind, "b") == 0)
@@ -10391,7 +10384,7 @@ dumpOpr(Archive *fout, OprInfo *oprinfo)
appendPQExpBuffer(oprid, ", %s)", name);
}
else
- appendPQExpBuffer(oprid, ", NONE)");
+ appendPQExpBufferStr(oprid, ", NONE)");
name = convertOperatorReference(fout, oprcom);
if (name)
@@ -10402,10 +10395,10 @@ dumpOpr(Archive *fout, OprInfo *oprinfo)
appendPQExpBuffer(details, ",\n NEGATOR = %s", name);
if (strcmp(oprcanmerge, "t") == 0)
- appendPQExpBuffer(details, ",\n MERGES");
+ appendPQExpBufferStr(details, ",\n MERGES");
if (strcmp(oprcanhash, "t") == 0)
- appendPQExpBuffer(details, ",\n HASHES");
+ appendPQExpBufferStr(details, ",\n HASHES");
name = convertRegProcReference(fout, oprrest);
if (name)
@@ -10714,7 +10707,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
appendPQExpBuffer(q, "CREATE OPERATOR CLASS %s\n ",
fmtId(opcinfo->dobj.name));
if (strcmp(opcdefault, "t") == 0)
- appendPQExpBuffer(q, "DEFAULT ");
+ appendPQExpBufferStr(q, "DEFAULT ");
appendPQExpBuffer(q, "FOR TYPE %s USING %s",
opcintype,
fmtId(amname));
@@ -10722,12 +10715,12 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
(strcmp(opcfamilyname, opcinfo->dobj.name) != 0 ||
strcmp(opcfamilynsp, opcinfo->dobj.namespace->dobj.name) != 0))
{
- appendPQExpBuffer(q, " FAMILY ");
+ appendPQExpBufferStr(q, " FAMILY ");
if (strcmp(opcfamilynsp, opcinfo->dobj.namespace->dobj.name) != 0)
appendPQExpBuffer(q, "%s.", fmtId(opcfamilynsp));
appendPQExpBuffer(q, "%s", fmtId(opcfamilyname));
}
- appendPQExpBuffer(q, " AS\n ");
+ appendPQExpBufferStr(q, " AS\n ");
needComma = false;
@@ -10834,21 +10827,21 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
sortfamilynsp = PQgetvalue(res, i, i_sortfamilynsp);
if (needComma)
- appendPQExpBuffer(q, " ,\n ");
+ appendPQExpBufferStr(q, " ,\n ");
appendPQExpBuffer(q, "OPERATOR %s %s",
amopstrategy, amopopr);
if (strlen(sortfamily) > 0)
{
- appendPQExpBuffer(q, " FOR ORDER BY ");
+ appendPQExpBufferStr(q, " FOR ORDER BY ");
if (strcmp(sortfamilynsp, opcinfo->dobj.namespace->dobj.name) != 0)
appendPQExpBuffer(q, "%s.", fmtId(sortfamilynsp));
- appendPQExpBuffer(q, "%s", fmtId(sortfamily));
+ appendPQExpBufferStr(q, fmtId(sortfamily));
}
if (strcmp(amopreqcheck, "t") == 0)
- appendPQExpBuffer(q, " RECHECK");
+ appendPQExpBufferStr(q, " RECHECK");
needComma = true;
}
@@ -10912,7 +10905,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
amprocrighttype = PQgetvalue(res, i, i_amprocrighttype);
if (needComma)
- appendPQExpBuffer(q, " ,\n ");
+ appendPQExpBufferStr(q, " ,\n ");
appendPQExpBuffer(q, "FUNCTION %s", amprocnum);
@@ -10926,7 +10919,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
PQclear(res);
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
appendPQExpBuffer(labelq, "OPERATOR CLASS %s",
fmtId(opcinfo->dobj.name));
@@ -11192,21 +11185,21 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
sortfamilynsp = PQgetvalue(res_ops, i, i_sortfamilynsp);
if (needComma)
- appendPQExpBuffer(q, " ,\n ");
+ appendPQExpBufferStr(q, " ,\n ");
appendPQExpBuffer(q, "OPERATOR %s %s",
amopstrategy, amopopr);
if (strlen(sortfamily) > 0)
{
- appendPQExpBuffer(q, " FOR ORDER BY ");
+ appendPQExpBufferStr(q, " FOR ORDER BY ");
if (strcmp(sortfamilynsp, opfinfo->dobj.namespace->dobj.name) != 0)
appendPQExpBuffer(q, "%s.", fmtId(sortfamilynsp));
- appendPQExpBuffer(q, "%s", fmtId(sortfamily));
+ appendPQExpBufferStr(q, fmtId(sortfamily));
}
if (strcmp(amopreqcheck, "t") == 0)
- appendPQExpBuffer(q, " RECHECK");
+ appendPQExpBufferStr(q, " RECHECK");
needComma = true;
}
@@ -11229,7 +11222,7 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
amprocrighttype = PQgetvalue(res_procs, i, i_amprocrighttype);
if (needComma)
- appendPQExpBuffer(q, " ,\n ");
+ appendPQExpBufferStr(q, " ,\n ");
appendPQExpBuffer(q, "FUNCTION %s (%s, %s) %s",
amprocnum, amproclefttype, amprocrighttype,
@@ -11238,7 +11231,7 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
needComma = true;
}
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
}
appendPQExpBuffer(labelq, "OPERATOR FAMILY %s",
@@ -11329,9 +11322,9 @@ dumpCollation(Archive *fout, CollInfo *collinfo)
appendPQExpBuffer(q, "CREATE COLLATION %s (lc_collate = ",
fmtId(collinfo->dobj.name));
appendStringLiteralAH(q, collcollate, fout);
- appendPQExpBuffer(q, ", lc_ctype = ");
+ appendPQExpBufferStr(q, ", lc_ctype = ");
appendStringLiteralAH(q, collctype, fout);
- appendPQExpBuffer(q, ");\n");
+ appendPQExpBufferStr(q, ");\n");
appendPQExpBuffer(labelq, "COLLATION %s", fmtId(collinfo->dobj.name));
@@ -11427,7 +11420,7 @@ dumpConversion(Archive *fout, ConvInfo *convinfo)
(condefault) ? "DEFAULT " : "",
fmtId(convinfo->dobj.name));
appendStringLiteralAH(q, conforencoding, fout);
- appendPQExpBuffer(q, " TO ");
+ appendPQExpBufferStr(q, " TO ");
appendStringLiteralAH(q, contoencoding, fout);
/* regproc is automatically quoted in 7.3 and above */
appendPQExpBuffer(q, " FROM %s;\n", conproc);
@@ -11474,16 +11467,15 @@ format_aggregate_signature(AggInfo *agginfo, Archive *fout, bool honor_quotes)
initPQExpBuffer(&buf);
if (honor_quotes)
- appendPQExpBuffer(&buf, "%s",
- fmtId(agginfo->aggfn.dobj.name));
+ appendPQExpBufferStr(&buf, fmtId(agginfo->aggfn.dobj.name));
else
- appendPQExpBuffer(&buf, "%s", agginfo->aggfn.dobj.name);
+ appendPQExpBufferStr(&buf, agginfo->aggfn.dobj.name);
if (agginfo->aggfn.nargs == 0)
appendPQExpBuffer(&buf, "(*)");
else
{
- appendPQExpBuffer(&buf, "(");
+ appendPQExpBufferChar(&buf, '(');
for (j = 0; j < agginfo->aggfn.nargs; j++)
{
char *typname;
@@ -11496,7 +11488,7 @@ format_aggregate_signature(AggInfo *agginfo, Archive *fout, bool honor_quotes)
typname);
free(typname);
}
- appendPQExpBuffer(&buf, ")");
+ appendPQExpBufferChar(&buf, ')');
}
return buf.data;
}
@@ -11698,7 +11690,7 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
if (!PQgetisnull(res, 0, i_agginitval))
{
- appendPQExpBuffer(details, ",\n INITCOND = ");
+ appendPQExpBufferStr(details, ",\n INITCOND = ");
appendStringLiteralAH(details, agginitval, fout);
}
@@ -11888,10 +11880,10 @@ dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo)
appendPQExpBuffer(q, "CREATE TEXT SEARCH DICTIONARY %s (\n",
fmtId(dictinfo->dobj.name));
- appendPQExpBuffer(q, " TEMPLATE = ");
+ appendPQExpBufferStr(q, " TEMPLATE = ");
if (strcmp(nspname, dictinfo->dobj.namespace->dobj.name) != 0)
appendPQExpBuffer(q, "%s.", fmtId(nspname));
- appendPQExpBuffer(q, "%s", fmtId(tmplname));
+ appendPQExpBufferStr(q, fmtId(tmplname));
PQclear(res);
@@ -11899,7 +11891,7 @@ dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo)
if (dictinfo->dictinitoption)
appendPQExpBuffer(q, ",\n %s", dictinfo->dictinitoption);
- appendPQExpBuffer(q, " );\n");
+ appendPQExpBufferStr(q, " );\n");
/*
* DROP must be fully qualified in case same name appears in pg_catalog
@@ -12045,7 +12037,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo)
appendPQExpBuffer(q, "CREATE TEXT SEARCH CONFIGURATION %s (\n",
fmtId(cfginfo->dobj.name));
- appendPQExpBuffer(q, " PARSER = ");
+ appendPQExpBufferStr(q, " PARSER = ");
if (strcmp(nspname, cfginfo->dobj.namespace->dobj.name) != 0)
appendPQExpBuffer(q, "%s.", fmtId(nspname));
appendPQExpBuffer(q, "%s );\n", fmtId(prsname));
@@ -12079,7 +12071,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo)
{
/* starting a new token type, so start a new command */
if (i > 0)
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
appendPQExpBuffer(q, "\nALTER TEXT SEARCH CONFIGURATION %s\n",
fmtId(cfginfo->dobj.name));
/* tokenname needs quoting, dictname does NOT */
@@ -12091,7 +12083,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo)
}
if (ntups > 0)
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
PQclear(res);
@@ -12172,7 +12164,7 @@ dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo)
if (strlen(fdwinfo->fdwoptions) > 0)
appendPQExpBuffer(q, " OPTIONS (\n %s\n)", fdwinfo->fdwoptions);
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
appendPQExpBuffer(delq, "DROP FOREIGN DATA WRAPPER %s;\n",
qfdwname);
@@ -12250,22 +12242,22 @@ dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo)
appendPQExpBuffer(q, "CREATE SERVER %s", qsrvname);
if (srvinfo->srvtype && strlen(srvinfo->srvtype) > 0)
{
- appendPQExpBuffer(q, " TYPE ");
+ appendPQExpBufferStr(q, " TYPE ");
appendStringLiteralAH(q, srvinfo->srvtype, fout);
}
if (srvinfo->srvversion && strlen(srvinfo->srvversion) > 0)
{
- appendPQExpBuffer(q, " VERSION ");
+ appendPQExpBufferStr(q, " VERSION ");
appendStringLiteralAH(q, srvinfo->srvversion, fout);
}
- appendPQExpBuffer(q, " FOREIGN DATA WRAPPER ");
- appendPQExpBuffer(q, "%s", fmtId(fdwname));
+ appendPQExpBufferStr(q, " FOREIGN DATA WRAPPER ");
+ appendPQExpBufferStr(q, fmtId(fdwname));
if (srvinfo->srvoptions && strlen(srvinfo->srvoptions) > 0)
appendPQExpBuffer(q, " OPTIONS (\n %s\n)", srvinfo->srvoptions);
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
appendPQExpBuffer(delq, "DROP SERVER %s;\n",
qsrvname);
@@ -12382,7 +12374,7 @@ dumpUserMappings(Archive *fout,
if (umoptions && strlen(umoptions) > 0)
appendPQExpBuffer(q, " OPTIONS (\n %s\n)", umoptions);
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
resetPQExpBuffer(delq);
appendPQExpBuffer(delq, "DROP USER MAPPING FOR %s", fmtId(usename));
@@ -12591,7 +12583,7 @@ dumpSecLabel(Archive *fout, const char *target,
"SECURITY LABEL FOR %s ON %s IS ",
fmtId(labels[i].provider), target);
appendStringLiteralAH(query, labels[i].label, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
}
if (query->len > 0)
@@ -12665,7 +12657,7 @@ dumpTableSecLabel(Archive *fout, TableInfo *tbinfo, const char *reltypename)
appendPQExpBuffer(query, "SECURITY LABEL FOR %s ON %s IS ",
fmtId(provider), target->data);
appendStringLiteralAH(query, label, fout);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
}
if (query->len > 0)
{
@@ -12795,10 +12787,10 @@ collectSecLabels(Archive *fout, SecLabelItem **items)
query = createPQExpBuffer();
- appendPQExpBuffer(query,
- "SELECT label, provider, classoid, objoid, objsubid "
- "FROM pg_catalog.pg_seclabel "
- "ORDER BY classoid, objoid, objsubid");
+ appendPQExpBufferStr(query,
+ "SELECT label, provider, classoid, objoid, objsubid "
+ "FROM pg_catalog.pg_seclabel "
+ "ORDER BY classoid, objoid, objsubid");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -12921,8 +12913,8 @@ createViewAsClause(Archive *fout, TableInfo *tbinfo)
}
else
{
- appendPQExpBuffer(query, "SELECT definition AS viewdef "
- "FROM pg_views WHERE viewname = ");
+ appendPQExpBufferStr(query, "SELECT definition AS viewdef "
+ "FROM pg_views WHERE viewname = ");
appendStringLiteralAH(query, tbinfo->dobj.name, fout);
}
@@ -13010,7 +13002,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
if (tbinfo->checkoption != NULL)
appendPQExpBuffer(q, "\n WITH %s CHECK OPTION", tbinfo->checkoption);
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
appendPQExpBuffer(labelq, "VIEW %s",
fmtId(tbinfo->dobj.name));
@@ -13129,15 +13121,14 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
/* Format properly if not first attr */
if (actual_atts == 0)
- appendPQExpBuffer(q, " (");
+ appendPQExpBufferStr(q, " (");
else
- appendPQExpBuffer(q, ",");
- appendPQExpBuffer(q, "\n ");
+ appendPQExpBufferStr(q, ",");
+ appendPQExpBufferStr(q, "\n ");
actual_atts++;
/* Attribute name */
- appendPQExpBuffer(q, "%s",
- fmtId(tbinfo->attnames[j]));
+ appendPQExpBufferStr(q, fmtId(tbinfo->attnames[j]));
if (tbinfo->attisdropped[j])
{
@@ -13147,7 +13138,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
* valid type name; insert INTEGER as a stopgap. We'll
* clean things up later.
*/
- appendPQExpBuffer(q, " INTEGER /* dummy */");
+ appendPQExpBufferStr(q, " INTEGER /* dummy */");
/* Skip all the rest, too */
continue;
}
@@ -13155,7 +13146,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
/* Attribute type */
if (tbinfo->reloftype && !binary_upgrade)
{
- appendPQExpBuffer(q, " WITH OPTIONS");
+ appendPQExpBufferStr(q, " WITH OPTIONS");
}
else if (fout->remoteVersion >= 70100)
{
@@ -13181,8 +13172,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
/* always schema-qualify, don't try to be smart */
appendPQExpBuffer(q, " COLLATE %s.",
fmtId(coll->dobj.namespace->dobj.name));
- appendPQExpBuffer(q, "%s",
- fmtId(coll->dobj.name));
+ appendPQExpBufferStr(q, fmtId(coll->dobj.name));
}
}
@@ -13191,7 +13181,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
tbinfo->attrdefs[j]->adef_expr);
if (has_notnull)
- appendPQExpBuffer(q, " NOT NULL");
+ appendPQExpBufferStr(q, " NOT NULL");
}
}
@@ -13206,44 +13196,43 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
continue;
if (actual_atts == 0)
- appendPQExpBuffer(q, " (\n ");
+ appendPQExpBufferStr(q, " (\n ");
else
- appendPQExpBuffer(q, ",\n ");
+ appendPQExpBufferStr(q, ",\n ");
appendPQExpBuffer(q, "CONSTRAINT %s ",
fmtId(constr->dobj.name));
- appendPQExpBuffer(q, "%s", constr->condef);
+ appendPQExpBufferStr(q, constr->condef);
actual_atts++;
}
if (actual_atts)
- appendPQExpBuffer(q, "\n)");
+ appendPQExpBufferStr(q, "\n)");
else if (!(tbinfo->reloftype && !binary_upgrade))
{
/*
* We must have a parenthesized attribute list, even though
* empty, when not using the OF TYPE syntax.
*/
- appendPQExpBuffer(q, " (\n)");
+ appendPQExpBufferStr(q, " (\n)");
}
if (numParents > 0 && !binary_upgrade)
{
- appendPQExpBuffer(q, "\nINHERITS (");
+ appendPQExpBufferStr(q, "\nINHERITS (");
for (k = 0; k < numParents; k++)
{
TableInfo *parentRel = parents[k];
if (k > 0)
- appendPQExpBuffer(q, ", ");
+ appendPQExpBufferStr(q, ", ");
if (parentRel->dobj.namespace != tbinfo->dobj.namespace)
appendPQExpBuffer(q, "%s.",
fmtId(parentRel->dobj.namespace->dobj.name));
- appendPQExpBuffer(q, "%s",
- fmtId(parentRel->dobj.name));
+ appendPQExpBufferStr(q, fmtId(parentRel->dobj.name));
}
- appendPQExpBuffer(q, ")");
+ appendPQExpBufferChar(q, ')');
}
if (tbinfo->relkind == RELKIND_FOREIGN_TABLE)
@@ -13255,18 +13244,18 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
{
bool addcomma = false;
- appendPQExpBuffer(q, "\nWITH (");
+ appendPQExpBufferStr(q, "\nWITH (");
if (tbinfo->reloptions && strlen(tbinfo->reloptions) > 0)
{
addcomma = true;
- appendPQExpBuffer(q, "%s", tbinfo->reloptions);
+ appendPQExpBufferStr(q, tbinfo->reloptions);
}
if (tbinfo->toast_reloptions && strlen(tbinfo->toast_reloptions) > 0)
{
appendPQExpBuffer(q, "%s%s", addcomma ? ", " : "",
tbinfo->toast_reloptions);
}
- appendPQExpBuffer(q, ")");
+ appendPQExpBufferChar(q, ')');
}
/* Dump generic options if any */
@@ -13287,7 +13276,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
destroyPQExpBuffer(result);
}
else
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
/*
* To create binary-compatible heap files, we have to ensure the same
@@ -13309,7 +13298,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
{
if (tbinfo->attisdropped[j])
{
- appendPQExpBuffer(q, "\n-- For binary upgrade, recreate dropped column.\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, recreate dropped column.\n");
appendPQExpBuffer(q, "UPDATE pg_catalog.pg_attribute\n"
"SET attlen = %d, "
"attalign = '%c', attbyval = false\n"
@@ -13317,9 +13306,9 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
tbinfo->attlen[j],
tbinfo->attalign[j]);
appendStringLiteralAH(q, tbinfo->attnames[j], fout);
- appendPQExpBuffer(q, "\n AND attrelid = ");
+ appendPQExpBufferStr(q, "\n AND attrelid = ");
appendStringLiteralAH(q, fmtId(tbinfo->dobj.name), fout);
- appendPQExpBuffer(q, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(q, "::pg_catalog.regclass;\n");
if (tbinfo->relkind == RELKIND_RELATION)
appendPQExpBuffer(q, "ALTER TABLE ONLY %s ",
@@ -13334,14 +13323,14 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
else if (!tbinfo->attislocal[j])
{
Assert(tbinfo->relkind != RELKIND_FOREIGN_TABLE);
- appendPQExpBuffer(q, "\n-- For binary upgrade, recreate inherited column.\n");
- appendPQExpBuffer(q, "UPDATE pg_catalog.pg_attribute\n"
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, recreate inherited column.\n");
+ appendPQExpBufferStr(q, "UPDATE pg_catalog.pg_attribute\n"
"SET attislocal = false\n"
"WHERE attname = ");
appendStringLiteralAH(q, tbinfo->attnames[j], fout);
- appendPQExpBuffer(q, "\n AND attrelid = ");
+ appendPQExpBufferStr(q, "\n AND attrelid = ");
appendStringLiteralAH(q, fmtId(tbinfo->dobj.name), fout);
- appendPQExpBuffer(q, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(q, "::pg_catalog.regclass;\n");
}
}
@@ -13352,24 +13341,24 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
if (constr->separate || constr->conislocal)
continue;
- appendPQExpBuffer(q, "\n-- For binary upgrade, set up inherited constraint.\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, set up inherited constraint.\n");
appendPQExpBuffer(q, "ALTER TABLE ONLY %s ",
fmtId(tbinfo->dobj.name));
appendPQExpBuffer(q, " ADD CONSTRAINT %s ",
fmtId(constr->dobj.name));
appendPQExpBuffer(q, "%s;\n", constr->condef);
- appendPQExpBuffer(q, "UPDATE pg_catalog.pg_constraint\n"
+ appendPQExpBufferStr(q, "UPDATE pg_catalog.pg_constraint\n"
"SET conislocal = false\n"
"WHERE contype = 'c' AND conname = ");
appendStringLiteralAH(q, constr->dobj.name, fout);
- appendPQExpBuffer(q, "\n AND conrelid = ");
+ appendPQExpBufferStr(q, "\n AND conrelid = ");
appendStringLiteralAH(q, fmtId(tbinfo->dobj.name), fout);
- appendPQExpBuffer(q, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(q, "::pg_catalog.regclass;\n");
}
if (numParents > 0)
{
- appendPQExpBuffer(q, "\n-- For binary upgrade, set up inheritance this way.\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, set up inheritance this way.\n");
for (k = 0; k < numParents; k++)
{
TableInfo *parentRel = parents[k];
@@ -13386,24 +13375,24 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
if (tbinfo->reloftype)
{
- appendPQExpBuffer(q, "\n-- For binary upgrade, set up typed tables this way.\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, set up typed tables this way.\n");
appendPQExpBuffer(q, "ALTER TABLE ONLY %s OF %s;\n",
fmtId(tbinfo->dobj.name),
tbinfo->reloftype);
}
- appendPQExpBuffer(q, "\n-- For binary upgrade, set heap's relfrozenxid\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, set heap's relfrozenxid\n");
appendPQExpBuffer(q, "UPDATE pg_catalog.pg_class\n"
"SET relfrozenxid = '%u'\n"
"WHERE oid = ",
tbinfo->frozenxid);
appendStringLiteralAH(q, fmtId(tbinfo->dobj.name), fout);
- appendPQExpBuffer(q, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(q, "::pg_catalog.regclass;\n");
if (tbinfo->toast_oid)
{
/* We preserve the toast oids, so we can use it during restore */
- appendPQExpBuffer(q, "\n-- For binary upgrade, set toast's relfrozenxid\n");
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, set toast's relfrozenxid\n");
appendPQExpBuffer(q, "UPDATE pg_catalog.pg_class\n"
"SET relfrozenxid = '%u'\n"
"WHERE oid = '%u';\n",
@@ -13420,12 +13409,12 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
if (binary_upgrade && tbinfo->relkind == RELKIND_MATVIEW &&
tbinfo->relispopulated)
{
- appendPQExpBuffer(q, "\n-- For binary upgrade, mark materialized view as populated\n");
- appendPQExpBuffer(q, "UPDATE pg_catalog.pg_class\n"
+ appendPQExpBufferStr(q, "\n-- For binary upgrade, mark materialized view as populated\n");
+ appendPQExpBufferStr(q, "UPDATE pg_catalog.pg_class\n"
"SET relispopulated = 't'\n"
"WHERE oid = ");
appendStringLiteralAH(q, fmtId(tbinfo->dobj.name), fout);
- appendPQExpBuffer(q, "::pg_catalog.regclass;\n");
+ appendPQExpBufferStr(q, "::pg_catalog.regclass;\n");
}
/*
@@ -13834,19 +13823,19 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo)
fmtId(attname));
}
- appendPQExpBuffer(q, ")");
+ appendPQExpBufferChar(q, ')');
if (indxinfo->options && strlen(indxinfo->options) > 0)
appendPQExpBuffer(q, " WITH (%s)", indxinfo->options);
if (coninfo->condeferrable)
{
- appendPQExpBuffer(q, " DEFERRABLE");
+ appendPQExpBufferStr(q, " DEFERRABLE");
if (coninfo->condeferred)
- appendPQExpBuffer(q, " INITIALLY DEFERRED");
+ appendPQExpBufferStr(q, " INITIALLY DEFERRED");
}
- appendPQExpBuffer(q, ";\n");
+ appendPQExpBufferStr(q, ";\n");
}
/* If the index is clustered, we need to record that. */
@@ -14039,7 +14028,7 @@ findLastBuiltinOid_V71(Archive *fout, const char *dbname)
PQExpBuffer query = createPQExpBuffer();
resetPQExpBuffer(query);
- appendPQExpBuffer(query, "SELECT datlastsysoid from pg_database where datname = ");
+ appendPQExpBufferStr(query, "SELECT datlastsysoid from pg_database where datname = ");
appendStringLiteralAH(query, dbname, fout);
res = ExecuteSqlQueryForSingleRow(fout, query->data);
@@ -14191,18 +14180,18 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
if (minv)
appendPQExpBuffer(query, " MINVALUE %s\n", minv);
else
- appendPQExpBuffer(query, " NO MINVALUE\n");
+ appendPQExpBufferStr(query, " NO MINVALUE\n");
if (maxv)
appendPQExpBuffer(query, " MAXVALUE %s\n", maxv);
else
- appendPQExpBuffer(query, " NO MAXVALUE\n");
+ appendPQExpBufferStr(query, " NO MAXVALUE\n");
appendPQExpBuffer(query,
" CACHE %s%s",
cache, (cycled ? "\n CYCLE" : ""));
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
appendPQExpBuffer(labelq, "SEQUENCE %s", fmtId(tbinfo->dobj.name));
@@ -14310,7 +14299,7 @@ dumpSequenceData(Archive *fout, TableDataInfo *tdinfo)
called = (strcmp(PQgetvalue(res, 0, 1), "t") == 0);
resetPQExpBuffer(query);
- appendPQExpBuffer(query, "SELECT pg_catalog.setval(");
+ appendPQExpBufferStr(query, "SELECT pg_catalog.setval(");
appendStringLiteralAH(query, fmtId(tbinfo->dobj.name), fout);
appendPQExpBuffer(query, ", %s, %s);\n",
last, (called ? "true" : "false"));
@@ -14367,23 +14356,23 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
{
if (tginfo->tgisconstraint)
{
- appendPQExpBuffer(query, "CREATE CONSTRAINT TRIGGER ");
+ appendPQExpBufferStr(query, "CREATE CONSTRAINT TRIGGER ");
appendPQExpBufferStr(query, fmtId(tginfo->tgconstrname));
}
else
{
- appendPQExpBuffer(query, "CREATE TRIGGER ");
+ appendPQExpBufferStr(query, "CREATE TRIGGER ");
appendPQExpBufferStr(query, fmtId(tginfo->dobj.name));
}
- appendPQExpBuffer(query, "\n ");
+ appendPQExpBufferStr(query, "\n ");
/* Trigger type */
if (TRIGGER_FOR_BEFORE(tginfo->tgtype))
- appendPQExpBuffer(query, "BEFORE");
+ appendPQExpBufferStr(query, "BEFORE");
else if (TRIGGER_FOR_AFTER(tginfo->tgtype))
- appendPQExpBuffer(query, "AFTER");
+ appendPQExpBufferStr(query, "AFTER");
else if (TRIGGER_FOR_INSTEAD(tginfo->tgtype))
- appendPQExpBuffer(query, "INSTEAD OF");
+ appendPQExpBufferStr(query, "INSTEAD OF");
else
{
write_msg(NULL, "unexpected tgtype value: %d\n", tginfo->tgtype);
@@ -14393,31 +14382,31 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
findx = 0;
if (TRIGGER_FOR_INSERT(tginfo->tgtype))
{
- appendPQExpBuffer(query, " INSERT");
+ appendPQExpBufferStr(query, " INSERT");
findx++;
}
if (TRIGGER_FOR_DELETE(tginfo->tgtype))
{
if (findx > 0)
- appendPQExpBuffer(query, " OR DELETE");
+ appendPQExpBufferStr(query, " OR DELETE");
else
- appendPQExpBuffer(query, " DELETE");
+ appendPQExpBufferStr(query, " DELETE");
findx++;
}
if (TRIGGER_FOR_UPDATE(tginfo->tgtype))
{
if (findx > 0)
- appendPQExpBuffer(query, " OR UPDATE");
+ appendPQExpBufferStr(query, " OR UPDATE");
else
- appendPQExpBuffer(query, " UPDATE");
+ appendPQExpBufferStr(query, " UPDATE");
findx++;
}
if (TRIGGER_FOR_TRUNCATE(tginfo->tgtype))
{
if (findx > 0)
- appendPQExpBuffer(query, " OR TRUNCATE");
+ appendPQExpBufferStr(query, " OR TRUNCATE");
else
- appendPQExpBuffer(query, " TRUNCATE");
+ appendPQExpBufferStr(query, " TRUNCATE");
findx++;
}
appendPQExpBuffer(query, " ON %s\n",
@@ -14436,18 +14425,18 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
fmtId(tginfo->tgconstrrelname));
}
if (!tginfo->tgdeferrable)
- appendPQExpBuffer(query, "NOT ");
- appendPQExpBuffer(query, "DEFERRABLE INITIALLY ");
+ appendPQExpBufferStr(query, "NOT ");
+ appendPQExpBufferStr(query, "DEFERRABLE INITIALLY ");
if (tginfo->tginitdeferred)
- appendPQExpBuffer(query, "DEFERRED\n");
+ appendPQExpBufferStr(query, "DEFERRED\n");
else
- appendPQExpBuffer(query, "IMMEDIATE\n");
+ appendPQExpBufferStr(query, "IMMEDIATE\n");
}
if (TRIGGER_FOR_ROW(tginfo->tgtype))
- appendPQExpBuffer(query, " FOR EACH ROW\n ");
+ appendPQExpBufferStr(query, " FOR EACH ROW\n ");
else
- appendPQExpBuffer(query, " FOR EACH STATEMENT\n ");
+ appendPQExpBufferStr(query, " FOR EACH STATEMENT\n ");
/* In 7.3, result of regproc is already quoted */
if (fout->remoteVersion >= 70300)
@@ -14476,12 +14465,12 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
}
if (findx > 0)
- appendPQExpBuffer(query, ", ");
+ appendPQExpBufferStr(query, ", ");
appendStringLiteralAH(query, p, fout);
p += tlen + 1;
}
free(tgargs);
- appendPQExpBuffer(query, ");\n");
+ appendPQExpBufferStr(query, ");\n");
}
if (tginfo->tgenabled != 't' && tginfo->tgenabled != 'O')
@@ -14492,16 +14481,16 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
{
case 'D':
case 'f':
- appendPQExpBuffer(query, "DISABLE");
+ appendPQExpBufferStr(query, "DISABLE");
break;
case 'A':
- appendPQExpBuffer(query, "ENABLE ALWAYS");
+ appendPQExpBufferStr(query, "ENABLE ALWAYS");
break;
case 'R':
- appendPQExpBuffer(query, "ENABLE REPLICA");
+ appendPQExpBufferStr(query, "ENABLE REPLICA");
break;
default:
- appendPQExpBuffer(query, "ENABLE");
+ appendPQExpBufferStr(query, "ENABLE");
break;
}
appendPQExpBuffer(query, " TRIGGER %s;\n",
@@ -14541,9 +14530,9 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
query = createPQExpBuffer();
labelq = createPQExpBuffer();
- appendPQExpBuffer(query, "CREATE EVENT TRIGGER ");
+ appendPQExpBufferStr(query, "CREATE EVENT TRIGGER ");
appendPQExpBufferStr(query, fmtId(evtinfo->dobj.name));
- appendPQExpBuffer(query, " ON ");
+ appendPQExpBufferStr(query, " ON ");
appendPQExpBufferStr(query, fmtId(evtinfo->evtevent));
appendPQExpBufferStr(query, " ");
@@ -14554,9 +14543,9 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
appendPQExpBufferStr(query, ") ");
}
- appendPQExpBuffer(query, "\n EXECUTE PROCEDURE ");
+ appendPQExpBufferStr(query, "\n EXECUTE PROCEDURE ");
appendPQExpBufferStr(query, evtinfo->evtfname);
- appendPQExpBuffer(query, "();\n");
+ appendPQExpBufferStr(query, "();\n");
if (evtinfo->evtenabled != 'O')
{
@@ -14565,19 +14554,19 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
switch (evtinfo->evtenabled)
{
case 'D':
- appendPQExpBuffer(query, "DISABLE");
+ appendPQExpBufferStr(query, "DISABLE");
break;
case 'A':
- appendPQExpBuffer(query, "ENABLE ALWAYS");
+ appendPQExpBufferStr(query, "ENABLE ALWAYS");
break;
case 'R':
- appendPQExpBuffer(query, "ENABLE REPLICA");
+ appendPQExpBufferStr(query, "ENABLE REPLICA");
break;
default:
- appendPQExpBuffer(query, "ENABLE");
+ appendPQExpBufferStr(query, "ENABLE");
break;
}
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
}
appendPQExpBuffer(labelq, "EVENT TRIGGER %s ",
fmtId(evtinfo->dobj.name));
@@ -14756,12 +14745,12 @@ getExtensionMembership(Archive *fout, ExtensionInfo extinfo[],
query = createPQExpBuffer();
/* refclassid constraint is redundant but may speed the search */
- appendPQExpBuffer(query, "SELECT "
- "classid, objid, refclassid, refobjid "
- "FROM pg_depend "
- "WHERE refclassid = 'pg_extension'::regclass "
- "AND deptype = 'e' "
- "ORDER BY 3,4");
+ appendPQExpBufferStr(query, "SELECT "
+ "classid, objid, refclassid, refobjid "
+ "FROM pg_depend "
+ "WHERE refclassid = 'pg_extension'::regclass "
+ "AND deptype = 'e' "
+ "ORDER BY 3,4");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -14960,11 +14949,11 @@ getDependencies(Archive *fout)
* PIN dependencies aren't interesting, and EXTENSION dependencies were
* already processed by getExtensionMembership.
*/
- appendPQExpBuffer(query, "SELECT "
- "classid, objid, refclassid, refobjid, deptype "
- "FROM pg_depend "
- "WHERE deptype != 'p' AND deptype != 'e' "
- "ORDER BY 1,2");
+ appendPQExpBufferStr(query, "SELECT "
+ "classid, objid, refclassid, refobjid, deptype "
+ "FROM pg_depend "
+ "WHERE deptype != 'p' AND deptype != 'e' "
+ "ORDER BY 1,2");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
@@ -15304,7 +15293,7 @@ selectSourceSchema(Archive *fout, const char *schemaName)
appendPQExpBuffer(query, "SET search_path = %s",
fmtId(schemaName));
if (strcmp(schemaName, "pg_catalog") != 0)
- appendPQExpBuffer(query, ", pg_catalog");
+ appendPQExpBufferStr(query, ", pg_catalog");
ExecuteSqlStatement(fout, query->data);
@@ -15397,21 +15386,21 @@ myFormatType(const char *typname, int32 typmod)
{
int len = (typmod - VARHDRSZ);
- appendPQExpBuffer(buf, "character");
+ appendPQExpBufferStr(buf, "character");
if (len > 1)
appendPQExpBuffer(buf, "(%d)",
typmod - VARHDRSZ);
}
else if (strcmp(typname, "varchar") == 0)
{
- appendPQExpBuffer(buf, "character varying");
+ appendPQExpBufferStr(buf, "character varying");
if (typmod != -1)
appendPQExpBuffer(buf, "(%d)",
typmod - VARHDRSZ);
}
else if (strcmp(typname, "numeric") == 0)
{
- appendPQExpBuffer(buf, "numeric");
+ appendPQExpBufferStr(buf, "numeric");
if (typmod != -1)
{
int32 tmp_typmod;
@@ -15431,13 +15420,13 @@ myFormatType(const char *typname, int32 typmod)
* through with quotes. - thomas 1998-12-13
*/
else if (strcmp(typname, "char") == 0)
- appendPQExpBuffer(buf, "\"char\"");
+ appendPQExpBufferStr(buf, "\"char\"");
else
- appendPQExpBuffer(buf, "%s", fmtId(typname));
+ appendPQExpBufferStr(buf, fmtId(typname));
/* Append array qualifier for array types */
if (isarray)
- appendPQExpBuffer(buf, "[]");
+ appendPQExpBufferStr(buf, "[]");
result = pg_strdup(buf->data);
destroyPQExpBuffer(buf);
@@ -15460,22 +15449,22 @@ fmtCopyColumnList(const TableInfo *ti, PQExpBuffer buffer)
bool needComma;
int i;
- appendPQExpBuffer(buffer, "(");
+ appendPQExpBufferChar(buffer, '(');
needComma = false;
for (i = 0; i < numatts; i++)
{
if (attisdropped[i])
continue;
if (needComma)
- appendPQExpBuffer(buffer, ", ");
- appendPQExpBuffer(buffer, "%s", fmtId(attnames[i]));
+ appendPQExpBufferStr(buffer, ", ");
+ appendPQExpBufferStr(buffer, fmtId(attnames[i]));
needComma = true;
}
if (!needComma)
return ""; /* no undropped columns */
- appendPQExpBuffer(buffer, ")");
+ appendPQExpBufferChar(buffer, ')');
return buffer->data;
}
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 615dd48f57..336ae588c7 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -199,7 +199,7 @@ main(int argc, char *argv[])
{
case 'a':
data_only = true;
- appendPQExpBuffer(pgdumpopts, " -a");
+ appendPQExpBufferStr(pgdumpopts, " -a");
break;
case 'c':
@@ -212,7 +212,7 @@ main(int argc, char *argv[])
case 'f':
filename = pg_strdup(optarg);
- appendPQExpBuffer(pgdumpopts, " -f ");
+ appendPQExpBufferStr(pgdumpopts, " -f ");
doShellQuoting(pgdumpopts, filename);
break;
@@ -233,11 +233,11 @@ main(int argc, char *argv[])
break;
case 'o':
- appendPQExpBuffer(pgdumpopts, " -o");
+ appendPQExpBufferStr(pgdumpopts, " -o");
break;
case 'O':
- appendPQExpBuffer(pgdumpopts, " -O");
+ appendPQExpBufferStr(pgdumpopts, " -O");
break;
case 'p':
@@ -249,11 +249,11 @@ main(int argc, char *argv[])
break;
case 's':
- appendPQExpBuffer(pgdumpopts, " -s");
+ appendPQExpBufferStr(pgdumpopts, " -s");
break;
case 'S':
- appendPQExpBuffer(pgdumpopts, " -S ");
+ appendPQExpBufferStr(pgdumpopts, " -S ");
doShellQuoting(pgdumpopts, optarg);
break;
@@ -267,35 +267,35 @@ main(int argc, char *argv[])
case 'v':
verbose = true;
- appendPQExpBuffer(pgdumpopts, " -v");
+ appendPQExpBufferStr(pgdumpopts, " -v");
break;
case 'w':
prompt_password = TRI_NO;
- appendPQExpBuffer(pgdumpopts, " -w");
+ appendPQExpBufferStr(pgdumpopts, " -w");
break;
case 'W':
prompt_password = TRI_YES;
- appendPQExpBuffer(pgdumpopts, " -W");
+ appendPQExpBufferStr(pgdumpopts, " -W");
break;
case 'x':
skip_acls = true;
- appendPQExpBuffer(pgdumpopts, " -x");
+ appendPQExpBufferStr(pgdumpopts, " -x");
break;
case 0:
break;
case 2:
- appendPQExpBuffer(pgdumpopts, " --lock-wait-timeout ");
+ appendPQExpBufferStr(pgdumpopts, " --lock-wait-timeout ");
doShellQuoting(pgdumpopts, optarg);
break;
case 3:
use_role = pg_strdup(optarg);
- appendPQExpBuffer(pgdumpopts, " --role ");
+ appendPQExpBufferStr(pgdumpopts, " --role ");
doShellQuoting(pgdumpopts, use_role);
break;
@@ -345,25 +345,25 @@ main(int argc, char *argv[])
/* Add long options to the pg_dump argument list */
if (binary_upgrade)
- appendPQExpBuffer(pgdumpopts, " --binary-upgrade");
+ appendPQExpBufferStr(pgdumpopts, " --binary-upgrade");
if (column_inserts)
- appendPQExpBuffer(pgdumpopts, " --column-inserts");
+ appendPQExpBufferStr(pgdumpopts, " --column-inserts");
if (disable_dollar_quoting)
- appendPQExpBuffer(pgdumpopts, " --disable-dollar-quoting");
+ appendPQExpBufferStr(pgdumpopts, " --disable-dollar-quoting");
if (disable_triggers)
- appendPQExpBuffer(pgdumpopts, " --disable-triggers");
+ appendPQExpBufferStr(pgdumpopts, " --disable-triggers");
if (inserts)
- appendPQExpBuffer(pgdumpopts, " --inserts");
+ appendPQExpBufferStr(pgdumpopts, " --inserts");
if (no_tablespaces)
- appendPQExpBuffer(pgdumpopts, " --no-tablespaces");
+ appendPQExpBufferStr(pgdumpopts, " --no-tablespaces");
if (quote_all_identifiers)
- appendPQExpBuffer(pgdumpopts, " --quote-all-identifiers");
+ appendPQExpBufferStr(pgdumpopts, " --quote-all-identifiers");
if (use_setsessauth)
- appendPQExpBuffer(pgdumpopts, " --use-set-session-authorization");
+ appendPQExpBufferStr(pgdumpopts, " --use-set-session-authorization");
if (no_security_labels)
- appendPQExpBuffer(pgdumpopts, " --no-security-labels");
+ appendPQExpBufferStr(pgdumpopts, " --no-security-labels");
if (no_unlogged_table_data)
- appendPQExpBuffer(pgdumpopts, " --no-unlogged-table-data");
+ appendPQExpBufferStr(pgdumpopts, " --no-unlogged-table-data");
/*
* If there was a database specified on the command line, use that,
@@ -746,7 +746,7 @@ dumpRoles(PGconn *conn)
if (binary_upgrade)
{
- appendPQExpBuffer(buf, "\n-- For binary upgrade, must preserve pg_authid.oid\n");
+ appendPQExpBufferStr(buf, "\n-- For binary upgrade, must preserve pg_authid.oid\n");
appendPQExpBuffer(buf,
"SELECT binary_upgrade.set_next_pg_authid_oid('%u'::pg_catalog.oid);\n\n",
auth_oid);
@@ -766,34 +766,34 @@ dumpRoles(PGconn *conn)
appendPQExpBuffer(buf, "ALTER ROLE %s WITH", fmtId(rolename));
if (strcmp(PQgetvalue(res, i, i_rolsuper), "t") == 0)
- appendPQExpBuffer(buf, " SUPERUSER");
+ appendPQExpBufferStr(buf, " SUPERUSER");
else
- appendPQExpBuffer(buf, " NOSUPERUSER");
+ appendPQExpBufferStr(buf, " NOSUPERUSER");
if (strcmp(PQgetvalue(res, i, i_rolinherit), "t") == 0)
- appendPQExpBuffer(buf, " INHERIT");
+ appendPQExpBufferStr(buf, " INHERIT");
else
- appendPQExpBuffer(buf, " NOINHERIT");
+ appendPQExpBufferStr(buf, " NOINHERIT");
if (strcmp(PQgetvalue(res, i, i_rolcreaterole), "t") == 0)
- appendPQExpBuffer(buf, " CREATEROLE");
+ appendPQExpBufferStr(buf, " CREATEROLE");
else
- appendPQExpBuffer(buf, " NOCREATEROLE");
+ appendPQExpBufferStr(buf, " NOCREATEROLE");
if (strcmp(PQgetvalue(res, i, i_rolcreatedb), "t") == 0)
- appendPQExpBuffer(buf, " CREATEDB");
+ appendPQExpBufferStr(buf, " CREATEDB");
else
- appendPQExpBuffer(buf, " NOCREATEDB");
+ appendPQExpBufferStr(buf, " NOCREATEDB");
if (strcmp(PQgetvalue(res, i, i_rolcanlogin), "t") == 0)
- appendPQExpBuffer(buf, " LOGIN");
+ appendPQExpBufferStr(buf, " LOGIN");
else
- appendPQExpBuffer(buf, " NOLOGIN");
+ appendPQExpBufferStr(buf, " NOLOGIN");
if (strcmp(PQgetvalue(res, i, i_rolreplication), "t") == 0)
- appendPQExpBuffer(buf, " REPLICATION");
+ appendPQExpBufferStr(buf, " REPLICATION");
else
- appendPQExpBuffer(buf, " NOREPLICATION");
+ appendPQExpBufferStr(buf, " NOREPLICATION");
if (strcmp(PQgetvalue(res, i, i_rolconnlimit), "-1") != 0)
appendPQExpBuffer(buf, " CONNECTION LIMIT %s",
@@ -801,7 +801,7 @@ dumpRoles(PGconn *conn)
if (!PQgetisnull(res, i, i_rolpassword))
{
- appendPQExpBuffer(buf, " PASSWORD ");
+ appendPQExpBufferStr(buf, " PASSWORD ");
appendStringLiteralConn(buf, PQgetvalue(res, i, i_rolpassword), conn);
}
@@ -809,13 +809,13 @@ dumpRoles(PGconn *conn)
appendPQExpBuffer(buf, " VALID UNTIL '%s'",
PQgetvalue(res, i, i_rolvaliduntil));
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
if (!PQgetisnull(res, i, i_rolcomment))
{
appendPQExpBuffer(buf, "COMMENT ON ROLE %s IS ", fmtId(rolename));
appendStringLiteralConn(buf, PQgetvalue(res, i, i_rolcomment), conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
}
if (!no_security_labels && server_version >= 90200)
@@ -1068,9 +1068,9 @@ dumpTablespaces(PGconn *conn)
appendPQExpBuffer(buf, "CREATE TABLESPACE %s", fspcname);
appendPQExpBuffer(buf, " OWNER %s", fmtId(spcowner));
- appendPQExpBuffer(buf, " LOCATION ");
+ appendPQExpBufferStr(buf, " LOCATION ");
appendStringLiteralConn(buf, spclocation, conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
if (spcoptions && spcoptions[0] != '\0')
appendPQExpBuffer(buf, "ALTER TABLESPACE %s SET (%s);\n",
@@ -1090,7 +1090,7 @@ dumpTablespaces(PGconn *conn)
{
appendPQExpBuffer(buf, "COMMENT ON TABLESPACE %s IS ", fspcname);
appendStringLiteralConn(buf, spccomment, conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
}
if (!no_security_labels && server_version >= 90200)
@@ -1320,26 +1320,26 @@ dumpCreateDB(PGconn *conn)
{
appendPQExpBuffer(buf, "CREATE DATABASE %s", fdbname);
- appendPQExpBuffer(buf, " WITH TEMPLATE = template0");
+ appendPQExpBufferStr(buf, " WITH TEMPLATE = template0");
if (strlen(dbowner) != 0)
appendPQExpBuffer(buf, " OWNER = %s", fmtId(dbowner));
if (default_encoding && strcmp(dbencoding, default_encoding) != 0)
{
- appendPQExpBuffer(buf, " ENCODING = ");
+ appendPQExpBufferStr(buf, " ENCODING = ");
appendStringLiteralConn(buf, dbencoding, conn);
}
if (default_collate && strcmp(dbcollate, default_collate) != 0)
{
- appendPQExpBuffer(buf, " LC_COLLATE = ");
+ appendPQExpBufferStr(buf, " LC_COLLATE = ");
appendStringLiteralConn(buf, dbcollate, conn);
}
if (default_ctype && strcmp(dbctype, default_ctype) != 0)
{
- appendPQExpBuffer(buf, " LC_CTYPE = ");
+ appendPQExpBufferStr(buf, " LC_CTYPE = ");
appendStringLiteralConn(buf, dbctype, conn);
}
@@ -1359,24 +1359,24 @@ dumpCreateDB(PGconn *conn)
appendPQExpBuffer(buf, " CONNECTION LIMIT = %s",
dbconnlimit);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
if (strcmp(dbistemplate, "t") == 0)
{
- appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database SET datistemplate = 't' WHERE datname = ");
+ appendPQExpBufferStr(buf, "UPDATE pg_catalog.pg_database SET datistemplate = 't' WHERE datname = ");
appendStringLiteralConn(buf, dbname, conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
}
if (binary_upgrade)
{
- appendPQExpBuffer(buf, "-- For binary upgrade, set datfrozenxid.\n");
+ appendPQExpBufferStr(buf, "-- For binary upgrade, set datfrozenxid.\n");
appendPQExpBuffer(buf, "UPDATE pg_catalog.pg_database "
"SET datfrozenxid = '%u' "
"WHERE datname = ",
dbfrozenxid);
appendStringLiteralConn(buf, dbname, conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
}
}
@@ -1472,7 +1472,7 @@ dumpUserConfig(PGconn *conn, const char *username)
printfPQExpBuffer(buf, "SELECT useconfig[%d] FROM pg_shadow WHERE usename = ", count);
appendStringLiteralConn(buf, username, conn);
if (server_version >= 90000)
- appendPQExpBuffer(buf, ")");
+ appendPQExpBufferChar(buf, ')');
res = executeQuery(conn, buf->data);
if (PQntuples(res) == 1 &&
@@ -1561,10 +1561,10 @@ makeAlterConfigCommand(PGconn *conn, const char *arrayitem,
*/
if (pg_strcasecmp(mine, "DateStyle") == 0
|| pg_strcasecmp(mine, "search_path") == 0)
- appendPQExpBuffer(buf, "%s", pos + 1);
+ appendPQExpBufferStr(buf, pos + 1);
else
appendStringLiteralConn(buf, pos + 1, conn);
- appendPQExpBuffer(buf, ";\n");
+ appendPQExpBufferStr(buf, ";\n");
fprintf(OPF, "%s", buf->data);
destroyPQExpBuffer(buf);
@@ -1644,9 +1644,9 @@ runPgDump(const char *dbname)
* format.
*/
if (filename)
- appendPQExpBuffer(cmd, " -Fa ");
+ appendPQExpBufferStr(cmd, " -Fa ");
else
- appendPQExpBuffer(cmd, " -Fp ");
+ appendPQExpBufferStr(cmd, " -Fp ");
/*
* Append the database name to the already-constructed stem of connection
@@ -1657,7 +1657,7 @@ runPgDump(const char *dbname)
doShellQuoting(cmd, connstrbuf->data);
- appendPQExpBuffer(cmd, "%s", SYSTEMQUOTE);
+ appendPQExpBufferStr(cmd, SYSTEMQUOTE);
if (verbose)
fprintf(stderr, _("%s: running \"%s\"\n"), progname, cmd->data);
@@ -2082,7 +2082,7 @@ doShellQuoting(PQExpBuffer buf, const char *str)
for (p = str; *p; p++)
{
if (*p == '\'')
- appendPQExpBuffer(buf, "'\"'\"'");
+ appendPQExpBufferStr(buf, "'\"'\"'");
else
appendPQExpBufferChar(buf, *p);
}
@@ -2093,7 +2093,7 @@ doShellQuoting(PQExpBuffer buf, const char *str)
for (p = str; *p; p++)
{
if (*p == '"')
- appendPQExpBuffer(buf, "\\\"");
+ appendPQExpBufferStr(buf, "\\\"");
else
appendPQExpBufferChar(buf, *p);
}
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index d0e25a9e0a..638d8cb5c3 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -2786,7 +2786,7 @@ lookup_function_oid(PGconn *conn, const char *desc, Oid *foid)
PGresult *res;
query = createPQExpBuffer();
- printfPQExpBuffer(query, "SELECT ");
+ appendPQExpBufferStr(query, "SELECT ");
appendStringLiteralConn(query, desc, conn);
appendPQExpBuffer(query, "::pg_catalog.%s::pg_catalog.oid",
strchr(desc, '(') ? "regprocedure" : "regproc");
diff --git a/src/bin/psql/copy.c b/src/bin/psql/copy.c
index a0c19a8de4..da0390172a 100644
--- a/src/bin/psql/copy.c
+++ b/src/bin/psql/copy.c
@@ -362,9 +362,9 @@ do_copy(const char *args)
printfPQExpBuffer(&query, "COPY ");
appendPQExpBufferStr(&query, options->before_tofrom);
if (options->from)
- appendPQExpBuffer(&query, " FROM STDIN ");
+ appendPQExpBufferStr(&query, " FROM STDIN ");
else
- appendPQExpBuffer(&query, " TO STDOUT ");
+ appendPQExpBufferStr(&query, " TO STDOUT ");
if (options->after_tofrom)
appendPQExpBufferStr(&query, options->after_tofrom);
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index ceda13e921..96322ca85b 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -105,14 +105,14 @@ describeAggregates(const char *pattern, bool verbose, bool showSystem)
gettext_noop("Description"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
" AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "p.proname", NULL,
"pg_catalog.pg_function_is_visible(p.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2, 4;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2, 4;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -167,7 +167,7 @@ describeTablespaces(const char *pattern, bool verbose)
if (verbose)
{
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
printACLColumn(&buf, "spcacl");
}
@@ -176,14 +176,14 @@ describeTablespaces(const char *pattern, bool verbose)
",\n pg_catalog.shobj_description(oid, 'pg_tablespace') AS \"%s\"",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_tablespace\n");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_tablespace\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "spcname", NULL,
NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -359,12 +359,12 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool
gettext_noop("Source code"),
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_proc p"
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_proc p"
"\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n");
if (verbose)
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
" LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang\n");
have_where = false;
@@ -377,65 +377,65 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool
if (!showAggregate)
{
if (have_where)
- appendPQExpBuffer(&buf, " AND ");
+ appendPQExpBufferStr(&buf, " AND ");
else
{
- appendPQExpBuffer(&buf, "WHERE ");
+ appendPQExpBufferStr(&buf, "WHERE ");
have_where = true;
}
- appendPQExpBuffer(&buf, "NOT p.proisagg\n");
+ appendPQExpBufferStr(&buf, "NOT p.proisagg\n");
}
if (!showTrigger)
{
if (have_where)
- appendPQExpBuffer(&buf, " AND ");
+ appendPQExpBufferStr(&buf, " AND ");
else
{
- appendPQExpBuffer(&buf, "WHERE ");
+ appendPQExpBufferStr(&buf, "WHERE ");
have_where = true;
}
- appendPQExpBuffer(&buf, "p.prorettype <> 'pg_catalog.trigger'::pg_catalog.regtype\n");
+ appendPQExpBufferStr(&buf, "p.prorettype <> 'pg_catalog.trigger'::pg_catalog.regtype\n");
}
if (!showWindow && pset.sversion >= 80400)
{
if (have_where)
- appendPQExpBuffer(&buf, " AND ");
+ appendPQExpBufferStr(&buf, " AND ");
else
{
- appendPQExpBuffer(&buf, "WHERE ");
+ appendPQExpBufferStr(&buf, "WHERE ");
have_where = true;
}
- appendPQExpBuffer(&buf, "NOT p.proiswindow\n");
+ appendPQExpBufferStr(&buf, "NOT p.proiswindow\n");
}
}
else
{
bool needs_or = false;
- appendPQExpBuffer(&buf, "WHERE (\n ");
+ appendPQExpBufferStr(&buf, "WHERE (\n ");
have_where = true;
/* Note: at least one of these must be true ... */
if (showAggregate)
{
- appendPQExpBuffer(&buf, "p.proisagg\n");
+ appendPQExpBufferStr(&buf, "p.proisagg\n");
needs_or = true;
}
if (showTrigger)
{
if (needs_or)
- appendPQExpBuffer(&buf, " OR ");
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf, " OR ");
+ appendPQExpBufferStr(&buf,
"p.prorettype = 'pg_catalog.trigger'::pg_catalog.regtype\n");
needs_or = true;
}
if (showWindow)
{
if (needs_or)
- appendPQExpBuffer(&buf, " OR ");
- appendPQExpBuffer(&buf, "p.proiswindow\n");
+ appendPQExpBufferStr(&buf, " OR ");
+ appendPQExpBufferStr(&buf, "p.proiswindow\n");
needs_or = true;
}
- appendPQExpBuffer(&buf, " )\n");
+ appendPQExpBufferStr(&buf, " )\n");
}
processSQLNamePattern(pset.db, &buf, pattern, have_where, false,
@@ -443,10 +443,10 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool
"pg_catalog.pg_function_is_visible(p.oid)");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
" AND n.nspname <> 'information_schema'\n");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2, 4;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2, 4;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -497,19 +497,19 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
gettext_noop("Size"));
if (verbose && pset.sversion >= 80300)
{
- appendPQExpBuffer(&buf,
- " pg_catalog.array_to_string(\n"
- " ARRAY(\n"
- " SELECT e.enumlabel\n"
- " FROM pg_catalog.pg_enum e\n"
- " WHERE e.enumtypid = t.oid\n");
+ appendPQExpBufferStr(&buf,
+ " pg_catalog.array_to_string(\n"
+ " ARRAY(\n"
+ " SELECT e.enumlabel\n"
+ " FROM pg_catalog.pg_enum e\n"
+ " WHERE e.enumtypid = t.oid\n");
if (pset.sversion >= 90100)
- appendPQExpBuffer(&buf,
- " ORDER BY e.enumsortorder\n");
+ appendPQExpBufferStr(&buf,
+ " ORDER BY e.enumsortorder\n");
else
- appendPQExpBuffer(&buf,
- " ORDER BY e.oid\n");
+ appendPQExpBufferStr(&buf,
+ " ORDER BY e.oid\n");
appendPQExpBuffer(&buf,
" ),\n"
@@ -520,22 +520,22 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
if (verbose && pset.sversion >= 90200)
{
printACLColumn(&buf, "t.typacl");
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
}
appendPQExpBuffer(&buf,
" pg_catalog.obj_description(t.oid, 'pg_type') as \"%s\"\n",
gettext_noop("Description"));
- appendPQExpBuffer(&buf, "FROM pg_catalog.pg_type t\n"
+ appendPQExpBufferStr(&buf, "FROM pg_catalog.pg_type t\n"
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n");
/*
* do not include complex types (typrelid!=0) unless they are standalone
* composite types
*/
- appendPQExpBuffer(&buf, "WHERE (t.typrelid = 0 ");
- appendPQExpBuffer(&buf, "OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c "
+ appendPQExpBufferStr(&buf, "WHERE (t.typrelid = 0 ");
+ appendPQExpBufferStr(&buf, "OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c "
"WHERE c.oid = t.typrelid))\n");
/*
@@ -543,13 +543,13 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
* that their names start with underscore)
*/
if (pset.sversion >= 80300)
- appendPQExpBuffer(&buf, " AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)\n");
+ appendPQExpBufferStr(&buf, " AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)\n");
else
- appendPQExpBuffer(&buf, " AND t.typname !~ '^_'\n");
+ appendPQExpBufferStr(&buf, " AND t.typname !~ '^_'\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
/* Match name pattern against either internal or external name */
processSQLNamePattern(pset.db, &buf, pattern, true, false,
@@ -557,7 +557,7 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
"pg_catalog.format_type(t.oid, NULL)",
"pg_catalog.pg_type_is_visible(t.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -617,14 +617,14 @@ describeOperators(const char *pattern, bool showSystem)
gettext_noop("Description"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, !showSystem && !pattern, true,
"n.nspname", "o.oprname", NULL,
"pg_catalog.pg_operator_is_visible(o.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2, 3, 4;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2, 3, 4;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -669,7 +669,7 @@ listAllDbs(const char *pattern, bool verbose)
" d.datctype as \"%s\",\n",
gettext_noop("Collate"),
gettext_noop("Ctype"));
- appendPQExpBuffer(&buf, " ");
+ appendPQExpBufferStr(&buf, " ");
printACLColumn(&buf, "d.datacl");
if (verbose && pset.sversion >= 80200)
appendPQExpBuffer(&buf,
@@ -686,17 +686,17 @@ listAllDbs(const char *pattern, bool verbose)
appendPQExpBuffer(&buf,
",\n pg_catalog.shobj_description(d.oid, 'pg_database') as \"%s\"",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_database d\n");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_database d\n");
if (verbose && pset.sversion >= 80000)
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
" JOIN pg_catalog.pg_tablespace t on d.dattablespace = t.oid\n");
if (pattern)
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "d.datname", NULL, NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
if (!res)
@@ -761,7 +761,7 @@ permissionsList(const char *pattern)
" ), E'\\n') AS \"%s\"",
gettext_noop("Column access privileges"));
- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_class c\n"
+ appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_class c\n"
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n"
"WHERE c.relkind IN ('r', 'v', 'm', 'S', 'f')\n");
@@ -775,7 +775,7 @@ permissionsList(const char *pattern)
"n.nspname", "c.relname", NULL,
"n.nspname !~ '^pg_' AND pg_catalog.pg_table_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
if (!res)
@@ -839,8 +839,8 @@ listDefaultACLs(const char *pattern)
printACLColumn(&buf, "d.defaclacl");
- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_default_acl d\n"
- " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.defaclnamespace\n");
+ appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_default_acl d\n"
+ " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.defaclnamespace\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL,
@@ -848,7 +848,7 @@ listDefaultACLs(const char *pattern)
"pg_catalog.pg_get_userbyid(d.defaclrole)",
NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1, 2, 3;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2, 3;");
res = PSQLexec(buf.data, false);
if (!res)
@@ -914,8 +914,8 @@ objectDescription(const char *pattern, bool showSystem)
gettext_noop("constraint"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, !showSystem && !pattern,
false, "n.nspname", "pgc.conname", NULL,
@@ -941,8 +941,8 @@ objectDescription(const char *pattern, bool showSystem)
gettext_noop("operator class"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "o.opcname", NULL,
@@ -970,8 +970,8 @@ objectDescription(const char *pattern, bool showSystem)
gettext_noop("operator family"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "opf.opfname", NULL,
@@ -992,8 +992,8 @@ objectDescription(const char *pattern, bool showSystem)
gettext_noop("rule"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "r.rulename", NULL,
@@ -1012,18 +1012,18 @@ objectDescription(const char *pattern, bool showSystem)
gettext_noop("trigger"));
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, !showSystem && !pattern, false,
"n.nspname", "t.tgname", NULL,
"pg_catalog.pg_table_is_visible(c.oid)");
- appendPQExpBuffer(&buf,
- ") AS tt\n"
- " JOIN pg_catalog.pg_description d ON (tt.oid = d.objoid AND tt.tableoid = d.classoid AND d.objsubid = 0)\n");
+ appendPQExpBufferStr(&buf,
+ ") AS tt\n"
+ " JOIN pg_catalog.pg_description d ON (tt.oid = d.objoid AND tt.tableoid = d.classoid AND d.objsubid = 0)\n");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2, 3;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2, 3;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -1067,14 +1067,14 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem)
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, !showSystem && !pattern, false,
"n.nspname", "c.relname", NULL,
"pg_catalog.pg_table_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 2, 3;");
+ appendPQExpBufferStr(&buf, "ORDER BY 2, 3;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -1330,30 +1330,30 @@ describeOneTableDetails(const char *schemaname,
* you are adding column(s) preceding to verbose-only columns.
*/
printfPQExpBuffer(&buf, "SELECT a.attname,");
- appendPQExpBuffer(&buf, "\n pg_catalog.format_type(a.atttypid, a.atttypmod),"
- "\n (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)"
- "\n FROM pg_catalog.pg_attrdef d"
- "\n WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),"
- "\n a.attnotnull, a.attnum,");
+ appendPQExpBufferStr(&buf, "\n pg_catalog.format_type(a.atttypid, a.atttypmod),"
+ "\n (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)"
+ "\n FROM pg_catalog.pg_attrdef d"
+ "\n WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),"
+ "\n a.attnotnull, a.attnum,");
if (pset.sversion >= 90100)
- appendPQExpBuffer(&buf, "\n (SELECT c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type t\n"
- " WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation) AS attcollation");
+ appendPQExpBufferStr(&buf, "\n (SELECT c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type t\n"
+ " WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation) AS attcollation");
else
- appendPQExpBuffer(&buf, "\n NULL AS attcollation");
+ appendPQExpBufferStr(&buf, "\n NULL AS attcollation");
if (tableinfo.relkind == 'i')
- appendPQExpBuffer(&buf, ",\n pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE) AS indexdef");
+ appendPQExpBufferStr(&buf, ",\n pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE) AS indexdef");
else
- appendPQExpBuffer(&buf, ",\n NULL AS indexdef");
+ appendPQExpBufferStr(&buf, ",\n NULL AS indexdef");
if (tableinfo.relkind == 'f' && pset.sversion >= 90200)
- appendPQExpBuffer(&buf, ",\n CASE WHEN attfdwoptions IS NULL THEN '' ELSE "
+ appendPQExpBufferStr(&buf, ",\n CASE WHEN attfdwoptions IS NULL THEN '' ELSE "
" '(' || array_to_string(ARRAY(SELECT quote_ident(option_name) || ' ' || quote_literal(option_value) FROM "
" pg_options_to_table(attfdwoptions)), ', ') || ')' END AS attfdwoptions");
else
- appendPQExpBuffer(&buf, ",\n NULL AS attfdwoptions");
+ appendPQExpBufferStr(&buf, ",\n NULL AS attfdwoptions");
if (verbose)
{
- appendPQExpBuffer(&buf, ",\n a.attstorage");
- appendPQExpBuffer(&buf, ",\n CASE WHEN a.attstattarget=-1 THEN NULL ELSE a.attstattarget END AS attstattarget");
+ appendPQExpBufferStr(&buf, ",\n a.attstorage");
+ appendPQExpBufferStr(&buf, ",\n CASE WHEN a.attstattarget=-1 THEN NULL ELSE a.attstattarget END AS attstattarget");
/*
* In 9.0+, we have column comments for: relations, views, composite
@@ -1362,12 +1362,12 @@ describeOneTableDetails(const char *schemaname,
if (tableinfo.relkind == 'r' || tableinfo.relkind == 'v' ||
tableinfo.relkind == 'm' ||
tableinfo.relkind == 'f' || tableinfo.relkind == 'c')
- appendPQExpBuffer(&buf, ", pg_catalog.col_description(a.attrelid, a.attnum)");
+ appendPQExpBufferStr(&buf, ", pg_catalog.col_description(a.attrelid, a.attnum)");
}
- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_attribute a");
+ appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_attribute a");
appendPQExpBuffer(&buf, "\nWHERE a.attrelid = '%s' AND a.attnum > 0 AND NOT a.attisdropped", oid);
- appendPQExpBuffer(&buf, "\nORDER BY a.attnum;");
+ appendPQExpBufferStr(&buf, "\nORDER BY a.attnum;");
res = PSQLexec(buf.data, false);
if (!res)
@@ -1589,25 +1589,25 @@ describeOneTableDetails(const char *schemaname,
printfPQExpBuffer(&buf,
"SELECT i.indisunique, i.indisprimary, i.indisclustered, ");
if (pset.sversion >= 80200)
- appendPQExpBuffer(&buf, "i.indisvalid,\n");
+ appendPQExpBufferStr(&buf, "i.indisvalid,\n");
else
- appendPQExpBuffer(&buf, "true AS indisvalid,\n");
+ appendPQExpBufferStr(&buf, "true AS indisvalid,\n");
if (pset.sversion >= 90000)
- appendPQExpBuffer(&buf,
- " (NOT i.indimmediate) AND "
- "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
- "WHERE conrelid = i.indrelid AND "
- "conindid = i.indexrelid AND "
- "contype IN ('p','u','x') AND "
- "condeferrable) AS condeferrable,\n"
- " (NOT i.indimmediate) AND "
- "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
- "WHERE conrelid = i.indrelid AND "
- "conindid = i.indexrelid AND "
- "contype IN ('p','u','x') AND "
- "condeferred) AS condeferred,\n");
+ appendPQExpBufferStr(&buf,
+ " (NOT i.indimmediate) AND "
+ "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
+ "WHERE conrelid = i.indrelid AND "
+ "conindid = i.indexrelid AND "
+ "contype IN ('p','u','x') AND "
+ "condeferrable) AS condeferrable,\n"
+ " (NOT i.indimmediate) AND "
+ "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
+ "WHERE conrelid = i.indrelid AND "
+ "conindid = i.indexrelid AND "
+ "contype IN ('p','u','x') AND "
+ "condeferred) AS condeferred,\n");
else
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
" false AS condeferrable, false AS condeferred,\n");
if (pset.sversion >= 90400)
@@ -1659,16 +1659,16 @@ describeOneTableDetails(const char *schemaname,
appendPQExpBuffer(&tmpbuf, _(", predicate (%s)"), indpred);
if (strcmp(indisclustered, "t") == 0)
- appendPQExpBuffer(&tmpbuf, _(", clustered"));
+ appendPQExpBufferStr(&tmpbuf, _(", clustered"));
if (strcmp(indisvalid, "t") != 0)
- appendPQExpBuffer(&tmpbuf, _(", invalid"));
+ appendPQExpBufferStr(&tmpbuf, _(", invalid"));
if (strcmp(deferrable, "t") == 0)
- appendPQExpBuffer(&tmpbuf, _(", deferrable"));
+ appendPQExpBufferStr(&tmpbuf, _(", deferrable"));
if (strcmp(deferred, "t") == 0)
- appendPQExpBuffer(&tmpbuf, _(", initially deferred"));
+ appendPQExpBufferStr(&tmpbuf, _(", initially deferred"));
if (strcmp(indisreplident, "t") == 0)
appendPQExpBuffer(&tmpbuf, _(", replica identity"));
@@ -1731,29 +1731,29 @@ describeOneTableDetails(const char *schemaname,
printfPQExpBuffer(&buf,
"SELECT c2.relname, i.indisprimary, i.indisunique, i.indisclustered, ");
if (pset.sversion >= 80200)
- appendPQExpBuffer(&buf, "i.indisvalid, ");
+ appendPQExpBufferStr(&buf, "i.indisvalid, ");
else
- appendPQExpBuffer(&buf, "true as indisvalid, ");
- appendPQExpBuffer(&buf, "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true),\n ");
+ appendPQExpBufferStr(&buf, "true as indisvalid, ");
+ appendPQExpBufferStr(&buf, "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true),\n ");
if (pset.sversion >= 90000)
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
"pg_catalog.pg_get_constraintdef(con.oid, true), "
"contype, condeferrable, condeferred");
else
- appendPQExpBuffer(&buf,
- "null AS constraintdef, null AS contype, "
- "false AS condeferrable, false AS condeferred");
+ appendPQExpBufferStr(&buf,
+ "null AS constraintdef, null AS contype, "
+ "false AS condeferrable, false AS condeferred");
if (pset.sversion >= 90400)
- appendPQExpBuffer(&buf, ", i.indisreplident");
+ appendPQExpBufferStr(&buf, ", i.indisreplident");
else
- appendPQExpBuffer(&buf, ", false AS indisreplident");
+ appendPQExpBufferStr(&buf, ", false AS indisreplident");
if (pset.sversion >= 80000)
- appendPQExpBuffer(&buf, ", c2.reltablespace");
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i\n");
+ appendPQExpBufferStr(&buf, ", c2.reltablespace");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i\n");
if (pset.sversion >= 90000)
- appendPQExpBuffer(&buf,
- " LEFT JOIN pg_catalog.pg_constraint con ON (conrelid = i.indrelid AND conindid = i.indexrelid AND contype IN ('p','u','x'))\n");
+ appendPQExpBufferStr(&buf,
+ " LEFT JOIN pg_catalog.pg_constraint con ON (conrelid = i.indrelid AND conindid = i.indexrelid AND contype IN ('p','u','x'))\n");
appendPQExpBuffer(&buf,
"WHERE c.oid = '%s' AND c.oid = i.indrelid AND i.indexrelid = c2.oid\n"
"ORDER BY i.indisprimary DESC, i.indisunique DESC, c2.relname;",
@@ -1786,13 +1786,13 @@ describeOneTableDetails(const char *schemaname,
/* Label as primary key or unique (but not both) */
if (strcmp(PQgetvalue(result, i, 1), "t") == 0)
- appendPQExpBuffer(&buf, " PRIMARY KEY,");
+ appendPQExpBufferStr(&buf, " PRIMARY KEY,");
else if (strcmp(PQgetvalue(result, i, 2), "t") == 0)
{
if (strcmp(PQgetvalue(result, i, 7), "u") == 0)
- appendPQExpBuffer(&buf, " UNIQUE CONSTRAINT,");
+ appendPQExpBufferStr(&buf, " UNIQUE CONSTRAINT,");
else
- appendPQExpBuffer(&buf, " UNIQUE,");
+ appendPQExpBufferStr(&buf, " UNIQUE,");
}
/* Everything after "USING" is echoed verbatim */
@@ -1804,18 +1804,18 @@ describeOneTableDetails(const char *schemaname,
/* Need these for deferrable PK/UNIQUE indexes */
if (strcmp(PQgetvalue(result, i, 8), "t") == 0)
- appendPQExpBuffer(&buf, " DEFERRABLE");
+ appendPQExpBufferStr(&buf, " DEFERRABLE");
if (strcmp(PQgetvalue(result, i, 9), "t") == 0)
- appendPQExpBuffer(&buf, " INITIALLY DEFERRED");
+ appendPQExpBufferStr(&buf, " INITIALLY DEFERRED");
}
/* Add these for all cases */
if (strcmp(PQgetvalue(result, i, 3), "t") == 0)
- appendPQExpBuffer(&buf, " CLUSTER");
+ appendPQExpBufferStr(&buf, " CLUSTER");
if (strcmp(PQgetvalue(result, i, 4), "t") != 0)
- appendPQExpBuffer(&buf, " INVALID");
+ appendPQExpBufferStr(&buf, " INVALID");
if (strcmp(PQgetvalue(result, i, 10), "t") == 0)
appendPQExpBuffer(&buf, " REPLICA IDENTITY");
@@ -2079,17 +2079,17 @@ describeOneTableDetails(const char *schemaname,
(pset.sversion >= 90000 ? ", true" : ""),
oid);
if (pset.sversion >= 90000)
- appendPQExpBuffer(&buf, "NOT t.tgisinternal");
+ appendPQExpBufferStr(&buf, "NOT t.tgisinternal");
else if (pset.sversion >= 80300)
- appendPQExpBuffer(&buf, "t.tgconstraint = 0");
+ appendPQExpBufferStr(&buf, "t.tgconstraint = 0");
else
- appendPQExpBuffer(&buf,
- "(NOT tgisconstraint "
- " OR NOT EXISTS"
- " (SELECT 1 FROM pg_catalog.pg_depend d "
- " JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) "
- " WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f'))");
- appendPQExpBuffer(&buf, "\nORDER BY 1;");
+ appendPQExpBufferStr(&buf,
+ "(NOT tgisconstraint "
+ " OR NOT EXISTS"
+ " (SELECT 1 FROM pg_catalog.pg_depend d "
+ " JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) "
+ " WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f'))");
+ appendPQExpBufferStr(&buf, "\nORDER BY 1;");
result = PSQLexec(buf.data, false);
if (!result)
@@ -2252,7 +2252,7 @@ describeOneTableDetails(const char *schemaname,
printfPQExpBuffer(&buf, "%*s %s",
sw, "", PQgetvalue(result, i, 0));
if (i < tuples - 1)
- appendPQExpBuffer(&buf, ",");
+ appendPQExpBufferStr(&buf, ",");
printTableAddFooter(&cont, buf.data);
}
@@ -2296,7 +2296,7 @@ describeOneTableDetails(const char *schemaname,
printfPQExpBuffer(&buf, "%*s %s",
ctw, "", PQgetvalue(result, i, 0));
if (i < tuples - 1)
- appendPQExpBuffer(&buf, ",");
+ appendPQExpBufferChar(&buf, ',');
printTableAddFooter(&cont, buf.data);
}
@@ -2506,7 +2506,7 @@ describeRoles(const char *pattern, bool verbose)
NULL, "u.usename", NULL, NULL);
}
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
if (!res)
@@ -2552,10 +2552,10 @@ describeRoles(const char *pattern, bool verbose)
if (conns >= 0)
{
if (buf.len > 0)
- appendPQExpBufferStr(&buf, "\n");
+ appendPQExpBufferChar(&buf, '\n');
if (conns == 0)
- appendPQExpBuffer(&buf, _("No connections"));
+ appendPQExpBufferStr(&buf, _("No connections"));
else
appendPQExpBuffer(&buf, ngettext("%d connection",
"%d connections",
@@ -2754,37 +2754,37 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
gettext_noop("Description"));
}
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_class c"
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_class c"
"\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace");
if (showIndexes)
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
"\n LEFT JOIN pg_catalog.pg_index i ON i.indexrelid = c.oid"
"\n LEFT JOIN pg_catalog.pg_class c2 ON i.indrelid = c2.oid");
- appendPQExpBuffer(&buf, "\nWHERE c.relkind IN (");
+ appendPQExpBufferStr(&buf, "\nWHERE c.relkind IN (");
if (showTables)
- appendPQExpBuffer(&buf, "'r',");
+ appendPQExpBufferStr(&buf, "'r',");
if (showViews)
- appendPQExpBuffer(&buf, "'v',");
+ appendPQExpBufferStr(&buf, "'v',");
if (showMatViews)
- appendPQExpBuffer(&buf, "'m',");
+ appendPQExpBufferStr(&buf, "'m',");
if (showIndexes)
- appendPQExpBuffer(&buf, "'i',");
+ appendPQExpBufferStr(&buf, "'i',");
if (showSeq)
- appendPQExpBuffer(&buf, "'S',");
+ appendPQExpBufferStr(&buf, "'S',");
if (showSystem || pattern)
- appendPQExpBuffer(&buf, "'s',"); /* was RELKIND_SPECIAL in <=
+ appendPQExpBufferStr(&buf, "'s',"); /* was RELKIND_SPECIAL in <=
* 8.1 */
if (showForeign)
- appendPQExpBuffer(&buf, "'f',");
+ appendPQExpBufferStr(&buf, "'f',");
- appendPQExpBuffer(&buf, "''"); /* dummy */
- appendPQExpBuffer(&buf, ")\n");
+ appendPQExpBufferStr(&buf, "''"); /* dummy */
+ appendPQExpBufferStr(&buf, ")\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
/*
* TOAST objects are suppressed unconditionally. Since we don't provide
@@ -2792,13 +2792,13 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
* in any case; it seems a bit confusing to allow their indexes to be
* shown. Use plain \d if you really need to look at a TOAST table/index.
*/
- appendPQExpBuffer(&buf, " AND n.nspname !~ '^pg_toast'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname !~ '^pg_toast'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "c.relname", NULL,
"pg_catalog.pg_table_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1,2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1,2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -2881,10 +2881,10 @@ listLanguages(const char *pattern, bool verbose, bool showSystem)
NULL, "l.lanname", NULL, NULL);
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, "WHERE l.lanplcallfoid != 0\n");
+ appendPQExpBufferStr(&buf, "WHERE l.lanplcallfoid != 0\n");
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -2926,9 +2926,9 @@ listDomains(const char *pattern, bool verbose, bool showSystem)
gettext_noop("Type"));
if (pset.sversion >= 90100)
- appendPQExpBuffer(&buf,
- " COALESCE((SELECT ' collate ' || c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type bt\n"
- " WHERE c.oid = t.typcollation AND bt.oid = t.typbasetype AND t.typcollation <> bt.typcollation), '') ||\n");
+ appendPQExpBufferStr(&buf,
+ " COALESCE((SELECT ' collate ' || c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type bt\n"
+ " WHERE c.oid = t.typcollation AND bt.oid = t.typbasetype AND t.typcollation <> bt.typcollation), '') ||\n");
appendPQExpBuffer(&buf,
" CASE WHEN t.typnotnull THEN ' not null' ELSE '' END ||\n"
" CASE WHEN t.typdefault IS NOT NULL THEN ' default ' || t.typdefault ELSE '' END\n"
@@ -2943,7 +2943,7 @@ listDomains(const char *pattern, bool verbose, bool showSystem)
{
if (pset.sversion >= 90200)
{
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
printACLColumn(&buf, "t.typacl");
}
appendPQExpBuffer(&buf,
@@ -2951,27 +2951,27 @@ listDomains(const char *pattern, bool verbose, bool showSystem)
gettext_noop("Description"));
}
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_type t\n"
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_type t\n"
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n");
if (verbose)
- appendPQExpBuffer(&buf,
- " LEFT JOIN pg_catalog.pg_description d "
- "ON d.classoid = t.tableoid AND d.objoid = t.oid "
- "AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ " LEFT JOIN pg_catalog.pg_description d "
+ "ON d.classoid = t.tableoid AND d.objoid = t.oid "
+ "AND d.objsubid = 0\n");
- appendPQExpBuffer(&buf, "WHERE t.typtype = 'd'\n");
+ appendPQExpBufferStr(&buf, "WHERE t.typtype = 'd'\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
- " AND n.nspname <> 'information_schema'\n");
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ " AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "t.typname", NULL,
"pg_catalog.pg_type_is_visible(t.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3022,29 +3022,29 @@ listConversions(const char *pattern, bool verbose, bool showSystem)
",\n d.description AS \"%s\"",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_conversion c\n"
- " JOIN pg_catalog.pg_namespace n "
- "ON n.oid = c.connamespace\n");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_conversion c\n"
+ " JOIN pg_catalog.pg_namespace n "
+ "ON n.oid = c.connamespace\n");
if (verbose)
- appendPQExpBuffer(&buf,
- "LEFT JOIN pg_catalog.pg_description d "
- "ON d.classoid = c.tableoid\n"
- " AND d.objoid = c.oid "
- "AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ "LEFT JOIN pg_catalog.pg_description d "
+ "ON d.classoid = c.tableoid\n"
+ " AND d.objoid = c.oid "
+ "AND d.objsubid = 0\n");
- appendPQExpBuffer(&buf, "WHERE true\n");
+ appendPQExpBufferStr(&buf, "WHERE true\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
" AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "c.conname", NULL,
"pg_catalog.pg_conversion_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3099,13 +3099,13 @@ listEventTriggers(const char *pattern, bool verbose)
appendPQExpBuffer(&buf,
",\npg_catalog.obj_description(e.oid, 'pg_event_trigger') as \"%s\"",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_event_trigger e ");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_event_trigger e ");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "evtname", NULL, NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1");
+ appendPQExpBufferStr(&buf, "ORDER BY 1");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3167,25 +3167,25 @@ listCasts(const char *pattern, bool verbose)
",\n d.description AS \"%s\"\n",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
"FROM pg_catalog.pg_cast c LEFT JOIN pg_catalog.pg_proc p\n"
- " ON c.castfunc = p.oid\n"
- " LEFT JOIN pg_catalog.pg_type ts\n"
- " ON c.castsource = ts.oid\n"
- " LEFT JOIN pg_catalog.pg_namespace ns\n"
- " ON ns.oid = ts.typnamespace\n"
- " LEFT JOIN pg_catalog.pg_type tt\n"
- " ON c.casttarget = tt.oid\n"
- " LEFT JOIN pg_catalog.pg_namespace nt\n"
- " ON nt.oid = tt.typnamespace\n");
+ " ON c.castfunc = p.oid\n"
+ " LEFT JOIN pg_catalog.pg_type ts\n"
+ " ON c.castsource = ts.oid\n"
+ " LEFT JOIN pg_catalog.pg_namespace ns\n"
+ " ON ns.oid = ts.typnamespace\n"
+ " LEFT JOIN pg_catalog.pg_type tt\n"
+ " ON c.casttarget = tt.oid\n"
+ " LEFT JOIN pg_catalog.pg_namespace nt\n"
+ " ON nt.oid = tt.typnamespace\n");
if (verbose)
- appendPQExpBuffer(&buf,
- " LEFT JOIN pg_catalog.pg_description d\n"
- " ON d.classoid = c.tableoid AND d.objoid = "
- "c.oid AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ " LEFT JOIN pg_catalog.pg_description d\n"
+ " ON d.classoid = c.tableoid AND d.objoid = "
+ "c.oid AND d.objsubid = 0\n");
- appendPQExpBuffer(&buf, "WHERE ( (true");
+ appendPQExpBufferStr(&buf, "WHERE ( (true");
/*
* Match name pattern against either internal or external name of either
@@ -3196,14 +3196,14 @@ listCasts(const char *pattern, bool verbose)
"pg_catalog.format_type(ts.oid, NULL)",
"pg_catalog.pg_type_is_visible(ts.oid)");
- appendPQExpBuffer(&buf, ") OR (true");
+ appendPQExpBufferStr(&buf, ") OR (true");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"nt.nspname", "tt.typname",
"pg_catalog.format_type(tt.oid, NULL)",
"pg_catalog.pg_type_is_visible(tt.oid)");
- appendPQExpBuffer(&buf, ") )\nORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, ") )\nORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3258,12 +3258,12 @@ listCollations(const char *pattern, bool verbose, bool showSystem)
",\n pg_catalog.obj_description(c.oid, 'pg_collation') AS \"%s\"",
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
"\nFROM pg_catalog.pg_collation c, pg_catalog.pg_namespace n\n"
"WHERE n.oid = c.collnamespace\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n"
+ appendPQExpBufferStr(&buf, " AND n.nspname <> 'pg_catalog'\n"
" AND n.nspname <> 'information_schema'\n");
/*
@@ -3272,13 +3272,13 @@ listCollations(const char *pattern, bool verbose, bool showSystem)
* unusable collations, so you will need to hack name pattern processing
* somehow to avoid inconsistent behavior.
*/
- appendPQExpBuffer(&buf, " AND c.collencoding IN (-1, pg_catalog.pg_char_to_encoding(pg_catalog.getdatabaseencoding()))\n");
+ appendPQExpBufferStr(&buf, " AND c.collencoding IN (-1, pg_catalog.pg_char_to_encoding(pg_catalog.getdatabaseencoding()))\n");
processSQLNamePattern(pset.db, &buf, pattern, true, false,
"n.nspname", "c.collname", NULL,
"pg_catalog.pg_collation_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3317,7 +3317,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem)
if (verbose)
{
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
printACLColumn(&buf, "n.nspacl");
appendPQExpBuffer(&buf,
",\n pg_catalog.obj_description(n.oid, 'pg_namespace') AS \"%s\"",
@@ -3328,7 +3328,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem)
"\nFROM pg_catalog.pg_namespace n\n");
if (!showSystem && !pattern)
- appendPQExpBuffer(&buf,
+ appendPQExpBufferStr(&buf,
"WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'\n");
processSQLNamePattern(pset.db, &buf, pattern,
@@ -3336,7 +3336,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem)
NULL, "n.nspname", NULL,
NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3393,7 +3393,7 @@ listTSParsers(const char *pattern, bool verbose)
"n.nspname", "p.prsname", NULL,
"pg_catalog.pg_ts_parser_is_visible(p.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3434,7 +3434,7 @@ listTSParsersVerbose(const char *pattern)
"n.nspname", "p.prsname", NULL,
"pg_catalog.pg_ts_parser_is_visible(p.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3630,14 +3630,14 @@ listTSDictionaries(const char *pattern, bool verbose)
" pg_catalog.obj_description(d.oid, 'pg_ts_dict') as \"%s\"\n",
gettext_noop("Description"));
- appendPQExpBuffer(&buf, "FROM pg_catalog.pg_ts_dict d\n"
+ appendPQExpBufferStr(&buf, "FROM pg_catalog.pg_ts_dict d\n"
"LEFT JOIN pg_catalog.pg_namespace n ON n.oid = d.dictnamespace\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
"n.nspname", "d.dictname", NULL,
"pg_catalog.pg_ts_dict_is_visible(d.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3698,14 +3698,14 @@ listTSTemplates(const char *pattern, bool verbose)
gettext_noop("Name"),
gettext_noop("Description"));
- appendPQExpBuffer(&buf, "FROM pg_catalog.pg_ts_template t\n"
+ appendPQExpBufferStr(&buf, "FROM pg_catalog.pg_ts_template t\n"
"LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.tmplnamespace\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
"n.nspname", "t.tmplname", NULL,
"pg_catalog.pg_ts_template_is_visible(t.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3762,7 +3762,7 @@ listTSConfigs(const char *pattern, bool verbose)
"n.nspname", "c.cfgname", NULL,
"pg_catalog.pg_ts_config_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3804,7 +3804,7 @@ listTSConfigsVerbose(const char *pattern)
"n.nspname", "c.cfgname", NULL,
"pg_catalog.pg_ts_config_is_visible(c.oid)");
- appendPQExpBuffer(&buf, "ORDER BY 3, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 3, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -3955,7 +3955,7 @@ listForeignDataWrappers(const char *pattern, bool verbose)
if (verbose)
{
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
printACLColumn(&buf, "fdwacl");
appendPQExpBuffer(&buf,
",\n CASE WHEN fdwoptions IS NULL THEN '' ELSE "
@@ -3972,18 +3972,18 @@ listForeignDataWrappers(const char *pattern, bool verbose)
gettext_noop("Description"));
}
- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_foreign_data_wrapper fdw\n");
+ appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_foreign_data_wrapper fdw\n");
if (verbose && pset.sversion >= 90100)
- appendPQExpBuffer(&buf,
- "LEFT JOIN pg_catalog.pg_description d\n"
- " ON d.classoid = fdw.tableoid "
- "AND d.objoid = fdw.oid AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ "LEFT JOIN pg_catalog.pg_description d\n"
+ " ON d.classoid = fdw.tableoid "
+ "AND d.objoid = fdw.oid AND d.objsubid = 0\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "fdwname", NULL, NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -4030,7 +4030,7 @@ listForeignServers(const char *pattern, bool verbose)
if (verbose)
{
- appendPQExpBuffer(&buf, ",\n ");
+ appendPQExpBufferStr(&buf, ",\n ");
printACLColumn(&buf, "s.srvacl");
appendPQExpBuffer(&buf,
",\n"
@@ -4049,20 +4049,20 @@ listForeignServers(const char *pattern, bool verbose)
gettext_noop("Description"));
}
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_foreign_server s\n"
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_foreign_server s\n"
" JOIN pg_catalog.pg_foreign_data_wrapper f ON f.oid=s.srvfdw\n");
if (verbose)
- appendPQExpBuffer(&buf,
- "LEFT JOIN pg_description d\n "
- "ON d.classoid = s.tableoid AND d.objoid = s.oid "
- "AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ "LEFT JOIN pg_description d\n "
+ "ON d.classoid = s.tableoid AND d.objoid = s.oid "
+ "AND d.objsubid = 0\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "s.srvname", NULL, NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -4115,12 +4115,12 @@ listUserMappings(const char *pattern, bool verbose)
" END AS \"%s\"",
gettext_noop("FDW Options"));
- appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_user_mappings um\n");
+ appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_user_mappings um\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "um.srvname", "um.usename", NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -4177,24 +4177,24 @@ listForeignTables(const char *pattern, bool verbose)
gettext_noop("FDW Options"),
gettext_noop("Description"));
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_foreign_table ft\n"
- " INNER JOIN pg_catalog.pg_class c"
- " ON c.oid = ft.ftrelid\n"
- " INNER JOIN pg_catalog.pg_namespace n"
- " ON n.oid = c.relnamespace\n"
- " INNER JOIN pg_catalog.pg_foreign_server s"
- " ON s.oid = ft.ftserver\n");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_foreign_table ft\n"
+ " INNER JOIN pg_catalog.pg_class c"
+ " ON c.oid = ft.ftrelid\n"
+ " INNER JOIN pg_catalog.pg_namespace n"
+ " ON n.oid = c.relnamespace\n"
+ " INNER JOIN pg_catalog.pg_foreign_server s"
+ " ON s.oid = ft.ftserver\n");
if (verbose)
- appendPQExpBuffer(&buf,
- " LEFT JOIN pg_catalog.pg_description d\n"
- " ON d.classoid = c.tableoid AND "
- "d.objoid = c.oid AND d.objsubid = 0\n");
+ appendPQExpBufferStr(&buf,
+ " LEFT JOIN pg_catalog.pg_description d\n"
+ " ON d.classoid = c.tableoid AND "
+ "d.objoid = c.oid AND d.objsubid = 0\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "n.nspname", "c.relname", NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1, 2;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1, 2;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -4248,7 +4248,7 @@ listExtensions(const char *pattern)
NULL, "e.extname", NULL,
NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
@@ -4294,7 +4294,7 @@ listExtensionContents(const char *pattern)
NULL, "e.extname", NULL,
NULL);
- appendPQExpBuffer(&buf, "ORDER BY 1;");
+ appendPQExpBufferStr(&buf, "ORDER BY 1;");
res = PSQLexec(buf.data, false);
termPQExpBuffer(&buf);
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index f6c1aaf453..72f4652ac2 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3613,8 +3613,8 @@ _complete_from_query(int is_schema_query, const char *text, int state)
"pg_catalog.pg_class c") == 0 &&
strncmp(text, "pg_", 3) !=0)
{
- appendPQExpBuffer(&query_buffer,
- " AND c.relnamespace <> (SELECT oid FROM"
+ appendPQExpBufferStr(&query_buffer,
+ " AND c.relnamespace <> (SELECT oid FROM"
" pg_catalog.pg_namespace WHERE nspname = 'pg_catalog')");
}
diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c
index 0ac213d3c3..cd54e8f47f 100644
--- a/src/bin/scripts/clusterdb.c
+++ b/src/bin/scripts/clusterdb.c
@@ -196,12 +196,12 @@ cluster_one_database(const char *dbname, bool verbose, const char *table,
initPQExpBuffer(&sql);
- appendPQExpBuffer(&sql, "CLUSTER");
+ appendPQExpBufferStr(&sql, "CLUSTER");
if (verbose)
- appendPQExpBuffer(&sql, " VERBOSE");
+ appendPQExpBufferStr(&sql, " VERBOSE");
if (table)
appendPQExpBuffer(&sql, " %s", table);
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
conn = connectDatabase(dbname, host, port, username, prompt_password,
progname, false);
diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c
index 5b28f18a81..14cd128490 100644
--- a/src/bin/scripts/createdb.c
+++ b/src/bin/scripts/createdb.c
@@ -195,7 +195,7 @@ main(int argc, char *argv[])
if (lc_ctype)
appendPQExpBuffer(&sql, " LC_CTYPE '%s'", lc_ctype);
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
/* No point in trying to use postgres db when creating postgres db. */
if (maintenance_db == NULL && strcmp(dbname, "postgres") == 0)
@@ -222,7 +222,7 @@ main(int argc, char *argv[])
{
printfPQExpBuffer(&sql, "COMMENT ON DATABASE %s IS ", fmtId(dbname));
appendStringLiteralConn(&sql, comment, conn);
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
if (echo)
printf("%s", sql.data);
diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c
index d1542d945a..83623ea879 100644
--- a/src/bin/scripts/createuser.c
+++ b/src/bin/scripts/createuser.c
@@ -254,10 +254,10 @@ main(int argc, char *argv[])
if (newpassword)
{
if (encrypted == TRI_YES)
- appendPQExpBuffer(&sql, " ENCRYPTED");
+ appendPQExpBufferStr(&sql, " ENCRYPTED");
if (encrypted == TRI_NO)
- appendPQExpBuffer(&sql, " UNENCRYPTED");
- appendPQExpBuffer(&sql, " PASSWORD ");
+ appendPQExpBufferStr(&sql, " UNENCRYPTED");
+ appendPQExpBufferStr(&sql, " PASSWORD ");
if (encrypted != TRI_NO)
{
@@ -277,32 +277,32 @@ main(int argc, char *argv[])
appendStringLiteralConn(&sql, newpassword, conn);
}
if (superuser == TRI_YES)
- appendPQExpBuffer(&sql, " SUPERUSER");
+ appendPQExpBufferStr(&sql, " SUPERUSER");
if (superuser == TRI_NO)
- appendPQExpBuffer(&sql, " NOSUPERUSER");
+ appendPQExpBufferStr(&sql, " NOSUPERUSER");
if (createdb == TRI_YES)
- appendPQExpBuffer(&sql, " CREATEDB");
+ appendPQExpBufferStr(&sql, " CREATEDB");
if (createdb == TRI_NO)
- appendPQExpBuffer(&sql, " NOCREATEDB");
+ appendPQExpBufferStr(&sql, " NOCREATEDB");
if (createrole == TRI_YES)
- appendPQExpBuffer(&sql, " CREATEROLE");
+ appendPQExpBufferStr(&sql, " CREATEROLE");
if (createrole == TRI_NO)
- appendPQExpBuffer(&sql, " NOCREATEROLE");
+ appendPQExpBufferStr(&sql, " NOCREATEROLE");
if (inherit == TRI_YES)
- appendPQExpBuffer(&sql, " INHERIT");
+ appendPQExpBufferStr(&sql, " INHERIT");
if (inherit == TRI_NO)
- appendPQExpBuffer(&sql, " NOINHERIT");
+ appendPQExpBufferStr(&sql, " NOINHERIT");
if (login == TRI_YES)
- appendPQExpBuffer(&sql, " LOGIN");
+ appendPQExpBufferStr(&sql, " LOGIN");
if (login == TRI_NO)
- appendPQExpBuffer(&sql, " NOLOGIN");
+ appendPQExpBufferStr(&sql, " NOLOGIN");
if (replication == TRI_YES)
- appendPQExpBuffer(&sql, " REPLICATION");
+ appendPQExpBufferStr(&sql, " REPLICATION");
if (replication == TRI_NO)
- appendPQExpBuffer(&sql, " NOREPLICATION");
+ appendPQExpBufferStr(&sql, " NOREPLICATION");
if (conn_limit != NULL)
appendPQExpBuffer(&sql, " CONNECTION LIMIT %s", conn_limit);
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
if (echo)
printf("%s", sql.data);
diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c
index 342e4c94d1..f7c09bebf8 100644
--- a/src/bin/scripts/reindexdb.c
+++ b/src/bin/scripts/reindexdb.c
@@ -246,14 +246,14 @@ reindex_one_database(const char *name, const char *dbname, const char *type,
initPQExpBuffer(&sql);
- appendPQExpBuffer(&sql, "REINDEX");
+ appendPQExpBufferStr(&sql, "REINDEX");
if (strcmp(type, "TABLE") == 0)
appendPQExpBuffer(&sql, " TABLE %s", name);
else if (strcmp(type, "INDEX") == 0)
appendPQExpBuffer(&sql, " INDEX %s", name);
else if (strcmp(type, "DATABASE") == 0)
appendPQExpBuffer(&sql, " DATABASE %s", fmtId(name));
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
conn = connectDatabase(dbname, host, port, username, prompt_password,
progname, false);
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index e4dde1fc9b..616d9339e1 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -248,13 +248,13 @@ vacuum_one_database(const char *dbname, bool full, bool verbose, bool and_analyz
if (analyze_only)
{
- appendPQExpBuffer(&sql, "ANALYZE");
+ appendPQExpBufferStr(&sql, "ANALYZE");
if (verbose)
- appendPQExpBuffer(&sql, " VERBOSE");
+ appendPQExpBufferStr(&sql, " VERBOSE");
}
else
{
- appendPQExpBuffer(&sql, "VACUUM");
+ appendPQExpBufferStr(&sql, "VACUUM");
if (PQserverVersion(conn) >= 90000)
{
const char *paren = " (";
@@ -282,23 +282,23 @@ vacuum_one_database(const char *dbname, bool full, bool verbose, bool and_analyz
sep = comma;
}
if (sep != paren)
- appendPQExpBuffer(&sql, ")");
+ appendPQExpBufferStr(&sql, ")");
}
else
{
if (full)
- appendPQExpBuffer(&sql, " FULL");
+ appendPQExpBufferStr(&sql, " FULL");
if (freeze)
- appendPQExpBuffer(&sql, " FREEZE");
+ appendPQExpBufferStr(&sql, " FREEZE");
if (verbose)
- appendPQExpBuffer(&sql, " VERBOSE");
+ appendPQExpBufferStr(&sql, " VERBOSE");
if (and_analyze)
- appendPQExpBuffer(&sql, " ANALYZE");
+ appendPQExpBufferStr(&sql, " ANALYZE");
}
}
if (table)
appendPQExpBuffer(&sql, " %s", table);
- appendPQExpBuffer(&sql, ";\n");
+ appendPQExpBufferStr(&sql, ";\n");
if (!executeMaintenanceCommand(conn, sql.data, echo))
{
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 18fcb0c237..8dd1a5960f 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -1601,9 +1601,9 @@ PQconnectPoll(PGconn *conn)
break;
default:
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext(
- "invalid connection state, "
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext(
+ "invalid connection state, "
"probably indicative of memory corruption\n"
));
goto error_return;
@@ -1695,8 +1695,8 @@ keep_going: /* We will come back to here until there is
if (usekeepalives < 0)
{
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext("keepalives parameter must be an integer\n"));
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext("keepalives parameter must be an integer\n"));
err = 1;
}
else if (usekeepalives == 0)
@@ -1920,8 +1920,8 @@ keep_going: /* We will come back to here until there is
* stub
*/
if (errno == ENOSYS)
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext("requirepeer parameter is not supported on this platform\n"));
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext("requirepeer parameter is not supported on this platform\n"));
else
appendPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not get peer credentials: %s\n"),
@@ -2084,8 +2084,8 @@ keep_going: /* We will come back to here until there is
* "verify-full" */
{
/* Require SSL, but server does not want it */
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext("server does not support SSL, but SSL was required\n"));
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext("server does not support SSL, but SSL was required\n"));
goto error_return;
}
/* Otherwise, proceed with normal startup */
@@ -2470,8 +2470,8 @@ keep_going: /* We will come back to here until there is
if (res)
{
if (res->resultStatus != PGRES_FATAL_ERROR)
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext("unexpected message from server during startup\n"));
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext("unexpected message from server during startup\n"));
else if (conn->send_appname &&
(conn->appname || conn->fbappname))
{
diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 6d0c188217..3ab2971c22 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -204,7 +204,7 @@ main(int argc, char **argv)
"AND holder.granted "
"AND holder.pid <> $1 AND holder.pid IN (");
/* The spec syntax requires at least one session; assume that here. */
- appendPQExpBuffer(&wait_query, "%s", backend_pids[1]);
+ appendPQExpBufferStr(&wait_query, backend_pids[1]);
for (i = 2; i < nconns; i++)
appendPQExpBuffer(&wait_query, ", %s", backend_pids[i]);
appendPQExpBufferStr(&wait_query,