]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Improve various new-to-v19 appendStringInfo calls
authorDavid Rowley <drowley@postgresql.org>
Mon, 13 Apr 2026 01:16:48 +0000 (13:16 +1200)
committerDavid Rowley <drowley@postgresql.org>
Mon, 13 Apr 2026 01:16:48 +0000 (13:16 +1200)
Similar to 928394b66 and 8461424fd, here we adjust a few new locations
which were not using the most suitable appendStringInfo* or
appendPQExpBuffer* function for the intended purpose.

Author: David Rowley <drowleyml@gmail.com>
Discussion: https://postgr.es/m/CAApHDvohYOdrvhVxXzCJNX_GYMSWBfjTTtB6hgDauEtZ8Nar2A@mail.gmail.com

contrib/pg_plan_advice/pg_plan_advice.c
contrib/pg_plan_advice/pgpa_output.c
contrib/pg_plan_advice/pgpa_trove.c
src/backend/replication/logical/conflict.c
src/backend/replication/logical/slotsync.c
src/backend/utils/adt/ruleutils.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/bin/psql/describe.c
src/test/modules/test_escape/test_escape.c

index 5629070faf48ac5214e76f5d3da43059bea88b78..299b0d02a8612c00a40864491a45b55e853eeb89 100644 (file)
@@ -330,7 +330,7 @@ pg_plan_advice_explain_feedback(ExplainState *es, List *feedback)
 
                appendStringInfo(&buf, "%s /* ", item->defname);
                pgpa_trove_append_flags(&buf, flags);
