logical replication: \dRp+ and "for all tables"
If I create a publication "for all tables", \dRp+ doesn't indicate it is
for all tables, it just gives a list of the tables.
So it doesn't distinguish between a publication specified to be for all
tables (which will be dynamic regarding future additions), and one which
just happens to include all the table which currently exist.
That seems unfortunate. Should the "for all tables" be included as another
column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?
Cheers,
Jeff
On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com> wrote:
If I create a publication "for all tables", \dRp+ doesn't indicate it is for
all tables, it just gives a list of the tables.So it doesn't distinguish between a publication specified to be for all
tables (which will be dynamic regarding future additions), and one which
just happens to include all the table which currently exist.That seems unfortunate. Should the "for all tables" be included as another
column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?
+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.
Regards,
--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
Attachments:
psql_publication.patchapplication/octet-stream; name=psql_publication.patchDownload
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index f1c3d9b..a2a7e34 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -5047,7 +5047,7 @@ listPublications(const char *pattern)
PQExpBufferData buf;
PGresult *res;
printQueryOpt myopt = pset.popt;
- static const bool translate_columns[] = {false, false, false, false, false};
+ static const bool translate_columns[] = {false, false, false, false, false, false};
if (pset.sversion < 100000)
{
@@ -5064,11 +5064,13 @@ listPublications(const char *pattern)
printfPQExpBuffer(&buf,
"SELECT pubname AS \"%s\",\n"
" pg_catalog.pg_get_userbyid(pubowner) AS \"%s\",\n"
+ " puballtables AS \"%s\",\n"
" pubinsert AS \"%s\",\n"
" pubupdate AS \"%s\",\n"
" pubdelete AS \"%s\"\n",
gettext_noop("Name"),
gettext_noop("Owner"),
+ gettext_noop("All Tables"),
gettext_noop("Inserts"),
gettext_noop("Updates"),
gettext_noop("Deletes"));
@@ -5145,7 +5147,7 @@ describePublications(const char *pattern)
for (i = 0; i < PQntuples(res); i++)
{
const char align = 'l';
- int ncols = 3;
+ int ncols = 4;
int nrows = 1;
int tables = 0;
PGresult *tabres;
@@ -5161,10 +5163,12 @@ describePublications(const char *pattern)
printfPQExpBuffer(&title, _("Publication %s"), pubname);
printTableInit(&cont, &myopt, title.data, ncols, nrows);
+ printTableAddHeader(&cont, gettext_noop("All Tables"), true, align);
printTableAddHeader(&cont, gettext_noop("Inserts"), true, align);
printTableAddHeader(&cont, gettext_noop("Updates"), true, align);
printTableAddHeader(&cont, gettext_noop("Deletes"), 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);
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:
On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com> wrote:
If I create a publication "for all tables", \dRp+ doesn't indicate it is
for
all tables, it just gives a list of the tables.
So it doesn't distinguish between a publication specified to be for all
tables (which will be dynamic regarding future additions), and one which
just happens to include all the table which currently exist.That seems unfortunate. Should the "for all tables" be included as
another
column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?
+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.
Looks good to me. Attached with regression test expected output changes.
Cheers,
Jeff
Attachments:
psql_publication_v2.patchapplication/octet-stream; name=psql_publication_v2.patchDownload
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
new file mode 100644
index f1c3d9b..a2a7e34
*** a/src/bin/psql/describe.c
--- b/src/bin/psql/describe.c
*************** listPublications(const char *pattern)
*** 5047,5053 ****
PQExpBufferData buf;
PGresult *res;
printQueryOpt myopt = pset.popt;
! static const bool translate_columns[] = {false, false, false, false, false};
if (pset.sversion < 100000)
{
--- 5047,5053 ----
PQExpBufferData buf;
PGresult *res;
printQueryOpt myopt = pset.popt;
! static const bool translate_columns[] = {false, false, false, false, false, false};
if (pset.sversion < 100000)
{
*************** listPublications(const char *pattern)
*** 5064,5074 ****
--- 5064,5076 ----
printfPQExpBuffer(&buf,
"SELECT pubname AS \"%s\",\n"
" pg_catalog.pg_get_userbyid(pubowner) AS \"%s\",\n"
+ " puballtables AS \"%s\",\n"
" pubinsert AS \"%s\",\n"
" pubupdate AS \"%s\",\n"
" pubdelete AS \"%s\"\n",
gettext_noop("Name"),
gettext_noop("Owner"),
+ gettext_noop("All Tables"),
gettext_noop("Inserts"),
gettext_noop("Updates"),
gettext_noop("Deletes"));
*************** describePublications(const char *pattern
*** 5145,5151 ****
for (i = 0; i < PQntuples(res); i++)
{
const char align = 'l';
! int ncols = 3;
int nrows = 1;
int tables = 0;
PGresult *tabres;
--- 5147,5153 ----
for (i = 0; i < PQntuples(res); i++)
{
const char align = 'l';
! int ncols = 4;
int nrows = 1;
int tables = 0;
PGresult *tabres;
*************** describePublications(const char *pattern
*** 5161,5170 ****
--- 5163,5174 ----
printfPQExpBuffer(&title, _("Publication %s"), pubname);
printTableInit(&cont, &myopt, title.data, ncols, nrows);
+ printTableAddHeader(&cont, gettext_noop("All Tables"), true, align);
printTableAddHeader(&cont, gettext_noop("Inserts"), true, align);
printTableAddHeader(&cont, gettext_noop("Updates"), true, align);
printTableAddHeader(&cont, gettext_noop("Deletes"), 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);
diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out
new file mode 100644
index e81919f..118c5c9
*** a/src/test/regress/expected/publication.out
--- b/src/test/regress/expected/publication.out
*************** ERROR: unrecognized publication paramet
*** 21,40 ****
CREATE PUBLICATION testpub_xxx WITH (publish = 'cluster, vacuum');
ERROR: unrecognized "publish" value: "cluster"
\dRp
! List of publications
! Name | Owner | Inserts | Updates | Deletes
! --------------------+--------------------------+---------+---------+---------
! testpib_ins_trunct | regress_publication_user | t | f | f
! testpub_default | regress_publication_user | f | t | f
(2 rows)
ALTER PUBLICATION testpub_default SET (publish = 'insert, update, delete');
\dRp
! List of publications
! Name | Owner | Inserts | Updates | Deletes
! --------------------+--------------------------+---------+---------+---------
! testpib_ins_trunct | regress_publication_user | t | f | f
! testpub_default | regress_publication_user | t | t | t
(2 rows)
--- adding tables
--- 21,40 ----
CREATE PUBLICATION testpub_xxx WITH (publish = 'cluster, vacuum');
ERROR: unrecognized "publish" value: "cluster"
\dRp
! List of publications
! Name | Owner | All Tables | Inserts | Updates | Deletes
! --------------------+--------------------------+------------+---------+---------+---------
! testpib_ins_trunct | regress_publication_user | f | t | f | f
! testpub_default | regress_publication_user | f | f | t | f
(2 rows)
ALTER PUBLICATION testpub_default SET (publish = 'insert, update, delete');
\dRp
! List of publications
! Name | Owner | All Tables | Inserts | Updates | Deletes
! --------------------+--------------------------+------------+---------+---------+---------
! testpib_ins_trunct | regress_publication_user | f | t | f | f
! testpub_default | regress_publication_user | f | t | t | t
(2 rows)
--- adding tables
*************** CREATE TABLE testpub_tbl3a (b text) INHE
*** 82,100 ****
CREATE PUBLICATION testpub3 FOR TABLE testpub_tbl3;
CREATE PUBLICATION testpub4 FOR TABLE ONLY testpub_tbl3;
\dRp+ testpub3
! Publication testpub3
! Inserts | Updates | Deletes
! ---------+---------+---------
! t | t | t
Tables:
"public.testpub_tbl3"
"public.testpub_tbl3a"
\dRp+ testpub4
! Publication testpub4
! Inserts | Updates | Deletes
! ---------+---------+---------
! t | t | t
Tables:
"public.testpub_tbl3"
--- 82,100 ----
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
Tables:
"public.testpub_tbl3"
"public.testpub_tbl3a"
\dRp+ testpub4
! Publication testpub4
! All Tables | Inserts | Updates | Deletes
! ------------+---------+---------+---------
! f | t | t | t
Tables:
"public.testpub_tbl3"
*************** ERROR: relation "testpub_tbl1" is alrea
*** 112,121 ****
CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_tbl1;
ERROR: publication "testpub_fortbl" already exists
\dRp+ testpub_fortbl
! Publication testpub_fortbl
! Inserts | Updates | Deletes
! ---------+---------+---------
! t | t | t
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
--- 112,121 ----
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
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
*************** Publications:
*** 158,167 ****
"testpub_fortbl"
\dRp+ testpub_default
! Publication testpub_default
! Inserts | Updates | Deletes
! ---------+---------+---------
! t | t | t
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
--- 158,167 ----
"testpub_fortbl"
\dRp+ testpub_default
! Publication testpub_default
! All Tables | Inserts | Updates | Deletes
! ------------+---------+---------+---------
! f | t | t | t
Tables:
"pub_test.testpub_nopk"
"public.testpub_tbl1"
*************** DROP TABLE testpub_parted;
*** 203,212 ****
DROP VIEW testpub_view;
DROP TABLE testpub_tbl1;
\dRp+ testpub_default
! Publication testpub_default
! Inserts | Updates | Deletes
! ---------+---------+---------
! t | t | t
(1 row)
-- fail - must be owner of publication
--- 203,212 ----
DROP VIEW testpub_view;
DROP TABLE testpub_tbl1;
\dRp+ testpub_default
! Publication testpub_default
! All Tables | Inserts | Updates | Deletes
! ------------+---------+---------+---------
! f | t | t | t
(1 row)
-- fail - must be owner of publication
*************** ERROR: must be owner of publication tes
*** 216,235 ****
RESET ROLE;
ALTER PUBLICATION testpub_default RENAME TO testpub_foo;
\dRp testpub_foo
! List of publications
! Name | Owner | Inserts | Updates | Deletes
! -------------+--------------------------+---------+---------+---------
! testpub_foo | regress_publication_user | t | t | t
(1 row)
-- rename back to keep the rest simple
ALTER PUBLICATION testpub_foo RENAME TO testpub_default;
ALTER PUBLICATION testpub_default OWNER TO regress_publication_user2;
\dRp testpub_default
! List of publications
! Name | Owner | Inserts | Updates | Deletes
! -----------------+---------------------------+---------+---------+---------
! testpub_default | regress_publication_user2 | t | t | t
(1 row)
DROP PUBLICATION testpub_default;
--- 216,235 ----
RESET ROLE;
ALTER PUBLICATION testpub_default RENAME TO testpub_foo;
\dRp testpub_foo
! List of publications
! Name | Owner | All Tables | Inserts | Updates | Deletes
! -------------+--------------------------+------------+---------+---------+---------
! testpub_foo | regress_publication_user | f | t | t | t
(1 row)
-- rename back to keep the rest simple
ALTER PUBLICATION testpub_foo RENAME TO testpub_default;
ALTER PUBLICATION testpub_default OWNER TO regress_publication_user2;
\dRp testpub_default
! List of publications
! Name | Owner | All Tables | Inserts | Updates | Deletes
! -----------------+---------------------------+------------+---------+---------+---------
! testpub_default | regress_publication_user2 | f | t | t | t
(1 row)
DROP PUBLICATION testpub_default;
Jeff Janes <jeff.janes@gmail.com> writes:
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com> wrote:
That seems unfortunate. Should the "for all tables" be included as
another column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?
+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.
Looks good to me. Attached with regression test expected output changes.
This patch confuses me. In the first place, I don't see the argument for
adding the "all tables" property to \dRp output; it seems out of place
there. In the second place, this really fails to respond to what I'd call
the main usability problem with \dRp+, which is that the all-tables
property is likely to lead to an unreadably bulky list of affected tables.
What I'd say the patch ought to do is *replace* \dRp+'s list of affected
tables with a notation like "(all tables)" when puballtables is true.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Sat, Jun 10, 2017 at 11:42 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeff Janes <jeff.janes@gmail.com> writes:
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com> wrote:
That seems unfortunate. Should the "for all tables" be included as
another column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.Looks good to me. Attached with regression test expected output changes.
This patch confuses me. In the first place, I don't see the argument for
adding the "all tables" property to \dRp output; it seems out of place
there.
I thought since "all tables" is also a primitive and frequently
accessed information we can add it to \dRp output. But I'm not sure
it's appropriate coping. Is there a criterion for what information we
should add to the "backslash" command or the "backslash+" command?
In the second place, this really fails to respond to what I'd call
the main usability problem with \dRp+, which is that the all-tables
property is likely to lead to an unreadably bulky list of affected tables.
What I'd say the patch ought to do is *replace* \dRp+'s list of affected
tables with a notation like "(all tables)" when puballtables is true.
+1 for replacing it with "(al tables)" when puballtables is true.
Regards,
--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Sat, Jun 10, 2017 at 7:42 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeff Janes <jeff.janes@gmail.com> writes:
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com>
wrote:
That seems unfortunate. Should the "for all tables" be included as
another column in \dRp and \dRp+, or at least as a footnote tag in\dRp+ ?
+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.Looks good to me. Attached with regression test expected output
changes.
This patch confuses me. In the first place, I don't see the argument for
adding the "all tables" property to \dRp output; it seems out of place
there.
Why? It is an important property of the publication which is single-valued
and
and easy to represent concisely. What makes it out of place?
In the second place, this really fails to respond to what I'd call
the main usability problem with \dRp+, which is that the all-tables
property is likely to lead to an unreadably bulky list of affected tables.
What I'd say the patch ought to do is *replace* \dRp+'s list of affected
tables with a notation like "(all tables)" when puballtables is true.
I'd considered that, but I find the pager does a fine job of dealing with
the bulkiness of the list. I thought it might be a good idea to not only
point out that it is all tables, but also remind people of exactly what
tables those are currently (in case it had slipped their mind that all
tables will include table from other schemas not in their search_path, for
example)
Cheers,
Jef
Jeff Janes <jeff.janes@gmail.com> writes:
On Sat, Jun 10, 2017 at 7:42 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
In the second place, this really fails to respond to what I'd call
the main usability problem with \dRp+, which is that the all-tables
property is likely to lead to an unreadably bulky list of affected tables.
What I'd say the patch ought to do is *replace* \dRp+'s list of affected
tables with a notation like "(all tables)" when puballtables is true.
I'd considered that, but I find the pager does a fine job of dealing with
the bulkiness of the list.
Have you tried it with a few tens of thousands of tables? Even if your
pager makes it work comfortably, others might find it less satisfactory.
I thought it might be a good idea to not only
point out that it is all tables, but also remind people of exactly what
tables those are currently (in case it had slipped their mind that all
tables will include table from other schemas not in their search_path, for
example)
I'm not really buying that. If they don't know what "all tables" means,
a voluminous list isn't likely to help much.
I was hoping we'd get some more votes in this thread, but it seems like
we've only got three, and by my count two of them are for just printing
"all tables".
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Wed, Jun 14, 2017 at 4:10 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
I was hoping we'd get some more votes in this thread, but it seems like
we've only got three, and by my count two of them are for just printing
"all tables".
The following looks right - given a publication it would nice to know if
its for all tables or not.
\dRp
! List of publications
! Name | Owner | All Tables | Inserts |
Updates | Deletes
!
--------------------+--------------------------+------------+---------+---------+---------
! testpib_ins_trunct | regress_publication_user | f | t | f
| f
! testpub_default | regress_publication_user | f | t | t
| t
This [I couldn't find a regression diff entry where "All Tables" is true :(
...]
\dRp+ testpub3
! Publication testpub3
! All Tables | Inserts | Updates | Deletes
! ------------+---------+---------+---------
! f | t | t | t
Tables:
"public.testpub_tbl3"
"public.testpub_tbl3a"
I agree with Tom and Masahiko Sawada, if "All Tables" is false we continue
to show "Tables:\n\t[tables]" but when "All Tables" is true we'd write
something like "Tables: All Tables in Database". The user can query the
database if they wish to know the names of all those tables exactly.
I suppose we could go further here, say by simplifying "public.tbl1,
public.tbl2", when public only contains two tables, to "public.*". Or
consider never listing more than some small number of rows and provide a
"show all" option (\dRp++ or just a function/view) that would list every
single table. But I would go with the default "+" behavior being to show
table names when the listing of tables is fixed and to say "All Tables in
Database" when it is dynamic. In "+" mode that makes the "All Tables"
boolean redundant though I'd keep it around for consistency.
David J.
On 15/06/17 11:10, Tom Lane wrote:
Jeff Janes <jeff.janes@gmail.com> writes:
On Sat, Jun 10, 2017 at 7:42 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
In the second place, this really fails to respond to what I'd call
the main usability problem with \dRp+, which is that the all-tables
property is likely to lead to an unreadably bulky list of affected tables.
What I'd say the patch ought to do is *replace* \dRp+'s list of affected
tables with a notation like "(all tables)" when puballtables is true.I'd considered that, but I find the pager does a fine job of dealing with
the bulkiness of the list.Have you tried it with a few tens of thousands of tables? Even if your
pager makes it work comfortably, others might find it less satisfactory.I thought it might be a good idea to not only
point out that it is all tables, but also remind people of exactly what
tables those are currently (in case it had slipped their mind that all
tables will include table from other schemas not in their search_path, for
example)I'm not really buying that. If they don't know what "all tables" means,
a voluminous list isn't likely to help much.I was hoping we'd get some more votes in this thread, but it seems like
we've only got three, and by my count two of them are for just printing
"all tables".
I'd certainly prefer to see 'all tables' - in addition to being more
compact, it also reflects more correctly how the publication was defined.
regards
Mark
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 6/10/17 02:02, Jeff Janes wrote:
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com
<mailto:sawada.mshk@gmail.com>> wrote:On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com
<mailto:jeff.janes@gmail.com>> wrote:If I create a publication "for all tables", \dRp+ doesn't indicate it is for
all tables, it just gives a list of the tables.So it doesn't distinguish between a publication specified to be for all
tables (which will be dynamic regarding future additions), and one which
just happens to include all the table which currently exist.That seems unfortunate. Should the "for all tables" be included as another
column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.Looks good to me. Attached with regression test expected output changes.
I have committed your patch and removed the "Tables" footer for
all-tables publications, as was discussed later in the thread.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Thu, Jun 15, 2017 at 11:49 PM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:
On 6/10/17 02:02, Jeff Janes wrote:
On Fri, Jun 9, 2017 at 10:20 PM, Masahiko Sawada <sawada.mshk@gmail.com
<mailto:sawada.mshk@gmail.com>> wrote:On Sat, Jun 10, 2017 at 7:29 AM, Jeff Janes <jeff.janes@gmail.com
<mailto:jeff.janes@gmail.com>> wrote:If I create a publication "for all tables", \dRp+ doesn't indicate it is for
all tables, it just gives a list of the tables.So it doesn't distinguish between a publication specified to be for all
tables (which will be dynamic regarding future additions), and one which
just happens to include all the table which currently exist.That seems unfortunate. Should the "for all tables" be included as another
column in \dRp and \dRp+, or at least as a footnote tag in \dRp+ ?+1. I was thinking the same. Attached patch adds "All Tables" column
to both \dRp and \dRp+.Looks good to me. Attached with regression test expected output changes.
I have committed your patch and removed the "Tables" footer for
all-tables publications, as was discussed later in the thread.
Thank you!
Regards,
--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers