diff options
Diffstat (limited to 'src/bin/psql/describe.c')
-rw-r--r-- | src/bin/psql/describe.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 0c3be1f5046..75a1e42ceea 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -5187,7 +5187,7 @@ listPublications(const char *pattern) PQExpBufferData buf; PGresult *res; printQueryOpt myopt = pset.popt; - static const bool translate_columns[] = {false, false, false, false, false, false}; + static const bool translate_columns[] = {false, false, false, false, false, false, false}; if (pset.sversion < 100000) { @@ -5207,13 +5207,17 @@ listPublications(const char *pattern) " puballtables AS \"%s\",\n" " pubinsert AS \"%s\",\n" " pubupdate AS \"%s\",\n" - " pubdelete AS \"%s\"\n", + " pubdelete AS \"%s\"", gettext_noop("Name"), gettext_noop("Owner"), gettext_noop("All tables"), gettext_noop("Inserts"), gettext_noop("Updates"), gettext_noop("Deletes")); + if (pset.sversion >= 110000) + appendPQExpBuffer(&buf, + ",\n pubtruncate AS \"%s\"", + gettext_noop("Truncates")); appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_publication\n"); @@ -5254,6 +5258,7 @@ describePublications(const char *pattern) PQExpBufferData buf; int i; PGresult *res; + bool has_pubtruncate; if (pset.sversion < 100000) { @@ -5265,13 +5270,19 @@ describePublications(const char *pattern) return true; } + has_pubtruncate = (pset.sversion >= 110000); + initPQExpBuffer(&buf); printfPQExpBuffer(&buf, "SELECT oid, pubname,\n" " pg_catalog.pg_get_userbyid(pubowner) AS owner,\n" - " puballtables, pubinsert, pubupdate, pubdelete\n" - "FROM pg_catalog.pg_publication\n"); + " puballtables, pubinsert, pubupdate, pubdelete"); + if (has_pubtruncate) + appendPQExpBuffer(&buf, + ", pubtruncate"); + appendPQExpBuffer(&buf, + "\nFROM pg_catalog.pg_publication\n"); processSQLNamePattern(pset.db, &buf, pattern, false, false, NULL, "pubname", NULL, @@ -5317,6 +5328,9 @@ describePublications(const char *pattern) printTableOpt myopt = pset.popt.topt; printTableContent cont; + if (has_pubtruncate) + ncols++; + initPQExpBuffer(&title); printfPQExpBuffer(&title, _("Publication %s"), pubname); printTableInit(&cont, &myopt, title.data, ncols, nrows); @@ -5326,12 +5340,16 @@ describePublications(const char *pattern) printTableAddHeader(&cont, gettext_noop("Inserts"), true, align); printTableAddHeader(&cont, gettext_noop("Updates"), true, align); printTableAddHeader(&cont, gettext_noop("Deletes"), true, align); + if (has_pubtruncate) + printTableAddHeader(&cont, gettext_noop("Truncates"), true, align); printTableAddCell(&cont, PQgetvalue(res, i, 2), false, false); printTableAddCell(&cont, PQgetvalue(res, i, 3), false, false); printTableAddCell(&cont, PQgetvalue(res, i, 4), false, false); printTableAddCell(&cont, PQgetvalue(res, i, 5), false, false); printTableAddCell(&cont, PQgetvalue(res, i, 6), false, false); + if (has_pubtruncate) + printTableAddCell(&cont, PQgetvalue(res, i, 7), false, false); if (!puballtables) { |