[PATCH] Tab completion for SET COMPRESSION

Started by Aleksander Alekseevover 3 years ago8 messages
#1Aleksander Alekseev
aleksander@timescale.com
1 attachment(s)

Hi hackers,

The proposed patch adds the missing tab completion for 'ALTER TABLE
... SET COMPRESSION ...' syntax.

--
Best regards,
Aleksander Alekseev

Attachments:

v1-0001-Tab-completion-for-SET-COMPRESSION.patchapplication/octet-stream; name=v1-0001-Tab-completion-for-SET-COMPRESSION.patchDownload
From 0e77dc6b125513668b7a131882bc55aa08d5a3ac Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Mon, 22 Aug 2022 15:40:17 +0300
Subject: [PATCH v1] Tab completion for SET COMPRESSION

Add tab completion for 'ALTER TABLE ... SET COMPRESSION ...' syntax.

Author: Aleksander Alekseev <aleksander@timescale.com>
Reviewed-by: TODO FIXME
Discussion: TODO FIXME
---
 src/bin/psql/tab-complete.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 62a39779b9..a7eccc75d2 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2385,6 +2385,10 @@ psql_completion(const char *text, int start, int end)
 	else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "(") ||
 			 Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "("))
 		COMPLETE_WITH("n_distinct", "n_distinct_inherited");
+	/* ALTER TABLE ALTER [COLUMN] <foo> SET COMPRESSION */
+	else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "COMPRESSION") ||
+			 Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "COMPRESSION"))
+		COMPLETE_WITH("DEFAULT", "PGLZ", "LZ4");
 	/* ALTER TABLE ALTER [COLUMN] <foo> SET STORAGE */
 	else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "SET", "STORAGE") ||
 			 Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "SET", "STORAGE"))
-- 
2.37.2

