v2-0001-Add-tab-completion-for-ALTER-TABLE-xxx-ALTER-CONT.patch

application/octet-stream

Filename: v2-0001-Add-tab-completion-for-ALTER-TABLE-xxx-ALTER-CONT.patch
Type: application/octet-stream
Part: 0
Message: Re: TAB completion for ALTER TABLE ... ALTER CONSTRAINT ... ENFORCED
From eb4ef98a62a3263d5f928372faf590211084ff96 Mon Sep 17 00:00:00 2001
From: reshke <reshke@double.cloud>
Date: Mon, 11 Aug 2025 13:14:14 +0000
Subject: [PATCH v2] Add tab completion for ALTER TABLE xxx ALTER CONTRAINT ...
 ENFORCED/INHERIT

Author:    reshke <reshke@double.cloud>
Co-authored-by: Roman Khapov <r.khapov@ya.ru>
---
 src/bin/psql/tab-complete.in.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index b1ff6f6cd94..488cbfb1933 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -2907,6 +2907,17 @@ match_previous_words(int pattern_id,
 		set_completion_reference(prev3_wd);
 		COMPLETE_WITH_SCHEMA_QUERY(Query_for_constraint_of_table);
 	}
+	/* if we have ALTER TABLE <sth> ALTER|DROP|RENAME CONSTRAINT <constraint>, provide [NOT] ENFORCED or [NO] INHERIT  */
+	else if (Matches("ALTER", "TABLE", MatchAny, "ALTER|DROP|RENAME", "CONSTRAINT", MatchAny))
+	{
+		COMPLETE_WITH("ENFORCED", "NOT ENFORCED", "NO INHERIT", "INHERIT", "DEFERRABLE",
+					  "NOT DEFERRABLE", "INITIALLY IMMEDIATE", "INITIALLY DEFERRED");
+	}
+	/* if we have ALTER TABLE <sth> ALTER|DROP|RENAME CONSTRAINT <constraint> NO, provide INHERIT  */
+	else if (Matches("ALTER", "TABLE", MatchAny, "ALTER|DROP|RENAME", "CONSTRAINT", MatchAny, "NO"))
+	{
+		COMPLETE_WITH("INHERIT");
+	}
 	/* ALTER TABLE <sth> VALIDATE CONSTRAINT <non-validated constraint> */
 	else if (Matches("ALTER", "TABLE", MatchAny, "VALIDATE", "CONSTRAINT"))
 	{
-- 
2.50.1 (Apple Git-155)