From 328509d60c1ec5489f5e29efbabc4c32466d1bac Mon Sep 17 00:00:00 2001
From: Vignesh C <vignesh21@gmail.com>
Date: Sat, 26 Nov 2022 20:18:58 +0530
Subject: [PATCH v2 1/2] Missing tab completion for ALTER EXTENSION ADD

Missing tab completion for ALTER EXTENSION ADD
---
 src/bin/psql/tab-complete.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 2a3921937c..4d1a664bf7 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1937,6 +1937,27 @@ psql_completion(const char *text, int start, int end)
 	else if (Matches("ALTER", "EXTENSION", MatchAny))
 		COMPLETE_WITH("ADD", "DROP", "UPDATE", "SET SCHEMA");
 
+	/* ALTER EXTENSION <name> ADD */
+	else if (Matches("ALTER", "EXTENSION", MatchAny, "ADD"))
+		COMPLETE_WITH("ACCESS METHOD", "AGGREGATE", "CAST", "COLLATION",
+					  "CONVERSION", "DOMAIN", "EVENT TRIGGER", "FOREIGN",
+					  "FUNCTION", "MATERIALIZED VIEW", "OPERATOR",
+					  "PROCEDURAL LANGUAGE", "PROCEDURE", "LANGUAGE",
+					  "ROUTINE", "SCHEMA", "SEQUENCE", "SERVER", "TABLE",
+					  "TEXT SEARCH", "TRANSFORM FOR", "TYPE", "VIEW");
+
+	/* ALTER EXTENSION <name> ADD FOREIGN*/
+	else if (Matches("ALTER", "EXTENSION", MatchAny, "ADD", "FOREIGN"))
+		COMPLETE_WITH("DATA WRAPPER", "TABLE");
+
+	/* ALTER EXTENSION <name> ADD OPERATOR*/
+	else if (Matches("ALTER", "EXTENSION", MatchAny, "ADD", "OPERATOR"))
+		COMPLETE_WITH("CLASS", "FAMILY");
+
+	/* ALTER EXTENSION <name> ADD TEXT SEARCH*/
+	else if (Matches("ALTER", "EXTENSION", MatchAny, "ADD|DROP", "TEXT", "SEARCH"))
+		COMPLETE_WITH("CONFIGURATION", "DICTIONARY", "PARSER", "TEMPLATE");
+
 	/* ALTER EXTENSION <name> UPDATE */
 	else if (Matches("ALTER", "EXTENSION", MatchAny, "UPDATE"))
 		COMPLETE_WITH("TO");
-- 
2.34.1

