0006-fixup-Print-publication-WHERE-condition-in-psql.patch
text/plain
Filename: 0006-fixup-Print-publication-WHERE-condition-in-psql.patch
Type: text/plain
Part: 5
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0006
Subject: fixup! Print publication WHERE condition in psql
| File | + | − |
|---|---|---|
| src/bin/psql/describe.c | 7 | 4 |
| src/test/regress/expected/publication.out | 1 | 1 |
From 326c489012f020f8ef38e1187aea72b332d1b9a4 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Thu, 25 Mar 2021 12:08:51 +0100
Subject: [PATCH 6/6] fixup! Print publication WHERE condition in psql
Make psql backward compatible. Also add necessary parentheses.
---
src/bin/psql/describe.c | 11 +++++++----
src/test/regress/expected/publication.out | 2 +-
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 983ba512f7..6dce968414 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -6038,9 +6038,12 @@ describePublications(const char *pattern)
if (!puballtables)
{
printfPQExpBuffer(&buf,
- "SELECT n.nspname, c.relname,\n"
- " pg_get_expr(pr.prqual, c.oid)\n"
- "FROM pg_catalog.pg_class c,\n"
+ "SELECT n.nspname, c.relname");
+ if (pset.sversion >= 140000)
+ appendPQExpBuffer(&buf,
+ ", pg_get_expr(pr.prqual, c.oid)");
+ appendPQExpBuffer(&buf,
+ "\nFROM pg_catalog.pg_class c,\n"
" pg_catalog.pg_namespace n,\n"
" pg_catalog.pg_publication_rel pr\n"
"WHERE c.relnamespace = n.oid\n"
@@ -6070,7 +6073,7 @@ describePublications(const char *pattern)
PQgetvalue(tabres, j, 1));
if (!PQgetisnull(tabres, j, 2))
- appendPQExpBuffer(&buf, " WHERE %s",
+ appendPQExpBuffer(&buf, " WHERE (%s)",
PQgetvalue(tabres, j, 2));
printTableAddFooter(&cont, buf.data);
diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out
index c8cf1b685e..da49a2e215 100644
--- a/src/test/regress/expected/publication.out
+++ b/src/test/regress/expected/publication.out
@@ -181,7 +181,7 @@ ERROR: cannot use a WHERE clause when removing table from publication "testpub5
--------------------------+------------+---------+---------+---------+-----------+----------
regress_publication_user | f | t | t | t | t | f
Tables:
- "public.testpub_rf_tbl3" WHERE ((e > 300) AND (e < 500))
+ "public.testpub_rf_tbl3" WHERE (((e > 300) AND (e < 500)))
DROP TABLE testpub_rf_tbl1;
DROP TABLE testpub_rf_tbl2;
--
2.30.2