summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2017-07-28 21:44:48 +0000
committerTom Lane2017-07-28 21:44:48 +0000
commit9dea962b3ef48f6e96172653b7cf80cb5f53e6b6 (patch)
tree9cbf5bed612739ec41101afe721dfebafb2d1b77
parent3c163a7fc76debbbdad1bdd3c43721cffe72f4db (diff)
Include publication owner's name in the output of \dRp+.
Without this, \dRp prints information that \dRp+ does not, which seems pretty odd. Daniel Gustafsson Discussion: https://postgr.es/m/[email protected]
-rw-r--r--src/bin/psql/describe.c11
-rw-r--r--src/test/regress/expected/publication.out48
2 files changed, 31 insertions, 28 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 78e9d895f0..798e71045f 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -5162,8 +5162,9 @@ describePublications(const char *pattern)
initPQExpBuffer(&buf);
printfPQExpBuffer(&buf,
- "SELECT oid, pubname, puballtables, pubinsert,\n"
- " pubupdate, pubdelete\n"
+ "SELECT oid, pubname,\n"
+ " pg_catalog.pg_get_userbyid(pubowner) AS owner,\n"
+ " puballtables, pubinsert, pubupdate, pubdelete\n"
"FROM pg_catalog.pg_publication\n");
processSQLNamePattern(pset.db, &buf, pattern, false, false,
@@ -5198,13 +5199,13 @@ describePublications(const char *pattern)
for (i = 0; i < PQntuples(res); i++)
{
const char align = 'l';
- int ncols = 4;
+ int ncols = 5;
int nrows = 1;
int tables = 0;
PGresult *tabres;
char *pubid = PQgetvalue(res, i, 0);
char *pubname = PQgetvalue(res, i, 1);
- bool puballtables = strcmp(PQgetvalue(res, i, 2), "t") == 0;
+ bool puballtables = strcmp(PQgetvalue(res, i, 3), "t") == 0;
int j;
PQExpBufferData title;
printTableOpt myopt = pset.popt.topt;
@@ -5214,6 +5215,7 @@ describePublications(const char *pattern)
printfPQExpBuffer(&title, _("Publication %s"), pubname);
printTableInit(&cont, &myopt, title.data, ncols, nrows);
+ printTableAddHeader(&cont, gettext_noop("Owner"), true, align);
printTableAddHeader(&cont, gettext_noop("All tables"), true, align);
printTableAddHeader(&cont, gettext_noop("Inserts"), true, align);
printTableAddHeader(&cont, gettext_noop("Updates"), true, align);
@@ -5223,6 +5225,7 @@ describePublications(const char *pattern)
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 (!puballtables)
{
diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out
index 50592c63a9..b101331d69 100644
--- a/src/test/regress/expected/publication.out
+++ b/src/test/regress/expected/publication.out
@@ -76,10 +76,10 @@ Publications:
"testpub_foralltables"
\dRp+ testpub_foralltables
- Publication testpub_foralltables
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- t | t | t | f
+ Publication testpub_foralltables
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | t | t | t | f
(1 row)
DROP TABLE testpub_tbl2;
@@ -89,19 +89,19 @@ CREATE TABLE testpub_tbl3a (b text) INHERITS (testpub_tbl3);
CREATE PUBLICATION testpub3 FOR TABLE testpub_tbl3;
CREATE PUBLICATION testpub4 FOR TABLE ONLY testpub_tbl3;
\dRp+ testpub3
- Publication testpub3
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- f | t | t | t
+ Publication testpub3
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | f | t | t | t
Tables:
"public.testpub_tbl3"
"public.testpub_tbl3a"
\dRp+ testpub4
- Publication testpub4
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- f | t | t | t
+ Publication testpub4
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | f | t | t | t
Tables:
"public.testpub_tbl3"
@@ -119,10 +119,10 @@ ERROR: relation "testpub_tbl1" is already member of publication "testpub_fortbl
CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_tbl1;
ERROR: publication "testpub_fortbl" already exists
\dRp+ testpub_fortbl
- Publication testpub_fortbl
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- f | t | t | t
+ Publication testpub_fortbl
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | f | t | t | t
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
@@ -165,10 +165,10 @@ Publications:
"testpub_fortbl"
\dRp+ testpub_default
- Publication testpub_default
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- f | t | t | t
+ Publication testpub_default
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | f | t | t | t
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
@@ -210,10 +210,10 @@ DROP TABLE testpub_parted;
DROP VIEW testpub_view;
DROP TABLE testpub_tbl1;
\dRp+ testpub_default
- Publication testpub_default
- All tables | Inserts | Updates | Deletes
-------------+---------+---------+---------
- f | t | t | t
+ Publication testpub_default
+ Owner | All tables | Inserts | Updates | Deletes
+--------------------------+------------+---------+---------+---------
+ regress_publication_user | f | t | t | t
(1 row)
-- fail - must be owner of publication