Fix tab-completion of ALTER SUBSCRIPTION SET PUBLICATION

Started by Masahiko Sawadaover 8 years ago4 messages
#1Masahiko Sawada
sawada.mshk@gmail.com
1 attachment(s)

Hi,

Attached patch for $subject.

With this patch, ALTER SUBSCRIPTION <sub> SET PUBLICATION <pub> [TAB]
completes with "REFRESH" and "SKIP REFRESH".
Specifying either REFRESH or SKIP REFRESH is mandatory after ALTER
SUBSCRIPTION SET PUBLICATION, so i think it's good to add this.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachments:

fix_ALTER_SUB_tab_completion.patchapplication/octet-stream; name=fix_ALTER_SUB_tab_completion.patchDownload
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index d4b6976..3542855 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1579,6 +1579,11 @@ psql_completion(const char *text, int start, int end)
 	{
 		/* complete with nothing here as this refers to remote publications */
 	}
+	/* ALTER SUBSCRIPTION <name> SET PUBLICATION <name> */
+	else if (HeadMatches3("ALTER", "SUBSCRIPTION", MatchAny) && TailMatches3("SET", "PUBLICATION", MatchAny))
+	{
+		COMPLETE_WITH_LIST2("REFRESH", "SKIP REFRESH");
+	}
 	/* ALTER SCHEMA <name> */
 	else if (Matches3("ALTER", "SCHEMA", MatchAny))
 		COMPLETE_WITH_LIST2("OWNER TO", "RENAME TO");
#2Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Masahiko Sawada (#1)
Re: Fix tab-completion of ALTER SUBSCRIPTION SET PUBLICATION

On 6/6/17 04:17, Masahiko Sawada wrote:

With this patch, ALTER SUBSCRIPTION <sub> SET PUBLICATION <pub> [TAB]
completes with "REFRESH" and "SKIP REFRESH".
Specifying either REFRESH or SKIP REFRESH is mandatory after ALTER
SUBSCRIPTION SET PUBLICATION, so i think it's good to add this.

That syntax does not exist anymore.

You could add support for the new WITH () syntax.

--
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

#3Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Peter Eisentraut (#2)
1 attachment(s)
Re: Fix tab-completion of ALTER SUBSCRIPTION SET PUBLICATION

On Wed, Jun 7, 2017 at 12:41 PM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:

On 6/6/17 04:17, Masahiko Sawada wrote:

With this patch, ALTER SUBSCRIPTION <sub> SET PUBLICATION <pub> [TAB]
completes with "REFRESH" and "SKIP REFRESH".
Specifying either REFRESH or SKIP REFRESH is mandatory after ALTER
SUBSCRIPTION SET PUBLICATION, so i think it's good to add this.

That syntax does not exist anymore.

You could add support for the new WITH () syntax.

Sorry, I missed it.
Attached updated version patch adds WITH() syntax.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachments:

fix_ALTER_SUB_tab_completion_v2.patchapplication/octet-stream; name=fix_ALTER_SUB_tab_completion_v2.patchDownload
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index d4b6976..e5f81e4 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1579,6 +1579,18 @@ psql_completion(const char *text, int start, int end)
 	{
 		/* complete with nothing here as this refers to remote publications */
 	}
+	/* ALTER SUBSCRIPTION <name> SET PUBLICATION <name> */
+	else if (HeadMatches3("ALTER", "SUBSCRIPTION", MatchAny) &&
+			 TailMatches3("SET", "PUBLICATION", MatchAny))
+	{
+		COMPLETE_WITH_CONST("WITH (");
+	}
+	/* ALTER SUBSCRIPTION <name> SET PUBLICATION <name> WITH ( */
+	else if (HeadMatches3("ALTER", "SUBSCRIPTION", MatchAny) &&
+			 TailMatches5("SET", "PUBLICATION", MatchAny, "WITH", "("))
+	{
+		COMPLETE_WITH_CONST("refresh");
+	}
 	/* ALTER SCHEMA <name> */
 	else if (Matches3("ALTER", "SCHEMA", MatchAny))
 		COMPLETE_WITH_LIST2("OWNER TO", "RENAME TO");
#4Peter Eisentraut
peter.eisentraut@2ndquadrant.com
In reply to: Masahiko Sawada (#3)
Re: Fix tab-completion of ALTER SUBSCRIPTION SET PUBLICATION

On 6/6/17 23:52, Masahiko Sawada wrote:

On Wed, Jun 7, 2017 at 12:41 PM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:

On 6/6/17 04:17, Masahiko Sawada wrote:

With this patch, ALTER SUBSCRIPTION <sub> SET PUBLICATION <pub> [TAB]
completes with "REFRESH" and "SKIP REFRESH".
Specifying either REFRESH or SKIP REFRESH is mandatory after ALTER
SUBSCRIPTION SET PUBLICATION, so i think it's good to add this.

That syntax does not exist anymore.

You could add support for the new WITH () syntax.

Sorry, I missed it.
Attached updated version patch adds WITH() syntax.

Committed, with the addition of the copy_data option.

--
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