-               appendStringInfo(&buf, " */\n");
+               appendStringInfoString(&buf, " */\n");
        }
 
        pg_plan_advice_explain_text_multiline(es, "Supplied Plan Advice",
index cd4411f350c36f2310e0da4d76ed411058bc8a14..ed5a9340671668e23d6f6a0346ad355da70837dd 100644 (file)
@@ -128,7 +128,7 @@ pgpa_output_advice(StringInfo buf, pgpa_plan_walker_context *walker,
 
                if (buf->len > 0)
                        appendStringInfoChar(buf, '\n');
-               appendStringInfo(context.buf, "JOIN_ORDER(");
+               appendStringInfoString(context.buf, "JOIN_ORDER(");
                pgpa_output_unrolled_join(&context, ujoin);
                appendStringInfoChar(context.buf, ')');
                pgpa_maybe_linebreak(context.buf, context.wrap_column);
index 7ade0b5ca9ccd8d77c52dcd25a2a826d3653efc6..486a42e8cc06bb1492b33b1dceaac0cc39395c3a 100644 (file)
@@ -298,7 +298,7 @@ pgpa_cstring_trove_entry(pgpa_trove_entry *entry)
        StringInfoData buf;
 
        initStringInfo(&buf);
-       appendStringInfo(&buf, "%s", pgpa_cstring_advice_tag(entry->tag));
+       appendStringInfoString(&buf, pgpa_cstring_advice_tag(entry->tag));
 
        /* JOIN_ORDER tags are transformed by pgpa_build_trove; undo that here */
        if (entry->tag != PGPA_TAG_JOIN_ORDER)
@@ -346,18 +346,18 @@ pgpa_trove_append_flags(StringInfo buf, int flags)
        if ((flags & PGPA_TE_MATCH_FULL) != 0)
        {
                Assert((flags & PGPA_TE_MATCH_PARTIAL) != 0);
-               appendStringInfo(buf, "matched");
+               appendStringInfoString(buf, "matched");
        }
        else if ((flags & PGPA_TE_MATCH_PARTIAL) != 0)
-               appendStringInfo(buf, "partially matched");
+               appendStringInfoString(buf, "partially matched");
        else
-               appendStringInfo(buf, "not matched");
+               appendStringInfoString(buf, "not matched");
        if ((flags & PGPA_TE_INAPPLICABLE) != 0)
-               appendStringInfo(buf, ", inapplicable");
+               appendStringInfoString(buf, ", inapplicable");
        if ((flags & PGPA_TE_CONFLICTING) != 0)
-               appendStringInfo(buf, ", conflicting");
+               appendStringInfoString(buf, ", conflicting");
        if ((flags & PGPA_TE_FAILED) != 0)
-               appendStringInfo(buf, ", failed");
+               appendStringInfoString(buf, ", failed");
 }
 
 /*
index 5e3f8e69e9352ff4c4829ff5e14654f3fa075c4d..2887dfb7150507d8f8cbdb8846f28eabb00681a3 100644 (file)
@@ -364,7 +364,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo,
                                                                         localxmin, timestamptz_to_str(localts));
                        }
                        else
-                               appendStringInfo(&err_detail, _("The row to be updated was deleted"));
+                               appendStringInfoString(&err_detail, _("The row to be updated was deleted"));
 
                        break;
 
index f90653e52320bd33f283916c4f814dad22062c43..2b1c5cf50d2ae16fb14401c10afee162e047cd58 100644 (file)
@@ -914,7 +914,7 @@ fetch_remote_slots(WalReceiverConn *wrconn, List *slot_names)
                        if (!first_slot)
                                appendStringInfoString(&query, ", ");
 
-                       appendStringInfo(&query, "%s", quote_literal_cstr(slot_name));
+                       appendStringInfoString(&query, quote_literal_cstr(slot_name));
                        first_slot = false;
                }
                appendStringInfoChar(&query, ')');
index 35083fcc733d112f68ae016e3222bc42c49617dd..090e8cc28c118fb67127b86e2d254d01a66e7ca9 100644 (file)
@@ -1691,7 +1691,7 @@ make_propgraphdef_elements(StringInfo buf, Oid pgrelid, char pgekind)
                        first = false;
                }
                else
-                       appendStringInfo(buf, ",\n");
+                       appendStringInfoString(buf, ",\n");
 
                relname = get_rel_name(pgeform->pgerelid);
                if (relname && strcmp(relname, NameStr(pgeform->pgealias)) == 0)
@@ -1707,7 +1707,7 @@ make_propgraphdef_elements(StringInfo buf, Oid pgrelid, char pgekind)
                {
                        appendStringInfoString(buf, " KEY (");
                        decompile_column_index_array(datum, pgeform->pgerelid, false, buf);
-                       appendStringInfoString(buf, ")");
+                       appendStringInfoChar(buf, ')');
                }
                else
                        elog(ERROR, "null pgekey for element %u", pgeform->oid);
@@ -1741,7 +1741,7 @@ make_propgraphdef_elements(StringInfo buf, Oid pgrelid, char pgekind)
                                decompile_column_index_array(srckey, pgeform->pgerelid, false, buf);
                                appendStringInfo(buf, ") REFERENCES %s (", quote_identifier(NameStr(pgeform2->pgealias)));
                                decompile_column_index_array(srcref, pgeform2->pgerelid, false, buf);
-                               appendStringInfoString(buf, ")");
+                               appendStringInfoChar(buf, ')');
                        }
                        else
                                appendStringInfo(buf, " %s ", quote_identifier(NameStr(pgeform2->pgealias)));
@@ -1758,7 +1758,7 @@ make_propgraphdef_elements(StringInfo buf, Oid pgrelid, char pgekind)
                                decompile_column_index_array(destkey, pgeform->pgerelid, false, buf);
                                appendStringInfo(buf, ") REFERENCES %s (", quote_identifier(NameStr(pgeform2->pgealias)));
                                decompile_column_index_array(destref, pgeform2->pgerelid, false, buf);
-                               appendStringInfoString(buf, ")");
+                               appendStringInfoChar(buf, ')');
                        }
                        else
                                appendStringInfo(buf, " %s", quote_identifier(NameStr(pgeform2->pgealias)));
@@ -1768,7 +1768,7 @@ make_propgraphdef_elements(StringInfo buf, Oid pgrelid, char pgekind)
                make_propgraphdef_labels(buf, pgeform->oid, NameStr(pgeform->pgealias), pgeform->pgerelid);
        }
        if (!first)
-               appendStringInfo(buf, "\n    )");
+               appendStringInfoString(buf, "\n    )");
 
        systable_endscan(scan);
        table_close(pgerel, AccessShareLock);
@@ -1848,7 +1848,7 @@ make_propgraphdef_labels(StringInfo buf, Oid elid, const char *elalias, Oid elre
                {
                        /* If the default label is the only label, don't print anything. */
                        if (count != 1)
-                               appendStringInfo(buf, " DEFAULT LABEL");
+                               appendStringInfoString(buf, " DEFAULT LABEL");
                }
                else
                        appendStringInfo(buf, " LABEL %s", quote_identifier(osp->str));
