diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 73c69a1c258..f130687d7ed 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -6222,7 +6222,7 @@ lookup_object_oid(EditableObjectType obj_type, const char *desc, * query to retrieve the function's OID using a cast to regproc or * regprocedure (as appropriate). */ - printfPQExpBuffer(query, "/* %s */\n", _("Get function's OID")); + addQueryComment(query, "Get function's OID"); appendPQExpBufferStr(query, "SELECT "); appendStringLiteralConn(query, desc, pset.db); appendPQExpBuffer(query, "::pg_catalog.%s::pg_catalog.oid", @@ -6236,7 +6236,7 @@ lookup_object_oid(EditableObjectType obj_type, const char *desc, * this code doesn't check if the relation is actually a view. * We'll detect that in get_create_object_cmd(). */ - printfPQExpBuffer(query, "/* %s */\n", _("Get view's OID")); + addQueryComment(query, "Get view's OID"); appendPQExpBufferStr(query, "SELECT "); appendStringLiteralConn(query, desc, pset.db); appendPQExpBufferStr(query, "::pg_catalog.regclass::pg_catalog.oid"); @@ -6278,7 +6278,7 @@ get_create_object_cmd(EditableObjectType obj_type, Oid oid, switch (obj_type) { case EditableFunction: - printfPQExpBuffer(query, "/* %s */\n", _("Get function's definition")); + addQueryComment(query, "Get function's definition"); appendPQExpBuffer(query, "SELECT pg_catalog.pg_get_functiondef(%u)", oid); @@ -6298,7 +6298,7 @@ get_create_object_cmd(EditableObjectType obj_type, Oid oid, * separately. Materialized views (introduced in 9.3) may have * arbitrary storage parameter reloptions. */ - printfPQExpBuffer(query, "/* %s */\n", _("Get view's definition and details")); + addQueryComment(query, "Get view's definition and details"); if (pset.sversion >= 90400) { appendPQExpBuffer(query, diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 305c423e196..6d4cbcad806 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -2617,6 +2617,28 @@ command_no_begin(const char *query) } +/* + * addQueryComment + * + * Reset buf and insert a comment holding label. The comment will show up + * in -E output and in the server log. + * + * If it's safe, we attempt to translate the label string. + * (addQueryComment is marked as a gettext trigger, so this requires no + * special effort at call sites.) + */ +void +addQueryComment(PQExpBuffer buf, const char *label) +{ +#if defined(ENABLE_NLS) + /* This will become conditional once we've settled on the tests to use */ + label = _(label); +#endif + + printfPQExpBuffer(buf, "/* %s */\n", label); +} + + /* * Test if the current user is a database superuser. */ diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h index d4b99b42331..58b784cc058 100644 --- a/src/bin/psql/common.h +++ b/src/bin/psql/common.h @@ -36,6 +36,8 @@ extern int PSQLexecWatch(const char *query, const printQueryOpt *opt, FILE *prin extern bool SendQuery(const char *query, int num_copy_from_stdin); +extern void addQueryComment(PQExpBuffer buf, const char *label); + extern bool is_superuser(void); extern bool standard_strings(void); extern const char *session_username(void); diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 5b8c813f687..fe9b797c4dd 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -83,7 +83,7 @@ describeAggregates(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching aggregates")); + addQueryComment(&buf, "Get matching aggregates"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " p.proname AS \"%s\",\n" @@ -165,7 +165,7 @@ describeAccessMethods(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching access methods")); + addQueryComment(&buf, "Get matching access methods"); appendPQExpBuffer(&buf, "SELECT amname AS \"%s\",\n" " CASE amtype" @@ -229,7 +229,7 @@ describeTablespaces(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching tablespaces")); + addQueryComment(&buf, "Get matching tablespaces"); appendPQExpBuffer(&buf, "SELECT spcname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(spcowner) AS \"%s\",\n" @@ -340,7 +340,7 @@ describeFunctions(const char *functypes, const char *func_pattern, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching functions")); + addQueryComment(&buf, "Get matching functions"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " p.proname as \"%s\",\n", @@ -648,7 +648,7 @@ describeTypes(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching types")); + addQueryComment(&buf, "Get matching types"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " pg_catalog.format_type(t.oid, NULL) AS \"%s\",\n", @@ -823,7 +823,7 @@ describeOperators(const char *oper_pattern, * to pre-v14 servers. */ - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching operators")); + addQueryComment(&buf, "Get matching operators"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " o.oprname AS \"%s\",\n" @@ -957,7 +957,7 @@ listAllDbs(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching databases")); + addQueryComment(&buf, "Get matching databases"); appendPQExpBuffer(&buf, "SELECT\n" " d.datname as \"%s\",\n" @@ -1070,8 +1070,7 @@ permissionsList(const char *pattern, bool showSystem) /* * we ignore indexes and toast tables since they have no meaningful rights */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get access privileges of matching relations")); + addQueryComment(&buf, "Get access privileges of matching relations"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " c.relname as \"%s\",\n" @@ -1233,7 +1232,7 @@ listDefaultACLs(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching default ACLs")); + addQueryComment(&buf, "Get matching default ACLs"); appendPQExpBuffer(&buf, "SELECT pg_catalog.pg_get_userbyid(d.defaclrole) AS \"%s\",\n" " n.nspname AS \"%s\",\n" @@ -1315,7 +1314,7 @@ objectDescription(const char *pattern, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching object comments")); + addQueryComment(&buf, "Get matching object comments"); appendPQExpBuffer(&buf, "SELECT DISTINCT tt.nspname AS \"%s\", tt.name AS \"%s\", tt.object AS \"%s\", d.description AS \"%s\"\n" "FROM (\n", @@ -1508,8 +1507,7 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get matching relations to describe")); + addQueryComment(&buf, "Get matching relations to describe"); appendPQExpBufferStr(&buf, "SELECT c.oid,\n" " n.nspname,\n" @@ -1646,8 +1644,7 @@ describeOneTableDetails(const char *schemaname, initPQExpBuffer(&tmpbuf); /* Get general table info */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get general information about one relation")); + addQueryComment(&buf, "Get general information about one relation"); if (pset.sversion >= 120000) { appendPQExpBuffer(&buf, @@ -1780,7 +1777,7 @@ describeOneTableDetails(const char *schemaname, printQueryOpt myopt = pset.popt; char *footers[3] = {NULL, NULL, NULL}; - printfPQExpBuffer(&buf, "/* %s */\n", _("Get sequence information")); + addQueryComment(&buf, "Get sequence information"); if (pset.sversion >= 100000) { appendPQExpBuffer(&buf, @@ -1834,8 +1831,7 @@ describeOneTableDetails(const char *schemaname, goto error_return; /* Get the column that owns this sequence */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get the column that owns this sequence")); + addQueryComment(&buf, "Get the column that owns this sequence"); appendPQExpBuffer(&buf, "SELECT pg_catalog.quote_ident(nspname) || '.' ||" "\n pg_catalog.quote_ident(relname) || '.' ||" "\n pg_catalog.quote_ident(attname)," @@ -1880,8 +1876,7 @@ describeOneTableDetails(const char *schemaname, /* Print any publications */ if (pset.sversion >= 190000) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get publications containing this sequence")); + addQueryComment(&buf, "Get publications containing this sequence"); appendPQExpBuffer(&buf, "SELECT pubname FROM pg_catalog.pg_publication p" "\nWHERE p.puballsequences" "\n AND pg_catalog.pg_relation_is_publishable('%s')" @@ -1951,8 +1946,7 @@ describeOneTableDetails(const char *schemaname, * duplicative test logic below. */ cols = 0; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get per-column information for one relation")); + addQueryComment(&buf, "Get per-column information for one relation"); appendPQExpBufferStr(&buf, "SELECT a.attname"); attname_col = cols++; appendPQExpBufferStr(&buf, ",\n pg_catalog.format_type(a.atttypid, a.atttypmod)"); @@ -2255,8 +2249,7 @@ describeOneTableDetails(const char *schemaname, /* Footer information for a partition child table */ PGresult *result; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get partitioning information for this partition")); + addQueryComment(&buf, "Get partitioning information for this partition"); appendPQExpBufferStr(&buf, "SELECT inhparent::pg_catalog.regclass,\n" " pg_catalog.pg_get_expr(c.relpartbound, c.oid),\n "); @@ -2312,8 +2305,7 @@ describeOneTableDetails(const char *schemaname, /* Footer information for a partitioned table (partitioning parent) */ PGresult *result; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get partitioning information for this table")); + addQueryComment(&buf, "Get partitioning information for this table"); appendPQExpBuffer(&buf, "SELECT pg_catalog.pg_get_partkeydef('%s'::pg_catalog.oid);", oid); @@ -2336,8 +2328,7 @@ describeOneTableDetails(const char *schemaname, /* For a TOAST table, print name of owning table */ PGresult *result; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get the table that owns this TOAST table")); + addQueryComment(&buf, "Get the table that owns this TOAST table"); appendPQExpBuffer(&buf, "SELECT n.nspname, c.relname\n" "FROM pg_catalog.pg_class c" @@ -2366,7 +2357,7 @@ describeOneTableDetails(const char *schemaname, /* Footer information about an index */ PGresult *result; - printfPQExpBuffer(&buf, "/* %s */\n", _("Get index details")); + addQueryComment(&buf, "Get index details"); appendPQExpBufferStr(&buf, "SELECT i.indisunique, i.indisprimary, i.indisclustered, " "i.indisvalid,\n" @@ -2488,7 +2479,7 @@ describeOneTableDetails(const char *schemaname, /* print indexes */ if (tableinfo.hasindex) { - printfPQExpBuffer(&buf, "/* %s */\n", _("Get indexes for this table")); + addQueryComment(&buf, "Get indexes for this table"); appendPQExpBufferStr(&buf, "SELECT c2.relname, i.indisprimary, i.indisunique, " "i.indisclustered, i.indisvalid, " @@ -2593,8 +2584,7 @@ describeOneTableDetails(const char *schemaname, /* print table (and column) check constraints */ if (tableinfo.checks) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get check constraints for this table")); + addQueryComment(&buf, "Get check constraints for this table"); appendPQExpBuffer(&buf, "SELECT r.conname, " "pg_catalog.pg_get_constraintdef(r.oid, true)\n" @@ -2626,8 +2616,7 @@ describeOneTableDetails(const char *schemaname, } /* Print foreign-key constraints */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get foreign key constraints for this table")); + addQueryComment(&buf, "Get foreign key constraints for this table"); if (pset.sversion >= 120000 && (tableinfo.ispartition || tableinfo.relkind == RELKIND_PARTITIONED_TABLE)) { @@ -2698,8 +2687,7 @@ describeOneTableDetails(const char *schemaname, PQclear(result); /* print incoming foreign-key references */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get foreign keys referencing this table")); + addQueryComment(&buf, "Get foreign keys referencing this table"); if (pset.sversion >= 120000) { appendPQExpBuffer(&buf, @@ -2751,8 +2739,7 @@ describeOneTableDetails(const char *schemaname, /* print any row-level policies */ if (pset.sversion >= 90500) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get row-level policies for this table")); + addQueryComment(&buf, "Get row-level policies for this table"); appendPQExpBufferStr(&buf, "SELECT pol.polname,"); if (pset.sversion >= 100000) appendPQExpBufferStr(&buf, @@ -2835,8 +2822,7 @@ describeOneTableDetails(const char *schemaname, /* print any extended statistics */ if (pset.sversion >= 140000) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get extended statistics for this table")); + addQueryComment(&buf, "Get extended statistics for this table"); appendPQExpBuffer(&buf, "SELECT oid, " "stxrelid::pg_catalog.regclass, " @@ -2935,8 +2921,7 @@ describeOneTableDetails(const char *schemaname, } else if (pset.sversion >= 100000) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get extended statistics for this table")); + addQueryComment(&buf, "Get extended statistics for this table"); appendPQExpBufferStr(&buf, "SELECT oid, " "stxrelid::pg_catalog.regclass, " @@ -3016,8 +3001,7 @@ describeOneTableDetails(const char *schemaname, /* print rules */ if (tableinfo.hasrules && tableinfo.relkind != RELKIND_MATVIEW) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get rules for this relation")); + addQueryComment(&buf, "Get rules for this relation"); appendPQExpBuffer(&buf, "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true)), " "ev_enabled\n" @@ -3101,8 +3085,7 @@ describeOneTableDetails(const char *schemaname, /* print any publications */ if (pset.sversion >= 100000) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get publications that publish this table")); + addQueryComment(&buf, "Get publications that publish this table"); if (pset.sversion >= 150000) { appendPQExpBuffer(&buf, @@ -3215,8 +3198,7 @@ describeOneTableDetails(const char *schemaname, /* Print publications where the table is in the EXCEPT clause */ if (pset.sversion >= 190000) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get publications that exclude this table")); + addQueryComment(&buf, "Get publications that exclude this table"); appendPQExpBuffer(&buf, "SELECT pubname\n" "FROM pg_catalog.pg_publication p\n" @@ -3249,8 +3231,7 @@ describeOneTableDetails(const char *schemaname, */ if (verbose) { - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get not-null constraints for this table")); + addQueryComment(&buf, "Get not-null constraints for this table"); appendPQExpBuffer(&buf, "SELECT c.conname, a.attname, c.connoinherit,\n" " c.conislocal, c.coninhcount <> 0,\n" @@ -3300,7 +3281,7 @@ describeOneTableDetails(const char *schemaname, { PGresult *result; - printfPQExpBuffer(&buf, "/* %s */\n", _("Get view's definition")); + addQueryComment(&buf, "Get view's definition"); appendPQExpBuffer(&buf, "SELECT pg_catalog.pg_get_viewdef('%s'::pg_catalog.oid, true);", oid); @@ -3325,7 +3306,7 @@ describeOneTableDetails(const char *schemaname, /* print rules */ if (tableinfo.hasrules) { - printfPQExpBuffer(&buf, "/* %s */\n", _("Get rules for this view")); + addQueryComment(&buf, "Get rules for this view"); appendPQExpBuffer(&buf, "SELECT r.rulename, trim(trailing ';' from pg_catalog.pg_get_ruledef(r.oid, true))\n" "FROM pg_catalog.pg_rewrite r\n" @@ -3363,8 +3344,7 @@ describeOneTableDetails(const char *schemaname, PGresult *result; int tuples; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get triggers for this relation")); + addQueryComment(&buf, "Get triggers for this relation"); appendPQExpBufferStr(&buf, "SELECT t.tgname, " "pg_catalog.pg_get_triggerdef(t.oid, true), " @@ -3548,8 +3528,7 @@ describeOneTableDetails(const char *schemaname, char *ftoptions; /* Footer information about foreign table */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get foreign server for this table")); + addQueryComment(&buf, "Get foreign server for this table"); appendPQExpBuffer(&buf, "SELECT s.srvname,\n" " pg_catalog.array_to_string(ARRAY(\n" @@ -3585,8 +3564,7 @@ describeOneTableDetails(const char *schemaname, } /* print tables inherited from (exclude partitioned parents) */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get inheritance parent tables")); + addQueryComment(&buf, "Get inheritance parent tables"); appendPQExpBuffer(&buf, "SELECT c.oid::pg_catalog.regclass\n" "FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i\n" @@ -3621,7 +3599,7 @@ describeOneTableDetails(const char *schemaname, } /* print child tables (with additional info if partitions) */ - printfPQExpBuffer(&buf, "/* %s */\n", _("Get child tables")); + addQueryComment(&buf, "Get child tables"); if (pset.sversion >= 140000) appendPQExpBuffer(&buf, "SELECT c.oid::pg_catalog.regclass, c.relkind," @@ -3815,8 +3793,7 @@ add_tablespace_footer(printTableContent *const cont, char relkind, PQExpBufferData buf; initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get tablespace information for this relation")); + addQueryComment(&buf, "Get tablespace information for this relation"); appendPQExpBuffer(&buf, "SELECT spcname FROM pg_catalog.pg_tablespace\n" "WHERE oid = '%u';", tablespace); @@ -3878,7 +3855,7 @@ describeRoles(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching roles")); + addQueryComment(&buf, "Get matching roles"); appendPQExpBufferStr(&buf, "SELECT r.rolname, r.rolsuper, r.rolinherit,\n" " r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,\n" @@ -4018,7 +3995,7 @@ listDbRoleSettings(const char *pattern, const char *pattern2) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get per-database and per-role settings")); + addQueryComment(&buf, "Get per-database and per-role settings"); appendPQExpBuffer(&buf, "SELECT rolname AS \"%s\", datname AS \"%s\",\n" "pg_catalog.array_to_string(setconfig, E'\\n') AS \"%s\"\n" "FROM pg_catalog.pg_db_role_setting s\n" @@ -4086,7 +4063,7 @@ describeRoleGrants(const char *pattern, bool showSystem) printQueryOpt myopt = pset.popt; initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching role grants")); + addQueryComment(&buf, "Get matching role grants"); appendPQExpBuffer(&buf, "SELECT m.rolname AS \"%s\", r.rolname AS \"%s\",\n" " pg_catalog.concat_ws(', ',\n", @@ -4184,7 +4161,7 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching relations")); + addQueryComment(&buf, "Get matching relations"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " c.relname as \"%s\",\n" @@ -4458,8 +4435,7 @@ listPartitionedTables(const char *reltypes, const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get matching partitioned relations")); + addQueryComment(&buf, "Get matching partitioned relations"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " c.relname as \"%s\",\n" @@ -4635,7 +4611,7 @@ listLanguages(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching procedural languages")); + addQueryComment(&buf, "Get matching procedural languages"); appendPQExpBuffer(&buf, "SELECT l.lanname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(l.lanowner) as \"%s\",\n" @@ -4712,7 +4688,7 @@ listDomains(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching domains")); + addQueryComment(&buf, "Get matching domains"); appendPQExpBuffer(&buf, "SELECT n.nspname as \"%s\",\n" " t.typname as \"%s\",\n" @@ -4798,7 +4774,7 @@ listConversions(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching conversions")); + addQueryComment(&buf, "Get matching conversions"); appendPQExpBuffer(&buf, "SELECT n.nspname AS \"%s\",\n" " c.conname AS \"%s\",\n" @@ -4878,8 +4854,7 @@ describeConfigurationParameters(const char *pattern, bool verbose, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get matching configuration parameters")); + addQueryComment(&buf, "Get matching configuration parameters"); appendPQExpBuffer(&buf, "SELECT s.name AS \"%s\", " "pg_catalog.current_setting(s.name) AS \"%s\"", @@ -4960,7 +4935,7 @@ listEventTriggers(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching event triggers")); + addQueryComment(&buf, "Get matching event triggers"); appendPQExpBuffer(&buf, "SELECT evtname as \"%s\", " "evtevent as \"%s\", " @@ -5039,7 +5014,7 @@ listExtendedStats(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching extended statistics")); + addQueryComment(&buf, "Get matching extended statistics"); appendPQExpBuffer(&buf, "SELECT \n" "es.stxnamespace::pg_catalog.regnamespace::pg_catalog.text AS \"%s\", \n" @@ -5133,7 +5108,7 @@ listCasts(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching casts")); + addQueryComment(&buf, "Get matching casts"); appendPQExpBuffer(&buf, "SELECT pg_catalog.format_type(castsource, NULL) AS \"%s\",\n" " pg_catalog.format_type(casttarget, NULL) AS \"%s\",\n", @@ -5258,7 +5233,7 @@ listCollations(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching collations")); + addQueryComment(&buf, "Get matching collations"); appendPQExpBuffer(&buf, "SELECT\n" " n.nspname AS \"%s\",\n" @@ -5383,7 +5358,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching schemas")); + addQueryComment(&buf, "Get matching schemas"); appendPQExpBuffer(&buf, "SELECT n.nspname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(n.nspowner) AS \"%s\"", @@ -5427,8 +5402,7 @@ listSchemas(const char *pattern, bool verbose, bool showSystem) PGresult *result; int i; - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get publications that publish this schema")); + addQueryComment(&buf, "Get publications that publish this schema"); appendPQExpBuffer(&buf, "SELECT pubname \n" "FROM pg_catalog.pg_publication p\n" @@ -5509,7 +5483,7 @@ listTSParsers(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search parsers")); + addQueryComment(&buf, "Get matching text search parsers"); appendPQExpBuffer(&buf, "SELECT\n" " n.nspname as \"%s\",\n" @@ -5559,7 +5533,7 @@ listTSParsersVerbose(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search parsers")); + addQueryComment(&buf, "Get matching text search parsers"); appendPQExpBufferStr(&buf, "SELECT p.oid,\n" " n.nspname,\n" @@ -5637,7 +5611,7 @@ describeOneTSParser(const char *oid, const char *nspname, const char *prsname) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get text search parser details")); + addQueryComment(&buf, "Get text search parser details"); appendPQExpBuffer(&buf, "SELECT '%s' AS \"%s\",\n" " p.prsstart::pg_catalog.regproc AS \"%s\",\n" @@ -5706,8 +5680,7 @@ describeOneTSParser(const char *oid, const char *nspname, const char *prsname) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get text search parser token types")); + addQueryComment(&buf, "Get text search parser token types"); appendPQExpBuffer(&buf, "SELECT t.alias as \"%s\",\n" " t.description as \"%s\"\n" @@ -5758,7 +5731,7 @@ listTSDictionaries(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search dictionaries")); + addQueryComment(&buf, "Get matching text search dictionaries"); appendPQExpBuffer(&buf, "SELECT\n" " n.nspname as \"%s\",\n" @@ -5824,7 +5797,7 @@ listTSTemplates(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search templates")); + addQueryComment(&buf, "Get matching text search templates"); if (verbose) appendPQExpBuffer(&buf, "SELECT\n" @@ -5893,7 +5866,7 @@ listTSConfigs(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search configurations")); + addQueryComment(&buf, "Get matching text search configurations"); appendPQExpBuffer(&buf, "SELECT\n" " n.nspname as \"%s\",\n" @@ -5940,7 +5913,7 @@ listTSConfigsVerbose(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching text search configurations")); + addQueryComment(&buf, "Get matching text search configurations"); appendPQExpBufferStr(&buf, "SELECT c.oid, c.cfgname,\n" " n.nspname,\n" @@ -6027,7 +6000,7 @@ describeOneTSConfig(const char *oid, const char *nspname, const char *cfgname, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get text search configuration details")); + addQueryComment(&buf, "Get text search configuration details"); appendPQExpBuffer(&buf, "SELECT\n" " ( SELECT t.alias FROM\n" @@ -6097,7 +6070,7 @@ listForeignDataWrappers(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching foreign-data wrappers")); + addQueryComment(&buf, "Get matching foreign-data wrappers"); appendPQExpBuffer(&buf, "SELECT fdw.fdwname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(fdw.fdwowner) AS \"%s\",\n" @@ -6170,7 +6143,7 @@ listForeignServers(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching foreign servers")); + addQueryComment(&buf, "Get matching foreign servers"); appendPQExpBuffer(&buf, "SELECT s.srvname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(s.srvowner) AS \"%s\",\n" @@ -6248,7 +6221,7 @@ listUserMappings(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching user mappings")); + addQueryComment(&buf, "Get matching user mappings"); appendPQExpBuffer(&buf, "SELECT um.srvname AS \"%s\",\n" " um.usename AS \"%s\"", @@ -6305,7 +6278,7 @@ listForeignTables(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching foreign tables")); + addQueryComment(&buf, "Get matching foreign tables"); appendPQExpBuffer(&buf, "SELECT n.nspname AS \"%s\",\n" " c.relname AS \"%s\",\n" @@ -6379,7 +6352,7 @@ listExtensions(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching installed extensions")); + addQueryComment(&buf, "Get matching installed extensions"); appendPQExpBuffer(&buf, "SELECT e.extname AS \"%s\", " "e.extversion AS \"%s\", ae.default_version AS \"%s\"," @@ -6435,7 +6408,7 @@ listExtensionContents(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching installed extensions")); + addQueryComment(&buf, "Get matching installed extensions"); appendPQExpBufferStr(&buf, "SELECT e.extname, e.oid\n" "FROM pg_catalog.pg_extension e\n"); @@ -6505,7 +6478,7 @@ listOneExtensionContents(const char *extname, const char *oid) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get installed extension's contents")); + addQueryComment(&buf, "Get installed extension's contents"); appendPQExpBuffer(&buf, "SELECT pg_catalog.pg_describe_object(classid, objid, 0) AS \"%s\"\n" "FROM pg_catalog.pg_depend\n" @@ -6614,7 +6587,7 @@ listPublications(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching publications")); + addQueryComment(&buf, "Get matching publications"); appendPQExpBuffer(&buf, "SELECT pubname AS \"%s\",\n" " pg_catalog.pg_get_userbyid(pubowner) AS \"%s\",\n" @@ -6766,7 +6739,7 @@ describePublications(const char *pattern) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get details about matching publications")); + addQueryComment(&buf, "Get details about matching publications"); appendPQExpBufferStr(&buf, "SELECT oid, pubname,\n" " pg_catalog.pg_get_userbyid(pubowner) AS owner,\n" @@ -6903,8 +6876,7 @@ describePublications(const char *pattern) if (!puballtables) { /* Get the tables for the specified publication */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get tables published by this publication")); + addQueryComment(&buf, "Get tables published by this publication"); appendPQExpBufferStr(&buf, "SELECT n.nspname, c.relname"); if (pset.sversion >= 150000) { @@ -6941,8 +6913,7 @@ describePublications(const char *pattern) if (pset.sversion >= 150000) { /* Get the schemas for the specified publication */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get schemas published by this publication")); + addQueryComment(&buf, "Get schemas published by this publication"); appendPQExpBuffer(&buf, "SELECT n.nspname\n" "FROM pg_catalog.pg_namespace n\n" @@ -6959,8 +6930,7 @@ describePublications(const char *pattern) if (pset.sversion >= 190000) { /* Get tables in the EXCEPT clause for this publication */ - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get tables excluded by this publication")); + addQueryComment(&buf, "Get tables excluded by this publication"); appendPQExpBuffer(&buf, "SELECT n.nspname || '.' || c.relname\n" "FROM pg_catalog.pg_class c\n" @@ -7021,7 +6991,7 @@ describeSubscriptions(const char *pattern, bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching subscriptions")); + addQueryComment(&buf, "Get matching subscriptions"); appendPQExpBuffer(&buf, "SELECT subname AS \"%s\"\n" ", pg_catalog.pg_get_userbyid(subowner) AS \"%s\"\n" @@ -7191,7 +7161,7 @@ listOperatorClasses(const char *access_method_pattern, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching operator classes")); + addQueryComment(&buf, "Get matching operator classes"); appendPQExpBuffer(&buf, "SELECT\n" " am.amname AS \"%s\",\n" @@ -7293,7 +7263,7 @@ listOperatorFamilies(const char *access_method_pattern, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get matching operator families")); + addQueryComment(&buf, "Get matching operator families"); appendPQExpBuffer(&buf, "SELECT\n" " am.amname AS \"%s\",\n" @@ -7384,7 +7354,7 @@ listOpFamilyOperators(const char *access_method_pattern, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get operators of matching operator families")); + addQueryComment(&buf, "Get operators of matching operator families"); appendPQExpBuffer(&buf, "SELECT\n" " am.amname AS \"%s\",\n" @@ -7491,8 +7461,7 @@ listOpFamilyFunctions(const char *access_method_pattern, initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", - _("Get support functions of matching operator families")); + addQueryComment(&buf, "Get support functions of matching operator families"); appendPQExpBuffer(&buf, "SELECT\n" " am.amname AS \"%s\",\n" @@ -7579,7 +7548,7 @@ listLargeObjects(bool verbose) initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, "/* %s */\n", _("Get large objects")); + addQueryComment(&buf, "Get large objects"); appendPQExpBuffer(&buf, "SELECT oid as \"%s\",\n" " pg_catalog.pg_get_userbyid(lomowner) as \"%s\",\n ", diff --git a/src/bin/psql/nls.mk b/src/bin/psql/nls.mk index ef80163f9a4..d9b67650815 100644 --- a/src/bin/psql/nls.mk +++ b/src/bin/psql/nls.mk @@ -25,6 +25,7 @@ GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) \ ../../common/username.c \ ../../common/wait_error.c GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) \ - HELP0 HELPN N_ simple_prompt simple_prompt_extended + HELP0 HELPN N_ addQueryComment:2 simple_prompt \ + simple_prompt_extended GETTEXT_FLAGS = $(FRONTEND_COMMON_GETTEXT_FLAGS) \ HELPN:1:c-format