{
Assert(fpinfo->jointype == JOIN_INNER);
Assert(fpinfo->joinclauses == NIL);
- appendStringInfo(buf, "%s", join_sql_o.data);
+ appendStringInfoString(buf, join_sql_o.data);
return;
}
}
{
Assert(fpinfo->jointype == JOIN_INNER);
Assert(fpinfo->joinclauses == NIL);
- appendStringInfo(buf, "%s", join_sql_i.data);
+ appendStringInfoString(buf, join_sql_i.data);
return;
}
}
{
List *ignore_conds = NIL;
- appendStringInfo(buf, " FROM ");
+ appendStringInfoString(buf, " FROM ");
deparseFromExprForRel(buf, root, foreignrel, true, rtindex,
&ignore_conds, params_list);
remote_conds = list_concat(remote_conds, ignore_conds);
{
List *ignore_conds = NIL;
- appendStringInfo(buf, " USING ");
+ appendStringInfoString(buf, " USING ");
deparseFromExprForRel(buf, root, foreignrel, true, rtindex,
&ignore_conds, params_list);
remote_conds = list_concat(remote_conds, ignore_conds);
* check db_database:{getattr} permission
*/
initStringInfo(&audit_name);
- appendStringInfo(&audit_name, "%s", quote_identifier(dtemplate));
+ appendStringInfoString(&audit_name, quote_identifier(dtemplate));
sepgsql_avc_check_perms_label(tcontext,
SEPG_CLASS_DB_DATABASE,
SEPG_DB_DATABASE__GETATTR,
* check db_database:{create} permission
*/
resetStringInfo(&audit_name);
- appendStringInfo(&audit_name, "%s",
- quote_identifier(NameStr(datForm->datname)));
+ appendStringInfoString(&audit_name,
+ quote_identifier(NameStr(datForm->datname)));
sepgsql_avc_check_perms_label(ncontext,
SEPG_CLASS_DB_DATABASE,
SEPG_DB_DATABASE__CREATE,
if (src1)
{
temp = quote_identifier(src1);
- appendStringInfo(&result, "%s", temp);
+ appendStringInfoString(&result, temp);
if (src1 != temp)
pfree((void *) temp);
}
appendStringInfo(&buf, " %s", av_name);
}
}
- appendStringInfo(&buf, " }");
+ appendStringInfoString(&buf, " }");
/*
* Call external audit module, if loaded
|| change->data.truncate.cascade)
{
if (change->data.truncate.restart_seqs)
- appendStringInfo(ctx->out, " restart_seqs");
+ appendStringInfoString(ctx->out, " restart_seqs");
if (change->data.truncate.cascade)
- appendStringInfo(ctx->out, " cascade");
+ appendStringInfoString(ctx->out, " cascade");
}
else
appendStringInfoString(ctx->out, " (no-flags)");
int i;
if (xlrec->flags & XLH_TRUNCATE_CASCADE)
- appendStringInfo(buf, "cascade ");
+ appendStringInfoString(buf, "cascade ");
if (xlrec->flags & XLH_TRUNCATE_RESTART_SEQS)
- appendStringInfo(buf, "restart_seqs ");
+ appendStringInfoString(buf, "restart_seqs ");
appendStringInfo(buf, "nrelids %u relids", xlrec->nrelids);
for (i = 0; i < xlrec->nrelids; i++)
appendStringInfo(buf, " %u", xlrec->relids[i]);
if (for_workers)
appendStringInfo(es->str, "JIT for worker %u:\n", worker_num);
else
- appendStringInfo(es->str, "JIT:\n");
+ appendStringInfoString(es->str, "JIT:\n");
es->indent += 1;
ExplainPropertyInteger("Functions", NULL, ji->created_functions, es);
{
case PARTITION_STRATEGY_HASH:
if (!attrsOnly)
- appendStringInfo(&buf, "HASH");
+ appendStringInfoString(&buf, "HASH");
break;
case PARTITION_STRATEGY_LIST:
if (!attrsOnly)
/* Build query */
appendPQExpBuffer(query, "CREATE_REPLICATION_SLOT \"%s\"", slot_name);
if (is_temporary)
- appendPQExpBuffer(query, " TEMPORARY");
+ appendPQExpBufferStr(query, " TEMPORARY");
if (is_physical)
{
- appendPQExpBuffer(query, " PHYSICAL");
+ appendPQExpBufferStr(query, " PHYSICAL");
if (reserve_wal)
- appendPQExpBuffer(query, " RESERVE_WAL");
+ appendPQExpBufferStr(query, " RESERVE_WAL");
}
else
{
appendPQExpBuffer(query, " LOGICAL \"%s\"", plugin);
if (PQserverVersion(conn) >= 100000)
/* pg_recvlogical doesn't use an exported snapshot, so suppress */
- appendPQExpBuffer(query, " NOEXPORT_SNAPSHOT");
+ appendPQExpBufferStr(query, " NOEXPORT_SNAPSHOT");
}
res = PQexec(conn, query->data);
appendPQExpBuffer(cmdLine, " -e \"%s\"", event_source);
if (registration && do_wait)
- appendPQExpBuffer(cmdLine, " -w");
+ appendPQExpBufferStr(cmdLine, " -w");
/* Don't propagate a value from an environment variable. */
if (registration && wait_seconds_arg && wait_seconds != DEFAULT_WAIT)
appendPQExpBuffer(cmdLine, " -t %d", wait_seconds);
if (registration && silent_mode)
- appendPQExpBuffer(cmdLine, " -s");
+ appendPQExpBufferStr(cmdLine, " -s");
if (post_opts)
{
if (strlen(initacls) != 0 || strlen(initracls) != 0)
{
- appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\n");
+ appendPQExpBufferStr(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\n");
if (!buildACLCommands("", NULL, NULL, type,
initacls, initracls, owner,
prefix->data, remoteVersion, sql))
destroyPQExpBuffer(prefix);
return false;
}
- appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\n");
+ appendPQExpBufferStr(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\n");
}
if (!buildACLCommands("", NULL, NULL, type,
*/
if (strncmp(dropStmt, "ALTER TABLE", 11) == 0)
{
- appendPQExpBuffer(ftStmt,
- "ALTER TABLE IF EXISTS");
+ appendPQExpBufferStr(ftStmt,
+ "ALTER TABLE IF EXISTS");
dropStmt = dropStmt + 11;
}
* any data to/from the database.
*/
initPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, PQdb(AH->connection));
pghost = PQhost(AH->connection);
pgport = PQport(AH->connection);
}
initPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, newdb);
do
{
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);
for (cell = patterns->head; cell; cell = cell->next)
{
- appendPQExpBuffer(query,
- "SELECT oid FROM pg_catalog.pg_namespace n\n");
+ appendPQExpBufferStr(query,
+ "SELECT oid FROM pg_catalog.pg_namespace n\n");
processSQLNamePattern(GetConnection(fout), query, cell->val, false,
false, NULL, "n.nspname", NULL, NULL);
if (polinfo->polwithcheck != NULL)
appendPQExpBuffer(query, " WITH CHECK (%s)", polinfo->polwithcheck);
- appendPQExpBuffer(query, ";\n");
+ appendPQExpBufferStr(query, ";\n");
appendPQExpBuffer(delqry, "DROP POLICY %s", fmtId(polinfo->polname));
appendPQExpBuffer(delqry, " ON %s;\n", fmtQualifiedDumpable(tbinfo));
init_acl_subquery->data,
init_racl_subquery->data);
- appendPQExpBuffer(query, ") ");
+ appendPQExpBufferStr(query, ") ");
destroyPQExpBuffer(acl_subquery);
destroyPQExpBuffer(racl_subquery);
query = createPQExpBuffer();
/* Select all access methods from pg_am table */
- appendPQExpBuffer(query, "SELECT tableoid, oid, amname, amtype, "
- "amhandler::pg_catalog.regproc AS amhandler "
- "FROM pg_am");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, amname, amtype, "
+ "amhandler::pg_catalog.regproc AS amhandler "
+ "FROM pg_am");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
query = createPQExpBuffer();
- appendPQExpBuffer(query, "SELECT tableoid, oid, "
- "trftype, trflang, trffromsql::oid, trftosql::oid "
- "FROM pg_transform "
- "ORDER BY 3,4");
+ appendPQExpBufferStr(query, "SELECT tableoid, oid, "
+ "trftype, trflang, trffromsql::oid, trftosql::oid "
+ "FROM pg_transform "
+ "ORDER BY 3,4");
res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK);
resetPQExpBuffer(q);
- appendPQExpBuffer(q,
- "SELECT\n"
- "a.attnum,\n"
- "a.attname,\n"
- "a.atttypmod,\n"
- "a.attstattarget,\n"
- "a.attstorage,\n"
- "t.typstorage,\n"
- "a.attnotnull,\n"
- "a.atthasdef,\n"
- "a.attisdropped,\n"
- "a.attlen,\n"
- "a.attalign,\n"
- "a.attislocal,\n"
- "pg_catalog.format_type(t.oid, a.atttypmod) AS atttypname,\n");
+ appendPQExpBufferStr(q,
+ "SELECT\n"
+ "a.attnum,\n"
+ "a.attname,\n"
+ "a.atttypmod,\n"
+ "a.attstattarget,\n"
+ "a.attstorage,\n"
+ "t.typstorage,\n"
+ "a.attnotnull,\n"
+ "a.atthasdef,\n"
+ "a.attisdropped,\n"
+ "a.attlen,\n"
+ "a.attalign,\n"
+ "a.attislocal,\n"
+ "pg_catalog.format_type(t.oid, a.atttypmod) AS atttypname,\n");
if (fout->remoteVersion >= 120000)
- appendPQExpBuffer(q,
- "a.attgenerated,\n");
+ appendPQExpBufferStr(q,
+ "a.attgenerated,\n");
else
- appendPQExpBuffer(q,
- "'' AS attgenerated,\n");
+ appendPQExpBufferStr(q,
+ "'' AS attgenerated,\n");
if (fout->remoteVersion >= 110000)
- appendPQExpBuffer(q,
- "CASE WHEN a.atthasmissing AND NOT a.attisdropped "
- "THEN a.attmissingval ELSE null END AS attmissingval,\n");
+ appendPQExpBufferStr(q,
+ "CASE WHEN a.atthasmissing AND NOT a.attisdropped "
+ "THEN a.attmissingval ELSE null END AS attmissingval,\n");
else
- appendPQExpBuffer(q,
- "NULL AS attmissingval,\n");
+ appendPQExpBufferStr(q,
+ "NULL AS attmissingval,\n");
if (fout->remoteVersion >= 100000)
- appendPQExpBuffer(q,
- "a.attidentity,\n");
+ appendPQExpBufferStr(q,
+ "a.attidentity,\n");
else
- appendPQExpBuffer(q,
- "'' AS attidentity,\n");
+ appendPQExpBufferStr(q,
+ "'' AS attidentity,\n");
if (fout->remoteVersion >= 90200)
- appendPQExpBuffer(q,
- "pg_catalog.array_to_string(ARRAY("
- "SELECT pg_catalog.quote_ident(option_name) || "
- "' ' || pg_catalog.quote_literal(option_value) "
- "FROM pg_catalog.pg_options_to_table(attfdwoptions) "
- "ORDER BY option_name"
- "), E',\n ') AS attfdwoptions,\n");
+ appendPQExpBufferStr(q,
+ "pg_catalog.array_to_string(ARRAY("
+ "SELECT pg_catalog.quote_ident(option_name) || "
+ "' ' || pg_catalog.quote_literal(option_value) "
+ "FROM pg_catalog.pg_options_to_table(attfdwoptions) "
+ "ORDER BY option_name"
+ "), E',\n ') AS attfdwoptions,\n");
else
- appendPQExpBuffer(q,
- "'' AS attfdwoptions,\n");
+ appendPQExpBufferStr(q,
+ "'' AS attfdwoptions,\n");
if (fout->remoteVersion >= 90100)
{
* collation is different from their type's default, we use a CASE
* here to suppress uninteresting attcollations cheaply.
*/
- appendPQExpBuffer(q,
- "CASE WHEN a.attcollation <> t.typcollation "
- "THEN a.attcollation ELSE 0 END AS attcollation,\n");
+ appendPQExpBufferStr(q,
+ "CASE WHEN a.attcollation <> t.typcollation "
+ "THEN a.attcollation ELSE 0 END AS attcollation,\n");
}
else
- appendPQExpBuffer(q,
- "0 AS attcollation,\n");
+ appendPQExpBufferStr(q,
+ "0 AS attcollation,\n");
if (fout->remoteVersion >= 90000)
- appendPQExpBuffer(q,
- "array_to_string(a.attoptions, ', ') AS attoptions\n");
+ appendPQExpBufferStr(q,
+ "array_to_string(a.attoptions, ', ') AS attoptions\n");
else
- appendPQExpBuffer(q,
- "'' AS attoptions\n");
+ appendPQExpBufferStr(q,
+ "'' AS attoptions\n");
/* need left join here to not fail on dropped columns ... */
appendPQExpBuffer(q,
if (transform->trftosql)
{
if (transform->trffromsql)
- appendPQExpBuffer(defqry, ", ");
+ appendPQExpBufferStr(defqry, ", ");
if (tosqlFuncInfo)
{
pg_log_warning("bogus value in pg_transform.trftosql field");
}
- appendPQExpBuffer(defqry, ");\n");
+ appendPQExpBufferStr(defqry, ");\n");
appendPQExpBuffer(labelq, "TRANSFORM FOR %s LANGUAGE %s",
transformType, lanname);
switch (aminfo->amtype)
{
case AMTYPE_INDEX:
- appendPQExpBuffer(q, "TYPE INDEX ");
+ appendPQExpBufferStr(q, "TYPE INDEX ");
break;
case AMTYPE_TABLE:
- appendPQExpBuffer(q, "TYPE TABLE ");
+ appendPQExpBufferStr(q, "TYPE TABLE ");
break;
default:
pg_log_warning("invalid type \"%c\" of access method \"%s\"",
qcollname = pg_strdup(fmtId(collinfo->dobj.name));
/* Get collation-specific details */
- appendPQExpBuffer(query, "SELECT ");
+ appendPQExpBufferStr(query, "SELECT ");
if (fout->remoteVersion >= 100000)
- appendPQExpBuffer(query,
- "collprovider, "
- "collversion, ");
+ appendPQExpBufferStr(query,
+ "collprovider, "
+ "collversion, ");
else
- appendPQExpBuffer(query,
- "'c' AS collprovider, "
- "NULL AS collversion, ");
+ appendPQExpBufferStr(query,
+ "'c' AS collprovider, "
+ "NULL AS collversion, ");
if (fout->remoteVersion >= 120000)
- appendPQExpBuffer(query,
- "collisdeterministic, ");
+ appendPQExpBufferStr(query,
+ "collisdeterministic, ");
else
- appendPQExpBuffer(query,
- "true AS collisdeterministic, ");
+ appendPQExpBufferStr(query,
+ "true AS collisdeterministic, ");
appendPQExpBuffer(query,
"collcollate, "
appendPQExpBufferStr(&buf, agginfo->aggfn.dobj.name);
if (agginfo->aggfn.nargs == 0)
- appendPQExpBuffer(&buf, "(*)");
+ appendPQExpBufferStr(&buf, "(*)");
else
{
appendPQExpBufferChar(&buf, '(');
*/
if (strlen(initacls) != 0 || strlen(initracls) != 0)
{
- appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\n");
+ appendPQExpBufferStr(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(true);\n");
if (!buildACLCommands(name, subname, nspname, type,
initacls, initracls, owner,
"", fout->remoteVersion, sql))
fatal("could not parse initial GRANT ACL list (%s) or initial REVOKE ACL list (%s) for object \"%s\" (%s)",
initacls, initracls, name, type);
- appendPQExpBuffer(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\n");
+ appendPQExpBufferStr(sql, "SELECT pg_catalog.binary_upgrade_set_record_init_privs(false);\n");
}
if (!buildACLCommands(name, subname, nspname, type,
}
if (indxinfo->indnkeyattrs < indxinfo->indnattrs)
- appendPQExpBuffer(q, ") INCLUDE (");
+ appendPQExpBufferStr(q, ") INCLUDE (");
for (k = indxinfo->indnkeyattrs; k < indxinfo->indnattrs; k++)
{
"ALTER COLUMN %s ADD GENERATED ",
fmtId(owning_tab->attnames[tbinfo->owning_col - 1]));
if (owning_tab->attidentity[tbinfo->owning_col - 1] == ATTRIBUTE_IDENTITY_ALWAYS)
- appendPQExpBuffer(query, "ALWAYS");
+ appendPQExpBufferStr(query, "ALWAYS");
else if (owning_tab->attidentity[tbinfo->owning_col - 1] == ATTRIBUTE_IDENTITY_BY_DEFAULT)
- appendPQExpBuffer(query, "BY DEFAULT");
+ appendPQExpBufferStr(query, "BY DEFAULT");
appendPQExpBuffer(query, " AS IDENTITY (\n SEQUENCE NAME %s\n",
fmtQualifiedDumpable(tbinfo));
}
for (SimpleStringListCell *cell = patterns->head; cell; cell = cell->next)
{
- appendPQExpBuffer(query,
- "SELECT datname FROM pg_catalog.pg_database n\n");
+ appendPQExpBufferStr(query,
+ "SELECT datname FROM pg_catalog.pg_database n\n");
processSQLNamePattern(conn, query, cell->val, false,
false, NULL, "datname", NULL, NULL);
escaped_connstr;
initPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, old_db->db_name);
initPQExpBuffer(&escaped_connstr);
appendShellString(&escaped_connstr, connstr.data);
if (!dbname && reuse_previous)
{
initPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, PQdb(o_conn));
dbname = connstr.data;
/* has_connection_string=true would be a dead store */
*/
appendPQExpBufferStr(query, "SELECT ");
appendStringLiteralConn(query, desc, pset.db);
- appendPQExpBuffer(query, "::pg_catalog.regclass::pg_catalog.oid");
+ appendPQExpBufferStr(query, "::pg_catalog.regclass::pg_catalog.oid");
break;
}
" pg_catalog.pg_get_expr(c.relpartbound, inhrelid)");
/* If verbose, also request the partition constraint definition */
if (verbose)
- appendPQExpBuffer(&buf,
- ",\n pg_catalog.pg_get_partition_constraintdef(inhrelid)");
+ appendPQExpBufferStr(&buf,
+ ",\n pg_catalog.pg_get_partition_constraintdef(inhrelid)");
appendPQExpBuffer(&buf,
"\nFROM pg_catalog.pg_class c"
" JOIN pg_catalog.pg_inherits i"
" false AS condeferrable, false AS condeferred,\n");
if (pset.sversion >= 90400)
- appendPQExpBuffer(&buf, "i.indisreplident,\n");
+ appendPQExpBufferStr(&buf, "i.indisreplident,\n");
else
- appendPQExpBuffer(&buf, "false AS indisreplident,\n");
+ appendPQExpBufferStr(&buf, "false AS indisreplident,\n");
appendPQExpBuffer(&buf, " a.amname, c2.relname, "
"pg_catalog.pg_get_expr(i.indpred, i.indrelid, true)\n"
appendPQExpBufferStr(&tmpbuf, _(", initially deferred"));
if (strcmp(indisreplident, "t") == 0)
- appendPQExpBuffer(&tmpbuf, _(", replica identity"));
+ appendPQExpBufferStr(&tmpbuf, _(", replica identity"));
printTableAddFooter(&cont, tmpbuf.data);
add_tablespace_footer(&cont, tableinfo.relkind,
appendPQExpBufferStr(&buf, " INVALID");
if (strcmp(PQgetvalue(result, i, 10), "t") == 0)
- appendPQExpBuffer(&buf, " REPLICA IDENTITY");
+ appendPQExpBufferStr(&buf, " REPLICA IDENTITY");
printTableAddFooter(&cont, buf.data);
oid);
if (pset.sversion >= 120000)
- appendPQExpBuffer(&buf, " AND conparentid = 0\n");
- appendPQExpBuffer(&buf, "ORDER BY conname");
+ appendPQExpBufferStr(&buf, " AND conparentid = 0\n");
+ appendPQExpBufferStr(&buf, "ORDER BY conname");
}
result = PSQLexec(buf.data);
{
printfPQExpBuffer(&buf, "SELECT pol.polname,");
if (pset.sversion >= 100000)
- appendPQExpBuffer(&buf,
- " pol.polpermissive,\n");
+ appendPQExpBufferStr(&buf,
+ " pol.polpermissive,\n");
else
- appendPQExpBuffer(&buf,
- " 't' as polpermissive,\n");
+ appendPQExpBufferStr(&buf,
+ " 't' as polpermissive,\n");
appendPQExpBuffer(&buf,
" CASE WHEN pol.polroles = '{0}' THEN NULL ELSE pg_catalog.array_to_string(array(select rolname from pg_catalog.pg_roles where oid = any (pol.polroles) order by 1),',') END,\n"
" pg_catalog.pg_get_expr(pol.polqual, pol.polrelid),\n"
PQgetvalue(result, i, 0));
if (*(PQgetvalue(result, i, 1)) == 'f')
- appendPQExpBuffer(&buf, " AS RESTRICTIVE");
+ appendPQExpBufferStr(&buf, " AS RESTRICTIVE");
if (!PQgetisnull(result, i, 5))
appendPQExpBuffer(&buf, " FOR %s",
"t.tgconstraint <> 0 AS tgisinternal" :
"false AS tgisinternal"), oid);
if (pset.sversion >= 110000)
- appendPQExpBuffer(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D') \n"
- " OR EXISTS (SELECT 1 FROM pg_catalog.pg_depend WHERE objid = t.oid \n"
- " AND refclassid = 'pg_catalog.pg_trigger'::pg_catalog.regclass))");
+ appendPQExpBufferStr(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D') \n"
+ " OR EXISTS (SELECT 1 FROM pg_catalog.pg_depend WHERE objid = t.oid \n"
+ " AND refclassid = 'pg_catalog.pg_trigger'::pg_catalog.regclass))");
else if (pset.sversion >= 90000)
/* display/warn about disabled internal triggers */
- appendPQExpBuffer(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D'))");
+ appendPQExpBufferStr(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D'))");
else if (pset.sversion >= 80300)
appendPQExpBufferStr(&buf, "(t.tgconstraint = 0 OR (t.tgconstraint <> 0 AND t.tgenabled = 'D'))");
else
{
if (pset.sversion < 120000)
{
- appendPQExpBuffer(&buf,
- ",\n LATERAL (WITH RECURSIVE d\n"
- " AS (SELECT inhrelid AS oid, 1 AS level\n"
- " FROM pg_catalog.pg_inherits\n"
- " WHERE inhparent = c.oid\n"
- " UNION ALL\n"
- " SELECT inhrelid, level + 1\n"
- " FROM pg_catalog.pg_inherits i\n"
- " JOIN d ON i.inhparent = d.oid)\n"
- " SELECT pg_catalog.pg_size_pretty(sum(pg_catalog.pg_table_size("
- "d.oid))) AS tps,\n"
- " pg_catalog.pg_size_pretty(sum("
- "\n CASE WHEN d.level = 1"
- " THEN pg_catalog.pg_table_size(d.oid) ELSE 0 END)) AS dps\n"
- " FROM d) s");
+ appendPQExpBufferStr(&buf,
+ ",\n LATERAL (WITH RECURSIVE d\n"
+ " AS (SELECT inhrelid AS oid, 1 AS level\n"
+ " FROM pg_catalog.pg_inherits\n"
+ " WHERE inhparent = c.oid\n"
+ " UNION ALL\n"
+ " SELECT inhrelid, level + 1\n"
+ " FROM pg_catalog.pg_inherits i\n"
+ " JOIN d ON i.inhparent = d.oid)\n"
+ " SELECT pg_catalog.pg_size_pretty(sum(pg_catalog.pg_table_size("
+ "d.oid))) AS tps,\n"
+ " pg_catalog.pg_size_pretty(sum("
+ "\n CASE WHEN d.level = 1"
+ " THEN pg_catalog.pg_table_size(d.oid) ELSE 0 END)) AS dps\n"
+ " FROM d) s");
}
else
{
/* PostgreSQL 12 has pg_partition_tree function */
- appendPQExpBuffer(&buf,
- ",\n LATERAL (SELECT pg_catalog.pg_size_pretty(sum("
- "\n CASE WHEN ppt.isleaf AND ppt.level = 1"
- "\n THEN pg_catalog.pg_table_size(ppt.relid)"
- " ELSE 0 END)) AS dps"
- ",\n pg_catalog.pg_size_pretty(sum("
- "pg_catalog.pg_table_size(ppt.relid))) AS tps"
- "\n FROM pg_catalog.pg_partition_tree(c.oid) ppt) s");
+ appendPQExpBufferStr(&buf,
+ ",\n LATERAL (SELECT pg_catalog.pg_size_pretty(sum("
+ "\n CASE WHEN ppt.isleaf AND ppt.level = 1"
+ "\n THEN pg_catalog.pg_table_size(ppt.relid)"
+ " ELSE 0 END)) AS dps"
+ ",\n pg_catalog.pg_size_pretty(sum("
+ "pg_catalog.pg_table_size(ppt.relid))) AS tps"
+ "\n FROM pg_catalog.pg_partition_tree(c.oid) ppt) s");
}
}
return false;
initPQExpBuffer(&title);
- appendPQExpBuffer(&title, "%s", tabletitle);
+ appendPQExpBufferStr(&title, tabletitle);
myopt.nullPrint = NULL;
myopt.title = title.data;
gettext_noop("Description"));
}
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_namespace n\n");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_namespace n\n");
if (!showSystem && !pattern)
appendPQExpBufferStr(&buf,
" pg_catalog.pg_get_userbyid(pubowner) AS owner,\n"
" puballtables, pubinsert, pubupdate, pubdelete");
if (has_pubtruncate)
- appendPQExpBuffer(&buf,
- ", pubtruncate");
- appendPQExpBuffer(&buf,
- "\nFROM pg_catalog.pg_publication\n");
+ appendPQExpBufferStr(&buf,
+ ", pubtruncate");
+ appendPQExpBufferStr(&buf,
+ "\nFROM pg_catalog.pg_publication\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
NULL, "pubname", NULL,
}
resetPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, dbname);
cluster_one_database(connstr.data, verbose, NULL,
}
resetPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, dbname);
reindex_one_database(NULL, connstr.data, REINDEX_DATABASE, host,
if (!tables_listed)
{
- appendPQExpBuffer(&catalog_query,
- "WITH listed_tables (table_oid, column_list) "
- "AS (\n VALUES (");
+ appendPQExpBufferStr(&catalog_query,
+ "WITH listed_tables (table_oid, column_list) "
+ "AS (\n VALUES (");
tables_listed = true;
}
else
- appendPQExpBuffer(&catalog_query, ",\n (");
+ appendPQExpBufferStr(&catalog_query, ",\n (");
appendStringLiteralConn(&catalog_query, just_table, conn);
- appendPQExpBuffer(&catalog_query, "::pg_catalog.regclass, ");
+ appendPQExpBufferStr(&catalog_query, "::pg_catalog.regclass, ");
if (just_columns && just_columns[0] != '\0')
appendStringLiteralConn(&catalog_query, just_columns, conn);
/* Finish formatting the CTE */
if (tables_listed)
- appendPQExpBuffer(&catalog_query, "\n)\n");
+ appendPQExpBufferStr(&catalog_query, "\n)\n");
- appendPQExpBuffer(&catalog_query, "SELECT c.relname, ns.nspname");
+ appendPQExpBufferStr(&catalog_query, "SELECT c.relname, ns.nspname");
if (tables_listed)
- appendPQExpBuffer(&catalog_query, ", listed_tables.column_list");
+ appendPQExpBufferStr(&catalog_query, ", listed_tables.column_list");
- appendPQExpBuffer(&catalog_query,
- " FROM pg_catalog.pg_class c\n"
- " JOIN pg_catalog.pg_namespace ns"
- " ON c.relnamespace OPERATOR(pg_catalog.=) ns.oid\n"
- " LEFT JOIN pg_catalog.pg_class t"
- " ON c.reltoastrelid OPERATOR(pg_catalog.=) t.oid\n");
+ appendPQExpBufferStr(&catalog_query,
+ " FROM pg_catalog.pg_class c\n"
+ " JOIN pg_catalog.pg_namespace ns"
+ " ON c.relnamespace OPERATOR(pg_catalog.=) ns.oid\n"
+ " LEFT JOIN pg_catalog.pg_class t"
+ " ON c.reltoastrelid OPERATOR(pg_catalog.=) t.oid\n");
/* Used to match the tables listed by the user */
if (tables_listed)
- appendPQExpBuffer(&catalog_query, " JOIN listed_tables"
- " ON listed_tables.table_oid OPERATOR(pg_catalog.=) c.oid\n");
+ appendPQExpBufferStr(&catalog_query, " JOIN listed_tables"
+ " ON listed_tables.table_oid OPERATOR(pg_catalog.=) c.oid\n");
/*
* If no tables were listed, filter for the relevant relation types. If
*/
if (!tables_listed)
{
- appendPQExpBuffer(&catalog_query, " WHERE c.relkind OPERATOR(pg_catalog.=) ANY (array["
- CppAsString2(RELKIND_RELATION) ", "
- CppAsString2(RELKIND_MATVIEW) "])\n");
+ appendPQExpBufferStr(&catalog_query, " WHERE c.relkind OPERATOR(pg_catalog.=) ANY (array["
+ CppAsString2(RELKIND_RELATION) ", "
+ CppAsString2(RELKIND_MATVIEW) "])\n");
has_where = true;
}
* Execute the catalog query. We use the default search_path for this
* query for consistency with table lookups done elsewhere by the user.
*/
- appendPQExpBuffer(&catalog_query, " ORDER BY c.relpages DESC;");
+ appendPQExpBufferStr(&catalog_query, " ORDER BY c.relpages DESC;");
executeCommand(conn, "RESET search_path;", progname, echo);
res = executeQuery(conn, catalog_query.data, progname, echo);
termPQExpBuffer(&catalog_query);
for (i = 0; i < PQntuples(result); i++)
{
resetPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, PQgetvalue(result, i, 0));
vacuum_one_database(connstr.data, vacopts,
for (i = 0; i < PQntuples(result); i++)
{
resetPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, PQgetvalue(result, i, 0));
vacuum_one_database(connstr.data, vacopts,
PQExpBufferData connstr;
initPQExpBuffer(&connstr);
- appendPQExpBuffer(&connstr, "dbname=");
+ appendPQExpBufferStr(&connstr, "dbname=");
appendConnStrVal(&connstr, dbname);
- appendPQExpBuffer(buf, "-reuse-previous=on ");
+ appendPQExpBufferStr(buf, "-reuse-previous=on ");
/*
* As long as the name does not contain a newline, SQL identifier
if (strcmp(state->sasl_mechanism, SCRAM_SHA_256_PLUS_NAME) == 0)
{
Assert(conn->ssl_in_use);
- appendPQExpBuffer(&buf, "p=tls-server-end-point");
+ appendPQExpBufferStr(&buf, "p=tls-server-end-point");
}
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
else if (conn->ssl_in_use)
/*
* Client supports channel binding, but thinks the server does not.
*/
- appendPQExpBuffer(&buf, "y");
+ appendPQExpBufferChar(&buf, 'y');
}
#endif
else
/*
* Client does not support channel binding.
*/
- appendPQExpBuffer(&buf, "n");
+ appendPQExpBufferChar(&buf, 'n');
}
if (PQExpBufferDataBroken(buf))
return NULL;
}
- appendPQExpBuffer(&buf, "c=");
+ appendPQExpBufferStr(&buf, "c=");
/* p=type,, */
cbind_header_len = strlen("p=tls-server-end-point,,");
}
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
else if (conn->ssl_in_use)
- appendPQExpBuffer(&buf, "c=eSws"); /* base64 of "y,," */
+ appendPQExpBufferStr(&buf, "c=eSws"); /* base64 of "y,," */
#endif
else
- appendPQExpBuffer(&buf, "c=biws"); /* base64 of "n,," */
+ appendPQExpBufferStr(&buf, "c=biws"); /* base64 of "n,," */
if (PQExpBufferDataBroken(buf))
goto oom_error;
state->client_final_message_without_proof,
client_proof);
- appendPQExpBuffer(&buf, ",p=");
+ appendPQExpBufferStr(&buf, ",p=");
if (!enlargePQExpBuffer(&buf, pg_b64_enc_len(SCRAM_KEY_LEN)))
goto oom_error;
buf.len += pg_b64_encode((char *) client_proof,
}
else if (!conn->gctx && conn->gssencmode[0] == 'r')
{
- appendPQExpBuffer(&conn->errorMessage,
- libpq_gettext("GSSAPI encryption required, but was impossible (possibly no ccache, no server support, or using a local socket)\n"));
+ appendPQExpBufferStr(&conn->errorMessage,
+ libpq_gettext("GSSAPI encryption required, but was impossible (possibly no ccache, no server support, or using a local socket)\n"));
goto error_return;
}
#endif
/* If we couldn't allocate a PGresult, just say "out of memory" */
if (res == NULL)
{
- appendPQExpBuffer(msg, libpq_gettext("out of memory\n"));
+ appendPQExpBufferStr(msg, libpq_gettext("out of memory\n"));
return;
}
if (res->errMsg && res->errMsg[0])
appendPQExpBufferStr(msg, res->errMsg);
else
- appendPQExpBuffer(msg, libpq_gettext("no error message available\n"));
+ appendPQExpBufferStr(msg, libpq_gettext("no error message available\n"));
return;
}