v1-0001-Add-tab-auto-complete-support-for-the-Row-Filter-.patch

application/octet-stream

Filename: v1-0001-Add-tab-auto-complete-support-for-the-Row-Filter-.patch
Type: application/octet-stream
Part: 0
Message: Re: row filtering for logical replication

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 v1-0001
Subject: Add tab auto-complete support for the Row Filter WHERE.
File+
src/bin/psql/tab-complete.c 8 2
From 0b8730deb928b49aa93bb5d7dab42245e1a90de4 Mon Sep 17 00:00:00 2001
From: Peter Smith <peter.b.smith@fujitsu.com>
Date: Fri, 3 Sep 2021 11:51:06 +1000
Subject: [PATCH v1] Add tab auto-complete support for the Row Filter WHERE.

Following auto-completes are added:

Complete "CREATE PUBLICATION <name> FOR TABLE <name>" with "WHERE (".
Complete "ALTER PUBLICATION <name> ADD TABLE <name>" with "WHERE (".
Complete "ALTER PUBLICATION <name> SET TABLE <name>" with "WHERE (".
---
 src/bin/psql/tab-complete.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 75b8676..c33e114 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1648,6 +1648,11 @@ psql_completion(const char *text, int start, int end)
 	/* ALTER PUBLICATION <name> SET */
 	else if (Matches("ALTER", "PUBLICATION", MatchAny, "SET"))
 		COMPLETE_WITH("(", "TABLE");
+	/* ALTER PUBLICATION <name> SET TABLE <name> */
+	/* ALTER PUBLICATION <name> ADD TABLE <name> */
+	else if (Matches("ALTER", "PUBLICATION", MatchAny, "SET", "TABLE", MatchAny)
+		|| Matches("ALTER", "PUBLICATION", MatchAny, "ADD", "TABLE", MatchAny))
+		COMPLETE_WITH("WHERE (");
 	/* ALTER PUBLICATION <name> SET ( */
 	else if (HeadMatches("ALTER", "PUBLICATION", MatchAny) && TailMatches("SET", "("))
 		COMPLETE_WITH("publish", "publish_via_partition_root");
@@ -2693,9 +2698,10 @@ psql_completion(const char *text, int start, int end)
 		COMPLETE_WITH("TABLE", "ALL TABLES");
 	else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL"))
 		COMPLETE_WITH("TABLES");
-	else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES")
-			 || Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", MatchAny))
+	else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "ALL", "TABLES"))
 		COMPLETE_WITH("WITH (");
+	else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE", MatchAny))
+		COMPLETE_WITH("WHERE (", "WITH (");
 	/* Complete "CREATE PUBLICATION <name> FOR TABLE" with "<table>, ..." */
 	else if (Matches("CREATE", "PUBLICATION", MatchAny, "FOR", "TABLE"))
 		COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_tables, NULL);
-- 
1.8.3.1