@@ -1932,7 +1932,7 @@ make_propgraphdef_properties(StringInfo buf, Oid ellabelid, Oid elrelid)
 
                context = deparse_context_for(get_relation_name(elrelid), elrelid);
 
-               appendStringInfo(buf, " PROPERTIES (");
+               appendStringInfoString(buf, " PROPERTIES (");
 
                foreach(lc, outlist)
                {
@@ -1943,20 +1943,20 @@ make_propgraphdef_properties(StringInfo buf, Oid ellabelid, Oid elrelid)
                        if (first)
                                first = false;
                        else
-                               appendStringInfo(buf, ", ");
+                               appendStringInfoString(buf, ", ");
 
                        if (IsA(expr, Var) && strcmp(propname, get_attname(elrelid, castNode(Var, expr)->varattno, false)) == 0)
-                               appendStringInfo(buf, "%s", quote_identifier(propname));
+                               appendStringInfoString(buf, quote_identifier(propname));
                        else
                                appendStringInfo(buf, "%s AS %s",
                                                                 deparse_expression_pretty(expr, context, false, false, 0, 0),
                                                                 quote_identifier(propname));
                }
 
-               appendStringInfo(buf, ")");
+               appendStringInfoChar(buf, ')');
        }
        else
-               appendStringInfo(buf, " NO PROPERTIES");
+               appendStringInfoString(buf, " NO PROPERTIES");
 }
 
 /*
@@ -8008,7 +8008,7 @@ get_graph_label_expr(Node *label_expr, deparse_context *context)
                                        if (!first)
                                        {
                                                if (be->boolop == OR_EXPR)
-                                                       appendStringInfoString(buf, "|");
+                                                       appendStringInfoChar(buf, '|');
                                        }
                                        else
                                                first = false;
@@ -8041,7 +8041,7 @@ get_path_pattern_expr_def(List *path_pattern_expr, deparse_context *context)
                switch (gep->kind)
                {
                        case VERTEX_PATTERN:
-                               appendStringInfoString(buf, "(");
+                               appendStringInfoChar(buf, '(');
                                break;
                        case EDGE_PATTERN_LEFT:
                                appendStringInfoString(buf, "<-[");
@@ -8051,7 +8051,7 @@ get_path_pattern_expr_def(List *path_pattern_expr, deparse_context *context)
                                appendStringInfoString(buf, "-[");
                                break;
                        case PAREN_EXPR:
-                               appendStringInfoString(buf, "(");
+                               appendStringInfoChar(buf, '(');
                                break;
                }
 
@@ -8086,7 +8086,7 @@ get_path_pattern_expr_def(List *path_pattern_expr, deparse_context *context)
                switch (gep->kind)
                {
                        case VERTEX_PATTERN:
-                               appendStringInfoString(buf, ")");
+                               appendStringInfoChar(buf, ')');
                                break;
                        case EDGE_PATTERN_LEFT:
                        case EDGE_PATTERN_ANY:
@@ -8096,7 +8096,7 @@ get_path_pattern_expr_def(List *path_pattern_expr, deparse_context *context)
                                appendStringInfoString(buf, "]->");
                                break;
                        case PAREN_EXPR:
-                               appendStringInfoString(buf, ")");
+                               appendStringInfoChar(buf, ')');
                                break;
                }
 
@@ -13111,8 +13111,7 @@ get_from_clause_item(Node *jtnode, Query *query, deparse_context *context)
                                                appendStringInfoString(buf, quote_identifier(te->resname));
                                        }
                                }
-                               appendStringInfoString(buf, ")");
-                               appendStringInfoString(buf, ")");
+                               appendStringInfoString(buf, "))");
                                break;
                        case RTE_VALUES:
                                /* Values list RTE */
