v3-0002-Enhance-tab-completion-to-ALTER-TYPE-ADD-DROP-ATT.patch
application/octet-stream
Filename: v3-0002-Enhance-tab-completion-to-ALTER-TYPE-ADD-DROP-ATT.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch v3-0002
Subject: Enhance tab completion to ALTER TYPE ADD/DROP ATTRIBUTE
| File | + | − |
|---|---|---|
| src/bin/psql/tab-complete.in.c | 9 | 0 |
From 985af98095f2b1da6d7586c6fcdae20df3fb0461 Mon Sep 17 00:00:00 2001
From: reshke kirill <reshke@double.cloud>
Date: Fri, 1 Nov 2024 17:56:23 +0000
Subject: [PATCH v3 2/3] Enhance tab completion to ALTER TYPE ADD/DROP
ATTRIBUTE
Now psql will complete
ALTER TYPE <typname> ADD ATTRIBUTE <attname>
with possible datatypes
Also, DROP/ADD ATTRIBUTE ... will be completed with CASCADE/RESRTICT
where appropriate
---
src/bin/psql/tab-complete.in.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index 4b5334f2f0..7a3826aee8 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -3007,6 +3007,15 @@ match_previous_words(int pattern_id,
*/
else if (Matches("ALTER", "TYPE", MatchAny, "ALTER|DROP|RENAME", "ATTRIBUTE"))
COMPLETE_WITH_ATTR(prev3_wd);
+ /* complete ALTER TYPE ADD ATTRIBUTE <foo> with list of types */
+ else if (Matches("ALTER", "TYPE", MatchAny, "ADD", "ATTRIBUTE", MatchAny))
+ COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_datatypes);
+ /* complete ALTER TYPE ADD ATTRIBUTE <foo> <footype> with CASCADE/RESTRICT */
+ else if (Matches("ALTER", "TYPE", MatchAny, "ADD", "ATTRIBUTE", MatchAny, MatchAny))
+ COMPLETE_WITH("CASCADE", "RESTRICT");
+ /* complete ALTER TYPE DROP ATTRIBUTE <foo> with CASCADE/RESTRICT */
+ else if (Matches("ALTER", "TYPE", MatchAny, "DROP", "ATTRIBUTE", MatchAny))
+ COMPLETE_WITH("CASCADE", "RESTRICT");
/* ALTER TYPE ALTER ATTRIBUTE <foo> */
else if (Matches("ALTER", "TYPE", MatchAny, "ALTER", "ATTRIBUTE", MatchAny))
COMPLETE_WITH("TYPE");
--
2.34.1