tab complete for ALTER TABLE ALTER CONSTRAINT
Started by jian he7 months ago1 messages
hi.
attached patch is tab complete for
ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [
INITIALLY DEFERRED | INITIALLY IMMEDIATE ] [ ENFORCED | NOT ENFORCED ]
ALTER CONSTRAINT constraint_name [ INHERIT | NO INHERIT ]
based on ALTER TABLE Synopsis section [0]https://www.postgresql.org/docs/devel/sql-altertable.html
[0]: https://www.postgresql.org/docs/devel/sql-altertable.html
Attachments:
v1-0001-tab-complte-for-ALTER-TABLE-ALTER-CONSTRAINT.patchtext/x-patch; charset=US-ASCII; name=v1-0001-tab-complte-for-ALTER-TABLE-ALTER-CONSTRAINT.patchDownload
From bf01db5085901f179fa83b4cca12ba55c9bd0a64 Mon Sep 17 00:00:00 2001
From: jian he <jian.universality@gmail.com>
Date: Mon, 2 Jun 2025 14:45:47 +0800
Subject: [PATCH v1 1/1] tab complte for ALTER TABLE ALTER CONSTRAINT
ALTER TABLE tab complte for
ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] [ ENFORCED | NOT ENFORCED ]
ALTER CONSTRAINT constraint_name [ INHERIT | NO INHERIT ]
discussion: https://postgr.es/m/
---
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 ec65ab79fec..94688259e0d 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -2857,6 +2857,15 @@ match_previous_words(int pattern_id,
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny) ||
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny))
COMPLETE_WITH("TYPE", "SET", "RESET", "RESTART", "ADD", "DROP");
+ /* ALTER TABLE ALTER CONSTRAINT <foo> */
+ else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "CONSTRAINT", MatchAny))
+ COMPLETE_WITH("DEFERRABLE", "NOT DEFERRABLE", "INITIALLY DEFERRED", "INITIALLY IMMEDIATE", "ENFORCED", "NOT ENFORCED", "INHERIT", "NO INHERIT");
+ else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "CONSTRAINT", MatchAny, "NO"))
+ COMPLETE_WITH("INHERIT");
+ else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "CONSTRAINT", MatchAny, "NOT"))
+ COMPLETE_WITH("DEFERRABLE", "ENFORCED");
+ else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "CONSTRAINT", MatchAny, "INITIALLY"))
+ COMPLETE_WITH("DEFERRED", "IMMEDIATE");
/* ALTER TABLE ALTER [COLUMN] <foo> ADD */
else if (Matches("ALTER", "TABLE", MatchAny, "ALTER", "COLUMN", MatchAny, "ADD") ||
Matches("ALTER", "TABLE", MatchAny, "ALTER", MatchAny, "ADD"))
--
2.34.1