@@ -13366,7 +13365,7 @@ get_for_portion_of(ForPortionOfExpr *forPortionOf, deparse_context *context)
                {
                        appendStringInfoString(context->buf, " (");
                        get_rule_expr(forPortionOf->targetRange, context, false);
-                       appendStringInfoString(context->buf, ")");
+                       appendStringInfoChar(context->buf, ')');
                }
        }
 }
index d34240073bb1831da54980716d54c33b13be47a7..1ca03d6b2787e142b72bfcae1b081df4955480bc 100644 (file)
@@ -4720,7 +4720,7 @@ dumpPublication(Archive *fout, const PublicationInfo *pubinfo)
                        appendPQExpBuffer(query, "TABLE ONLY %s", fmtQualifiedDumpable(tbinfo));
                }
                if (n_except > 0)
-                       appendPQExpBufferStr(query, ")");
+                       appendPQExpBufferChar(query, ')');
 
                if (pubinfo->puballsequences)
                        appendPQExpBufferStr(query, ", ALL SEQUENCES");
@@ -5272,8 +5272,7 @@ getSubscriptions(Archive *fout)
                appendPQExpBufferStr(query,
                                                         " s.submaxretention,\n");
        else
-               appendPQExpBuffer(query,
-                                                 " 0 AS submaxretention,\n");
+               appendPQExpBufferStr(query, " 0 AS submaxretention,\n");
 
        if (fout->remoteVersion >= 190000)
                appendPQExpBufferStr(query,
@@ -5592,7 +5591,7 @@ dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo)
        }
        else
        {
-               appendPQExpBuffer(query, "CONNECTION ");
+               appendPQExpBufferStr(query, "CONNECTION ");
                appendStringLiteralAH(query, subinfo->subconninfo, fout);
        }
 
index 20cdd2d92f091bf838e26bb2d20bf0e68ee97ff7..9e904f76baa3f6d6b1c4d48ef9d66d707adfe2e8 100644 (file)
@@ -728,7 +728,7 @@ main(int argc, char *argv[])
                resetPQExpBuffer(qry);
 
                /* Put the correct escape string behavior into the archive. */
