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] [0]: https://www.postgresql.org/docs/devel/sql-altertable.html
From bf01db5085901f179fa83b4cca12ba55c9bd0a64 Mon Sep 17 00:00:00 2001 From: jian he <jian.universal...@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