mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08:00
Fix up some misusage of appendStringInfo() and friends
Change to appendStringInfoChar() or appendStringInfoString() where those can be used. Author: David Rowley <david.rowley@2ndquadrant.com> Reviewed-by: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
This commit is contained in:
parent
4d4c891715
commit
77d05706be
@ -973,7 +973,7 @@ deparseSelectStmtForRel(StringInfo buf, PlannerInfo *root, RelOptInfo *rel,
|
||||
/* Append HAVING clause */
|
||||
if (remote_conds)
|
||||
{
|
||||
appendStringInfo(buf, " HAVING ");
|
||||
appendStringInfoString(buf, " HAVING ");
|
||||
appendConditions(remote_conds, &context);
|
||||
}
|
||||
}
|
||||
@ -1076,7 +1076,7 @@ deparseFromExpr(List *quals, deparse_expr_cxt *context)
|
||||
/* Construct WHERE clause */
|
||||
if (quals != NIL)
|
||||
{
|
||||
appendStringInfo(buf, " WHERE ");
|
||||
appendStringInfoString(buf, " WHERE ");
|
||||
appendConditions(quals, context);
|
||||
}
|
||||
}
|
||||
@ -1447,15 +1447,15 @@ deparseFromExprForRel(StringInfo buf, PlannerInfo *root, RelOptInfo *foreignrel,
|
||||
context.root = root;
|
||||
context.params_list = params_list;
|
||||
|
||||
appendStringInfo(buf, "(");
|
||||
appendStringInfoChar(buf, '(');
|
||||
appendConditions(fpinfo->joinclauses, &context);
|
||||
appendStringInfo(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
else
|
||||
appendStringInfoString(buf, "(TRUE)");
|
||||
|
||||
/* End the FROM clause entry. */
|
||||
appendStringInfo(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1702,7 +1702,7 @@ deparseDirectUpdateSql(StringInfo buf, PlannerInfo *root,
|
||||
|
||||
if (remote_conds)
|
||||
{
|
||||
appendStringInfo(buf, " WHERE ");
|
||||
appendStringInfoString(buf, " WHERE ");
|
||||
appendConditions(remote_conds, &context);
|
||||
}
|
||||
|
||||
@ -1762,7 +1762,7 @@ deparseDirectDeleteSql(StringInfo buf, PlannerInfo *root,
|
||||
|
||||
if (remote_conds)
|
||||
{
|
||||
appendStringInfo(buf, " WHERE ");
|
||||
appendStringInfoString(buf, " WHERE ");
|
||||
appendConditions(remote_conds, &context);
|
||||
}
|
||||
|
||||
@ -1978,17 +1978,17 @@ deparseColumnRef(StringInfo buf, int varno, int varattno, PlannerInfo *root,
|
||||
{
|
||||
appendStringInfoString(buf, "CASE WHEN (");
|
||||
ADD_REL_QUALIFIER(buf, varno);
|
||||
appendStringInfo(buf, "*)::text IS NOT NULL THEN ");
|
||||
appendStringInfoString(buf, "*)::text IS NOT NULL THEN ");
|
||||
}
|
||||
|
||||
appendStringInfoString(buf, "ROW(");
|
||||
deparseTargetList(buf, root, varno, rel, false, attrs_used, qualify_col,
|
||||
&retrieved_attrs);
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
|
||||
/* Complete the CASE WHEN statement started above. */
|
||||
if (qualify_col)
|
||||
appendStringInfo(buf, " END");
|
||||
appendStringInfoString(buf, " END");
|
||||
|
||||
heap_close(rel, NoLock);
|
||||
bms_free(attrs_used);
|
||||
@ -2759,7 +2759,7 @@ deparseAggref(Aggref *node, deparse_expr_cxt *context)
|
||||
appendStringInfoChar(buf, '(');
|
||||
|
||||
/* Add DISTINCT */
|
||||
appendStringInfo(buf, "%s", (node->aggdistinct != NIL) ? "DISTINCT " : "");
|
||||
appendStringInfoString(buf, (node->aggdistinct != NIL) ? "DISTINCT " : "");
|
||||
|
||||
if (AGGKIND_IS_ORDERED_SET(node->aggkind))
|
||||
{
|
||||
@ -2944,7 +2944,7 @@ appendGroupByClause(List *tlist, deparse_expr_cxt *context)
|
||||
if (!query->groupClause)
|
||||
return;
|
||||
|
||||
appendStringInfo(buf, " GROUP BY ");
|
||||
appendStringInfoString(buf, " GROUP BY ");
|
||||
|
||||
/*
|
||||
* Queries with grouping sets are not pushed down, so we don't expect
|
||||
@ -2981,7 +2981,7 @@ appendOrderByClause(List *pathkeys, deparse_expr_cxt *context)
|
||||
/* Make sure any constants in the exprs are printed portably */
|
||||
nestlevel = set_transmission_modes();
|
||||
|
||||
appendStringInfo(buf, " ORDER BY");
|
||||
appendStringInfoString(buf, " ORDER BY");
|
||||
foreach(lcell, pathkeys)
|
||||
{
|
||||
PathKey *pathkey = lfirst(lcell);
|
||||
@ -3035,7 +3035,7 @@ appendFunctionName(Oid funcid, deparse_expr_cxt *context)
|
||||
|
||||
/* Always print the function name */
|
||||
proname = NameStr(procform->proname);
|
||||
appendStringInfo(buf, "%s", quote_identifier(proname));
|
||||
appendStringInfoString(buf, quote_identifier(proname));
|
||||
|
||||
ReleaseSysCache(proctup);
|
||||
}
|
||||
@ -3070,9 +3070,9 @@ deparseSortGroupClause(Index ref, List *tlist, deparse_expr_cxt *context)
|
||||
else
|
||||
{
|
||||
/* Always parenthesize the expression. */
|
||||
appendStringInfoString(buf, "(");
|
||||
appendStringInfoChar(buf, '(');
|
||||
deparseExpr(expr, context);
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
|
||||
return (Node *) expr;
|
||||
|
@ -1117,9 +1117,9 @@ fetch_table_list(WalReceiverConn *wrconn, List *publications)
|
||||
Assert(list_length(publications) > 0);
|
||||
|
||||
initStringInfo(&cmd);
|
||||
appendStringInfo(&cmd, "SELECT DISTINCT t.schemaname, t.tablename\n"
|
||||
" FROM pg_catalog.pg_publication_tables t\n"
|
||||
" WHERE t.pubname IN (");
|
||||
appendStringInfoString(&cmd, "SELECT DISTINCT t.schemaname, t.tablename\n"
|
||||
" FROM pg_catalog.pg_publication_tables t\n"
|
||||
" WHERE t.pubname IN (");
|
||||
first = true;
|
||||
foreach(lc, publications)
|
||||
{
|
||||
@ -1130,9 +1130,9 @@ fetch_table_list(WalReceiverConn *wrconn, List *publications)
|
||||
else
|
||||
appendStringInfoString(&cmd, ", ");
|
||||
|
||||
appendStringInfo(&cmd, "%s", quote_literal_cstr(pubname));
|
||||
appendStringInfoString(&cmd, quote_literal_cstr(pubname));
|
||||
}
|
||||
appendStringInfoString(&cmd, ")");
|
||||
appendStringInfoChar(&cmd, ')');
|
||||
|
||||
res = walrcv_exec(wrconn, cmd.data, 2, tableRow);
|
||||
pfree(cmd.data);
|
||||
|
@ -83,7 +83,7 @@ static void outChar(StringInfo str, char c);
|
||||
|
||||
/* Write a character-string (possibly NULL) field */
|
||||
#define WRITE_STRING_FIELD(fldname) \
|
||||
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
|
||||
(appendStringInfoString(str, " :" CppAsString(fldname) " "), \
|
||||
outToken(str, node->fldname))
|
||||
|
||||
/* Write a parse location field (actually same as INT case) */
|
||||
@ -92,12 +92,12 @@ static void outChar(StringInfo str, char c);
|
||||
|
||||
/* Write a Node field */
|
||||
#define WRITE_NODE_FIELD(fldname) \
|
||||
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
|
||||
(appendStringInfoString(str, " :" CppAsString(fldname) " "), \
|
||||
outNode(str, node->fldname))
|
||||
|
||||
/* Write a bitmapset field */
|
||||
#define WRITE_BITMAPSET_FIELD(fldname) \
|
||||
(appendStringInfo(str, " :" CppAsString(fldname) " "), \
|
||||
(appendStringInfoString(str, " :" CppAsString(fldname) " "), \
|
||||
outBitmapset(str, node->fldname))
|
||||
|
||||
|
||||
|
@ -355,7 +355,7 @@ libpqrcv_startstreaming(WalReceiverConn *conn,
|
||||
options->slotname);
|
||||
|
||||
if (options->logical)
|
||||
appendStringInfo(&cmd, " LOGICAL");
|
||||
appendStringInfoString(&cmd, " LOGICAL");
|
||||
|
||||
appendStringInfo(&cmd, " %X/%X",
|
||||
(uint32) (options->startpoint >> 32),
|
||||
@ -774,21 +774,21 @@ libpqrcv_create_slot(WalReceiverConn *conn, const char *slotname,
|
||||
appendStringInfo(&cmd, "CREATE_REPLICATION_SLOT \"%s\"", slotname);
|
||||
|
||||
if (temporary)
|
||||
appendStringInfo(&cmd, " TEMPORARY");
|
||||
appendStringInfoString(&cmd, " TEMPORARY");
|
||||
|
||||
if (conn->logical)
|
||||
{
|
||||
appendStringInfo(&cmd, " LOGICAL pgoutput");
|
||||
appendStringInfoString(&cmd, " LOGICAL pgoutput");
|
||||
switch (snapshot_action)
|
||||
{
|
||||
case CRS_EXPORT_SNAPSHOT:
|
||||
appendStringInfo(&cmd, " EXPORT_SNAPSHOT");
|
||||
appendStringInfoString(&cmd, " EXPORT_SNAPSHOT");
|
||||
break;
|
||||
case CRS_NOEXPORT_SNAPSHOT:
|
||||
appendStringInfo(&cmd, " NOEXPORT_SNAPSHOT");
|
||||
appendStringInfoString(&cmd, " NOEXPORT_SNAPSHOT");
|
||||
break;
|
||||
case CRS_USE_SNAPSHOT:
|
||||
appendStringInfo(&cmd, " USE_SNAPSHOT");
|
||||
appendStringInfoString(&cmd, " USE_SNAPSHOT");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1656,11 +1656,11 @@ pg_get_partkeydef_worker(Oid relid, int prettyFlags,
|
||||
{
|
||||
case PARTITION_STRATEGY_LIST:
|
||||
if (!attrsOnly)
|
||||
appendStringInfo(&buf, "LIST");
|
||||
appendStringInfoString(&buf, "LIST");
|
||||
break;
|
||||
case PARTITION_STRATEGY_RANGE:
|
||||
if (!attrsOnly)
|
||||
appendStringInfo(&buf, "RANGE");
|
||||
appendStringInfoString(&buf, "RANGE");
|
||||
break;
|
||||
default:
|
||||
elog(ERROR, "unexpected partition strategy: %d",
|
||||
@ -1668,7 +1668,7 @@ pg_get_partkeydef_worker(Oid relid, int prettyFlags,
|
||||
}
|
||||
|
||||
if (!attrsOnly)
|
||||
appendStringInfo(&buf, " (");
|
||||
appendStringInfoString(&buf, " (");
|
||||
sep = "";
|
||||
for (keyno = 0; keyno < form->partnatts; keyno++)
|
||||
{
|
||||
@ -5635,10 +5635,10 @@ get_rule_sortgroupclause(Index ref, List *tlist, bool force_colno,
|
||||
||IsA(expr, WindowFunc));
|
||||
|
||||
if (need_paren)
|
||||
appendStringInfoString(context->buf, "(");
|
||||
appendStringInfoChar(context->buf, '(');
|
||||
get_rule_expr(expr, context, true);
|
||||
if (need_paren)
|
||||
appendStringInfoString(context->buf, ")");
|
||||
appendStringInfoChar(context->buf, ')');
|
||||
}
|
||||
|
||||
return expr;
|
||||
@ -5665,7 +5665,7 @@ get_rule_groupingset(GroupingSet *gset, List *targetlist,
|
||||
case GROUPING_SET_SIMPLE:
|
||||
{
|
||||
if (!omit_parens || list_length(gset->content) != 1)
|
||||
appendStringInfoString(buf, "(");
|
||||
appendStringInfoChar(buf, '(');
|
||||
|
||||
foreach(l, gset->content)
|
||||
{
|
||||
@ -5678,7 +5678,7 @@ get_rule_groupingset(GroupingSet *gset, List *targetlist,
|
||||
}
|
||||
|
||||
if (!omit_parens || list_length(gset->content) != 1)
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
return;
|
||||
|
||||
@ -5701,7 +5701,7 @@ get_rule_groupingset(GroupingSet *gset, List *targetlist,
|
||||
sep = ", ";
|
||||
}
|
||||
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
}
|
||||
|
||||
/*
|
||||
@ -8713,7 +8713,7 @@ get_rule_expr(Node *node, deparse_context *context,
|
||||
sep = ", ";
|
||||
}
|
||||
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
break;
|
||||
|
||||
case PARTITION_STRATEGY_RANGE:
|
||||
@ -10941,7 +10941,7 @@ get_range_partbound_string(List *bound_datums)
|
||||
}
|
||||
sep = ", ";
|
||||
}
|
||||
appendStringInfoString(buf, ")");
|
||||
appendStringInfoChar(buf, ')');
|
||||
|
||||
return buf->data;
|
||||
}
|
||||
|
@ -3458,8 +3458,8 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
|
||||
case BPCHAROID:
|
||||
case VARCHAROID:
|
||||
case TEXTOID:
|
||||
appendStringInfo(&result,
|
||||
" <xsd:restriction base=\"xsd:string\">\n");
|
||||
appendStringInfoString(&result,
|
||||
" <xsd:restriction base=\"xsd:string\">\n");
|
||||
if (typmod != -1)
|
||||
appendStringInfo(&result,
|
||||
" <xsd:maxLength value=\"%d\"/>\n",
|
||||
|
@ -455,7 +455,7 @@ FreePageManagerDump(FreePageManager *fpm)
|
||||
recycle = relptr_access(base, fpm->btree_recycle);
|
||||
if (recycle != NULL)
|
||||
{
|
||||
appendStringInfo(&buf, "btree recycle:");
|
||||
appendStringInfoString(&buf, "btree recycle:");
|
||||
FreePageManagerDumpSpans(fpm, recycle, 1, &buf);
|
||||
}
|
||||
|
||||
@ -468,7 +468,7 @@ FreePageManagerDump(FreePageManager *fpm)
|
||||
continue;
|
||||
if (!dumped_any_freelist)
|
||||
{
|
||||
appendStringInfo(&buf, "freelists:\n");
|
||||
appendStringInfoString(&buf, "freelists:\n");
|
||||
dumped_any_freelist = true;
|
||||
}
|
||||
appendStringInfo(&buf, " %zu:", f + 1);
|
||||
@ -1275,7 +1275,7 @@ FreePageManagerDumpBtree(FreePageManager *fpm, FreePageBtree *btp,
|
||||
btp->u.leaf_key[index].first_page,
|
||||
btp->u.leaf_key[index].npages);
|
||||
}
|
||||
appendStringInfo(buf, "\n");
|
||||
appendStringInfoChar(buf, '\n');
|
||||
|
||||
if (btp->hdr.magic == FREE_PAGE_INTERNAL_MAGIC)
|
||||
{
|
||||
@ -1308,7 +1308,7 @@ FreePageManagerDumpSpans(FreePageManager *fpm, FreePageSpanLeader *span,
|
||||
span = relptr_access(base, span->next);
|
||||
}
|
||||
|
||||
appendStringInfo(buf, "\n");
|
||||
appendStringInfoChar(buf, '\n');
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -15424,7 +15424,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
|
||||
|
||||
if (tbinfo->ispartition && !dopt->binary_upgrade)
|
||||
{
|
||||
appendPQExpBufferStr(q, "\n");
|
||||
appendPQExpBufferChar(q, '\n');
|
||||
appendPQExpBufferStr(q, tbinfo->partbound);
|
||||
}
|
||||
|
||||
@ -17127,8 +17127,7 @@ dumpRule(Archive *fout, RuleInfo *rinfo)
|
||||
|
||||
appendPQExpBuffer(delcmd, "CREATE OR REPLACE VIEW %s.",
|
||||
fmtId(tbinfo->dobj.namespace->dobj.name));
|
||||
appendPQExpBuffer(delcmd, "%s",
|
||||
fmtId(tbinfo->dobj.name));
|
||||
appendPQExpBufferStr(delcmd, fmtId(tbinfo->dobj.name));
|
||||
result = createDummyViewAsClause(fout, tbinfo);
|
||||
appendPQExpBuffer(delcmd, " AS\n%s;\n", result->data);
|
||||
destroyPQExpBuffer(result);
|
||||
|
@ -1575,7 +1575,7 @@ dumpDatabaseConfig(PGconn *conn, const char *dbname)
|
||||
appendStringLiteralConn(buf, dbname, conn);
|
||||
|
||||
if (server_version >= 90000)
|
||||
appendPQExpBuffer(buf, ")");
|
||||
appendPQExpBufferChar(buf, ')');
|
||||
|
||||
res = executeQuery(conn, buf->data);
|
||||
if (PQntuples(res) == 1 &&
|
||||
|
@ -4676,7 +4676,7 @@ get_create_object_cmd(EditableObjectType obj_type, Oid oid,
|
||||
psql_error("could not parse reloptions array\n");
|
||||
result = false;
|
||||
}
|
||||
appendPQExpBufferStr(buf, ")");
|
||||
appendPQExpBufferChar(buf, ')');
|
||||
}
|
||||
|
||||
/* View definition from pg_get_viewdef (a SELECT query) */
|
||||
@ -4862,7 +4862,7 @@ minimal_error_message(PGresult *res)
|
||||
appendPQExpBufferStr(msg, fld);
|
||||
else
|
||||
appendPQExpBufferStr(msg, "(not available)");
|
||||
appendPQExpBufferStr(msg, "\n");
|
||||
appendPQExpBufferChar(msg, '\n');
|
||||
|
||||
psql_error("%s", msg->data);
|
||||
|
||||
|
@ -3177,7 +3177,7 @@ describeRoles(const char *pattern, bool verbose, bool showSystem)
|
||||
if (strcmp(PQgetvalue(res, i, 7), "") != 0)
|
||||
{
|
||||
if (buf.len > 0)
|
||||
appendPQExpBufferStr(&buf, "\n");
|
||||
appendPQExpBufferChar(&buf, '\n');
|
||||
appendPQExpBufferStr(&buf, _("Password valid until "));
|
||||
appendPQExpBufferStr(&buf, PQgetvalue(res, i, 7));
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ main(int argc, char *argv[])
|
||||
if (cell->next)
|
||||
appendPQExpBuffer(&sql, "%s,", fmtId(cell->val));
|
||||
else
|
||||
appendPQExpBuffer(&sql, "%s", fmtId(cell->val));
|
||||
appendPQExpBufferStr(&sql, fmtId(cell->val));
|
||||
}
|
||||
}
|
||||
appendPQExpBufferChar(&sql, ';');
|
||||
|
@ -5508,8 +5508,8 @@ conninfo_uri_parse_options(PQconninfoOption *options, const char *uri,
|
||||
if (prevchar != ',')
|
||||
break;
|
||||
++p; /* advance past comma separator */
|
||||
appendPQExpBufferStr(&hostbuf, ",");
|
||||
appendPQExpBufferStr(&portbuf, ",");
|
||||
appendPQExpBufferChar(&hostbuf, ',');
|
||||
appendPQExpBufferChar(&portbuf, ',');
|
||||
}
|
||||
|
||||
/* Save final values for host and port. */
|
||||
|
Loading…
Reference in New Issue
Block a user