-               appendPQExpBuffer(qry, "SET standard_conforming_strings = 'on';\n");
+               appendPQExpBufferStr(qry, "SET standard_conforming_strings = 'on';\n");
                ArchiveEntry(fout,
                                         nilCatalogId,  /* catalog ID */
                                         createDumpId(),        /* dump ID */
@@ -1505,7 +1505,7 @@ dumpRoleMembership(PGconn *conn)
                                        appendPQExpBuffer(querybuf, " WITH %s", optbuf->data);
                                if (dump_this_grantor)
                                        appendPQExpBuffer(querybuf, " GRANTED BY %s", fmtId(grantor));
-                               appendPQExpBuffer(querybuf, ";\n");
+                               appendPQExpBufferStr(querybuf, ";\n");
 
                                if (archDumpFormat == archNull)
                                        fprintf(OPF, "%s", querybuf->data);
index 4e8ff00394a977ee94cc6180c72ef9cd3f6da3c3..871bf70d1ff38cd213560fb3a8b88382fe651d99 100644 (file)
@@ -1510,12 +1510,12 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem)
 
        printfPQExpBuffer(&buf, "/* %s */\n",
                                          _("Get matching relations to describe"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT c.oid,\n"
-                                         "  n.nspname,\n"
-                                         "  c.relname\n"
-                                         "FROM pg_catalog.pg_class c\n"
-                                         "     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n");
+       appendPQExpBufferStr(&buf,
+                                                "SELECT c.oid,\n"
+                                                "  n.nspname,\n"
+                                                "  c.relname\n"
+                                                "FROM pg_catalog.pg_class c\n"
+                                                "     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n");
 
        if (!showSystem && !pattern)
                appendPQExpBufferStr(&buf, "WHERE n.nspname <> 'pg_catalog'\n"
@@ -2027,7 +2027,7 @@ describeOneTableDetails(const char *schemaname,
        cols = 0;
        printfPQExpBuffer(&buf, "/* %s */\n",
                                          _("Get per-column information for one relation"));
-       appendPQExpBuffer(&buf, "SELECT a.attname");
+       appendPQExpBufferStr(&buf, "SELECT a.attname");
        attname_col = cols++;
        appendPQExpBufferStr(&buf, ",\n  pg_catalog.format_type(a.atttypid, a.atttypmod)");
        atttype_col = cols++;
@@ -2331,9 +2331,9 @@ describeOneTableDetails(const char *schemaname,
 
                printfPQExpBuffer(&buf, "/* %s */\n",
                                                  _("Get partitioning information for this partition"));
-               appendPQExpBuffer(&buf,
-                                                 "SELECT inhparent::pg_catalog.regclass,\n"
-                                                 "  pg_catalog.pg_get_expr(c.relpartbound, c.oid),\n  ");
+               appendPQExpBufferStr(&buf,
+                                                        "SELECT inhparent::pg_catalog.regclass,\n"
+                                                        "  pg_catalog.pg_get_expr(c.relpartbound, c.oid),\n  ");
 
                appendPQExpBufferStr(&buf,
                                                         pset.sversion >= 140000 ? "inhdetachpending" :
@@ -2441,25 +2441,25 @@ describeOneTableDetails(const char *schemaname,
                PGresult   *result;
 
                printfPQExpBuffer(&buf, "/* %s */\n", _("Get index details"));
-               appendPQExpBuffer(&buf,
-                                                 "SELECT i.indisunique, i.indisprimary, i.indisclustered, "
-                                                 "i.indisvalid,\n"
-                                                 "  (NOT i.indimmediate) AND "
-                                                 "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
-                                                 "WHERE conrelid = i.indrelid AND "
-                                                 "conindid = i.indexrelid AND "
-                                                 "contype IN (" CppAsString2(CONSTRAINT_PRIMARY) ","
-                                                 CppAsString2(CONSTRAINT_UNIQUE) ","
-                                                 CppAsString2(CONSTRAINT_EXCLUSION) ") 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 (" CppAsString2(CONSTRAINT_PRIMARY) ","
-                                                 CppAsString2(CONSTRAINT_UNIQUE) ","
-                                                 CppAsString2(CONSTRAINT_EXCLUSION) ") AND "
-                                                 "condeferred) AS condeferred,\n");
+               appendPQExpBufferStr(&buf,
+                                                        "SELECT i.indisunique, i.indisprimary, i.indisclustered, "
+                                                        "i.indisvalid,\n"
+                                                        "  (NOT i.indimmediate) AND "
+                                                        "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint "
+                                                        "WHERE conrelid = i.indrelid AND "
+                                                        "conindid = i.indexrelid AND "
+                                                        "contype IN (" CppAsString2(CONSTRAINT_PRIMARY) ","
+                                                        CppAsString2(CONSTRAINT_UNIQUE) ","
+                                                        CppAsString2(CONSTRAINT_EXCLUSION) ") 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 (" CppAsString2(CONSTRAINT_PRIMARY) ","
+                                                        CppAsString2(CONSTRAINT_UNIQUE) ","
+                                                        CppAsString2(CONSTRAINT_EXCLUSION) ") AND "
+                                                        "condeferred) AS condeferred,\n");
 
                if (pset.sversion >= 90400)
                        appendPQExpBufferStr(&buf, "i.indisreplident,\n");
@@ -2563,12 +2563,12 @@ describeOneTableDetails(const char *schemaname,
                if (tableinfo.hasindex)
                {
                        printfPQExpBuffer(&buf, "/* %s */\n", _("Get indexes for this table"));
-                       appendPQExpBuffer(&buf,
-                                                         "SELECT c2.relname, i.indisprimary, i.indisunique, "
-                                                         "i.indisclustered, i.indisvalid, "
-                                                         "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true),\n  "
-                                                         "pg_catalog.pg_get_constraintdef(con.oid, true), "
-                                                         "contype, condeferrable, condeferred");
+                       appendPQExpBufferStr(&buf,
+                                                                "SELECT c2.relname, i.indisprimary, i.indisunique, "
+                                                                "i.indisclustered, i.indisvalid, "
+                                                                "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true),\n  "
+                                                                "pg_catalog.pg_get_constraintdef(con.oid, true), "
+                                                                "contype, condeferrable, condeferred");
                        if (pset.sversion >= 90400)
                                appendPQExpBufferStr(&buf, ", i.indisreplident");
                        else
@@ -2827,7 +2827,7 @@ describeOneTableDetails(const char *schemaname,
                {
                        printfPQExpBuffer(&buf, "/* %s */\n",
                                                          _("Get row-level policies for this table"));
-                       appendPQExpBuffer(&buf, "SELECT pol.polname,");
+                       appendPQExpBufferStr(&buf, "SELECT pol.polname,");
                        if (pset.sversion >= 100000)
                                appendPQExpBufferStr(&buf,
                                                                         " pol.polpermissive,\n");
@@ -3011,18 +3011,18 @@ describeOneTableDetails(const char *schemaname,
                {
                        printfPQExpBuffer(&buf, "/* %s */\n",
                                                          _("Get extended statistics for this table"));
-                       appendPQExpBuffer(&buf,
-                                                         "SELECT oid, "
-                                                         "stxrelid::pg_catalog.regclass, "
-                                                         "stxnamespace::pg_catalog.regnamespace AS nsp, "
-                                                         "stxname,\n"
-                                                         "  (SELECT pg_catalog.string_agg(pg_catalog.quote_ident(attname),', ')\n"
-                                                         "   FROM pg_catalog.unnest(stxkeys) s(attnum)\n"
-                                                         "   JOIN pg_catalog.pg_attribute a ON (stxrelid = a.attrelid AND\n"
-                                                         "        a.attnum = s.attnum AND NOT attisdropped)) AS columns,\n"
-                                                         "  " CppAsString2(STATS_EXT_NDISTINCT) " = any(stxkind) AS ndist_enabled,\n"
-                                                         "  " CppAsString2(STATS_EXT_DEPENDENCIES) " = any(stxkind) AS deps_enabled,\n"
-                                                         "  " CppAsString2(STATS_EXT_MCV) " = any(stxkind) AS mcv_enabled,\n");
+                       appendPQExpBufferStr(&buf,
+                                                                "SELECT oid, "
+                                                                "stxrelid::pg_catalog.regclass, "
+                                                                "stxnamespace::pg_catalog.regnamespace AS nsp, "
+                                                                "stxname,\n"
+                                                                "  (SELECT pg_catalog.string_agg(pg_catalog.quote_ident(attname),', ')\n"
+                                                                "   FROM pg_catalog.unnest(stxkeys) s(attnum)\n"
+                                                                "   JOIN pg_catalog.pg_attribute a ON (stxrelid = a.attrelid AND\n"
+                                                                "        a.attnum = s.attnum AND NOT attisdropped)) AS columns,\n"
+                                                                "  " CppAsString2(STATS_EXT_NDISTINCT) " = any(stxkind) AS ndist_enabled,\n"
+                                                                "  " CppAsString2(STATS_EXT_DEPENDENCIES) " = any(stxkind) AS deps_enabled,\n"
+                                                                "  " CppAsString2(STATS_EXT_MCV) " = any(stxkind) AS mcv_enabled,\n");
 
                        if (pset.sversion >= 130000)
                                appendPQExpBufferStr(&buf, "  stxstattarget\n");
@@ -3439,10 +3439,10 @@ describeOneTableDetails(const char *schemaname,
 
                printfPQExpBuffer(&buf, "/* %s */\n",
                                                  _("Get triggers for this relation"));
-               appendPQExpBuffer(&buf,
-                                                 "SELECT t.tgname, "
-                                                 "pg_catalog.pg_get_triggerdef(t.oid, true), "
-                                                 "t.tgenabled, t.tgisinternal,\n");
+               appendPQExpBufferStr(&buf,
+                                                        "SELECT t.tgname, "
+                                                        "pg_catalog.pg_get_triggerdef(t.oid, true), "
+                                                        "t.tgenabled, t.tgisinternal,\n");
 
                /*
                 * Detect whether each trigger is inherited, and if so, get the name
@@ -3953,10 +3953,10 @@ describeRoles(const char *pattern, bool verbose, bool showSystem)
        initPQExpBuffer(&buf);
 
        printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching roles"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT r.rolname, r.rolsuper, r.rolinherit,\n"
-                                         "  r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,\n"
-                                         "  r.rolconnlimit, r.rolvaliduntil");
+       appendPQExpBufferStr(&buf,
+                                                "SELECT r.rolname, r.rolsuper, r.rolinherit,\n"
+                                                "  r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,\n"
+                                                "  r.rolconnlimit, r.rolvaliduntil");
 
        if (verbose)
        {
@@ -5646,12 +5646,12 @@ listTSParsersVerbose(const char *pattern)
        initPQExpBuffer(&buf);
 
        printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search parsers"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT p.oid,\n"
-                                         "  n.nspname,\n"
-                                         "  p.prsname\n"
-                                         "FROM pg_catalog.pg_ts_parser p\n"
-                                         "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n"
+       appendPQExpBufferStr(&buf,
+                                                "SELECT p.oid,\n"
+                                                "  n.nspname,\n"
+                                                "  p.prsname\n"
+                                                "FROM pg_catalog.pg_ts_parser p\n"
+                                                "LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.prsnamespace\n"
                );
 
        if (!validateSQLNamePattern(&buf, pattern, false, false,
@@ -6027,16 +6027,16 @@ listTSConfigsVerbose(const char *pattern)
        initPQExpBuffer(&buf);
 
        printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search configurations"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT c.oid, c.cfgname,\n"
-                                         "   n.nspname,\n"
-                                         "   p.prsname,\n"
-                                         "   np.nspname as pnspname\n"
-                                         "FROM pg_catalog.pg_ts_config c\n"
-                                         "   LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.cfgnamespace,\n"
-                                         " pg_catalog.pg_ts_parser p\n"
-                                         "   LEFT JOIN pg_catalog.pg_namespace np ON np.oid = p.prsnamespace\n"
-                                         "WHERE  p.oid = c.cfgparser\n"
+       appendPQExpBufferStr(&buf,
+                                                "SELECT c.oid, c.cfgname,\n"
+                                                "   n.nspname,\n"
+                                                "   p.prsname,\n"
+                                                "   np.nspname as pnspname\n"
+                                                "FROM pg_catalog.pg_ts_config c\n"
+                                                "   LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.cfgnamespace,\n"
+                                                " pg_catalog.pg_ts_parser p\n"
+                                                "   LEFT JOIN pg_catalog.pg_namespace np ON np.oid = p.prsnamespace\n"
+                                                "WHERE  p.oid = c.cfgparser\n"
                );
 
        if (!validateSQLNamePattern(&buf, pattern, true, false,
@@ -6522,9 +6522,9 @@ listExtensionContents(const char *pattern)
        initPQExpBuffer(&buf);
 
        printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching installed extensions"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT e.extname, e.oid\n"
-                                         "FROM pg_catalog.pg_extension e\n");
+       appendPQExpBufferStr(&buf,
+                                                "SELECT e.extname, e.oid\n"
+                                                "FROM pg_catalog.pg_extension e\n");
 
        if (!validateSQLNamePattern(&buf, pattern,
                                                                false, false,
@@ -6853,10 +6853,10 @@ describePublications(const char *pattern)
        initPQExpBuffer(&buf);
 
        printfPQExpBuffer(&buf, "/* %s */\n", _("Get details about matching publications"));
-       appendPQExpBuffer(&buf,
-                                         "SELECT oid, pubname,\n"
-                                         "  pg_catalog.pg_get_userbyid(pubowner) AS owner,\n"
-                                         "  puballtables");
+       appendPQExpBufferStr(&buf,
+                                                "SELECT oid, pubname,\n"
+                                                "  pg_catalog.pg_get_userbyid(pubowner) AS owner,\n"
+                                                "  puballtables");
 
        if (has_pubsequence)
                appendPQExpBufferStr(&buf,
@@ -6991,7 +6991,7 @@ describePublications(const char *pattern)
                        /* Get the tables for the specified publication */
                        printfPQExpBuffer(&buf, "/* %s */\n",
                                                          _("Get tables published by this publication"));
-                       appendPQExpBuffer(&buf, "SELECT n.nspname, c.relname");
+                       appendPQExpBufferStr(&buf, "SELECT n.nspname, c.relname");
                        if (pset.sversion >= 150000)
                        {
                                appendPQExpBufferStr(&buf,
@@ -7018,9 +7018,9 @@ describePublications(const char *pattern)
                                                          "  AND pr.prpubid = '%s'\n", pubid);
 
                        if (pset.sversion >= 190000)
-                               appendPQExpBuffer(&buf, "  AND NOT pr.prexcept\n");
+                               appendPQExpBufferStr(&buf, "  AND NOT pr.prexcept\n");
 
-                       appendPQExpBuffer(&buf, "ORDER BY 1,2");
+                       appendPQExpBufferStr(&buf, "ORDER BY 1,2");
                        if (!addFooterToPublicationDesc(&buf, _("Tables:"), false, &cont))
                                goto error_return;
 
index 6dab4f2cf5ba24580ae56205c8f6bae11dfe2cf2..6234a9bd129ccd1ffdb6e6732ab644f2c2836527 100644 (file)
@@ -192,7 +192,7 @@ test_gb18030_page_multiple(pe_test_config *tc)
        testname = createPQExpBuffer();
        appendPQExpBuffer(testname, ">repeat(%c, %zu)", input[0], input_len - 1);
        escapify(testname, input + input_len - 1, 1);
-       appendPQExpBuffer(testname, "< - GB18030 - PQescapeLiteral");
+       appendPQExpBufferStr(testname, "< - GB18030 - PQescapeLiteral");
 
        /* test itself */
        PQsetClientEncoding(tc->conn, "GB18030");
@@ -229,9 +229,9 @@ test_gb18030_json(pe_test_config *tc)
 
        /* name to describe the test */
        testname = createPQExpBuffer();
-       appendPQExpBuffer(testname, ">");
+       appendPQExpBufferChar(testname, '>');
        escapify(testname, input, input_len);
-       appendPQExpBuffer(testname, "< - GB18030 - pg_parse_json");
+       appendPQExpBufferStr(testname, "< - GB18030 - pg_parse_json");
 
        /* test itself */
        lex = makeJsonLexContextCstringLen(NULL, raw_buf->data, input_len,