#2Shinya Kato
Shinya11.Kato@oss.nttdata.com
In reply to: Aleksander Alekseev (#1)
Re: [PATCH] Tab completion for SET COMPRESSION

On 2022-08-22 21:48, Aleksander Alekseev wrote:

Hi hackers,

The proposed patch adds the missing tab completion for 'ALTER TABLE
... SET COMPRESSION ...' syntax.

Thanks, LGTM.

In addition, why not take this opportunity to create a tab completion
for "ALTER TABLE <name> OF <type_name>" and "ALTER TABLE <name> NOT OF"?

--
Regards,

--
Shinya Kato
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

#3Michael Paquier
michael@paquier.xyz
In reply to: Shinya Kato (#2)
Re: [PATCH] Tab completion for SET COMPRESSION

On Tue, Sep 06, 2022 at 09:54:53AM +0900, Shinya Kato wrote:

In addition, why not take this opportunity to create a tab completion for
"ALTER TABLE <name> OF <type_name>" and "ALTER TABLE <name> NOT OF"?

Right. That looks fine to me, so applied.
--
Michael

#4Aleksander Alekseev
aleksander@timescale.com
In reply to: Michael Paquier (#3)
1 attachment(s)
Re: [PATCH] Tab completion for SET COMPRESSION

Hi hackers,

Right. That looks fine to me, so applied.

Thanks, Michael.

In addition, why not take this opportunity to create a tab completion for
"ALTER TABLE <name> OF <type_name>" and "ALTER TABLE <name> NOT OF"?

Thanks for reviewing, Shinya. Let's fix this too. The patch is attached.

--
Best regards,
Aleksander Alekseev

Attachments:

v1-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchapplication/octet-stream; name=v1-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchDownload
From 6e1aff811f2a55feab7c99e6d2099205a473785b Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Tue, 6 Sep 2022 11:20:17 +0300
Subject: [PATCH v1] Add psql tab compression for OF / NOT OF with ALTER TABLE

Author: Aleksander Alekseev
Reviewed-by: Shinya Kato
Discussion: https://postgr.es/m/CAJ7c6TMuT+=P7uDepjVpdqSEp2xOmXET3Y2K-xWAO=sCz-28gg@mail.gmail.com
---
 src/bin/psql/tab-complete.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index a7eccc75d2..8b57eecc48 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2240,7 +2240,8 @@ psql_completion(const char *text, int start, int end)
 					  "ENABLE", "INHERIT", "NO", "RENAME", "RESET",
 					  "OWNER TO", "SET", "VALIDATE CONSTRAINT",
 					  "REPLICA IDENTITY", "ATTACH PARTITION",
-					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY");
+					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY",
+					  "OF", "NOT OF");
 	/* ALTER TABLE xxx ADD */
 	else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
 	{
-- 
2.37.2

#5Shinya Kato
Shinya11.Kato@oss.nttdata.com
In reply to: Aleksander Alekseev (#4)
1 attachment(s)
Re: [PATCH] Tab completion for SET COMPRESSION

On 2022-09-06 17:28, Aleksander Alekseev wrote:

In addition, why not take this opportunity to create a tab completion
for
"ALTER TABLE <name> OF <type_name>" and "ALTER TABLE <name> NOT OF"?

Thanks for reviewing, Shinya. Let's fix this too. The patch is
attached.

Thanks for the new patch!
A minor modification has been made so that the composite type is also
completed after "ALTER TABLE <name> OF".

Thought?

--
Regards,

--
Shinya Kato
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

Attachments:

v2-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchtext/x-diff; name=v2-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchDownload
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 62a39779b9..053c0ea75c 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2240,7 +2240,8 @@ psql_completion(const char *text, int start, int end)
 					  "ENABLE", "INHERIT", "NO", "RENAME", "RESET",
 					  "OWNER TO", "SET", "VALIDATE CONSTRAINT",
 					  "REPLICA IDENTITY", "ATTACH PARTITION",
-					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY");
+					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY",
+					  "OF", "NOT OF");
 	/* ALTER TABLE xxx ADD */
 	else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
 	{
@@ -2469,6 +2470,10 @@ psql_completion(const char *text, int start, int end)
 	else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION", MatchAny))
 		COMPLETE_WITH("CONCURRENTLY", "FINALIZE");
 
+	/* ALTER TABLE <name> OF */
+	else if (TailMatches("ALTER", "TABLE", MatchAny, "OF"))
+		COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_composite_datatypes);
+
 	/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
 	else if (Matches("ALTER", "TABLESPACE", MatchAny))
 		COMPLETE_WITH("RENAME TO", "OWNER TO", "SET", "RESET");
#6Aleksander Alekseev
aleksander@timescale.com
In reply to: Shinya Kato (#5)
1 attachment(s)
Re: [PATCH] Tab completion for SET COMPRESSION

Hi Shinya,

A minor modification has been made so that the composite type is also
completed after "ALTER TABLE <name> OF".

LGTM. Here is v3 created with `git format-path`. Unlike v2 it also
includes the commit message.

--
Best regards,
Aleksander Alekseev

Attachments:

v3-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchapplication/octet-stream; name=v3-0001-Add-psql-tab-compression-for-OF-NOT-OF-with-ALTER.patchDownload
From 34c015c60fd7d6786a928108ce80395eeb7bb525 Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Tue, 6 Sep 2022 14:49:04 +0300
Subject: [PATCH v3] Add psql tab compression for OF / NOT OF with ALTER TABLE

Shinya Kato, Aleksander Alekseev
Discussion: https://postgr.es/m/CAJ7c6TMuT+=P7uDepjVpdqSEp2xOmXET3Y2K-xWAO=sCz-28gg@mail.gmail.com
---
 src/bin/psql/tab-complete.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index a7eccc75d2..c8f329d765 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2240,7 +2240,8 @@ psql_completion(const char *text, int start, int end)
 					  "ENABLE", "INHERIT", "NO", "RENAME", "RESET",
 					  "OWNER TO", "SET", "VALIDATE CONSTRAINT",
 					  "REPLICA IDENTITY", "ATTACH PARTITION",
-					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY");
+					  "DETACH PARTITION", "FORCE ROW LEVEL SECURITY",
+					  "OF", "NOT OF");
 	/* ALTER TABLE xxx ADD */
 	else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
 	{
@@ -2473,6 +2474,10 @@ psql_completion(const char *text, int start, int end)
 	else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION", MatchAny))
 		COMPLETE_WITH("CONCURRENTLY", "FINALIZE");
 
+	/* ALTER TABLE <name> OF */
+	else if (TailMatches("ALTER", "TABLE", MatchAny, "OF"))
+		COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_composite_datatypes);
+
 	/* ALTER TABLESPACE <foo> with RENAME TO, OWNER TO, SET, RESET */
 	else if (Matches("ALTER", "TABLESPACE", MatchAny))
 		COMPLETE_WITH("RENAME TO", "OWNER TO", "SET", "RESET");
-- 
2.37.2

#7Shinya Kato
Shinya11.Kato@oss.nttdata.com
In reply to: Aleksander Alekseev (#6)
Re: [PATCH] Tab completion for SET COMPRESSION

On 2022-09-06 20:57, Aleksander Alekseev wrote:

Hi Shinya,

A minor modification has been made so that the composite type is also
completed after "ALTER TABLE <name> OF".

LGTM. Here is v3 created with `git format-path`. Unlike v2 it also
includes the commit message.

Thanks! I marked it as ready for committer.

--
Regards,

--
Shinya Kato
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

#8Michael Paquier
michael@paquier.xyz
In reply to: Shinya Kato (#7)
Re: [PATCH] Tab completion for SET COMPRESSION

On Thu, Sep 08, 2022 at 04:40:32PM +0900, Shinya Kato wrote:

Thanks! I marked it as ready for committer.

I thought that there was a gotcha in this area for composite types,
but on second look it looks that I was wrong. Hence, applied.
--
Michael