From b2988b138224fdc4c1838f82b9e8125be4991cbb Mon Sep 17 00:00:00 2001
From: reshke kirill <reshke@double.cloud>
Date: Mon, 4 Nov 2024 16:22:59 +0000
Subject: [PATCH v4 4/4] Suggest table access method for create maaterialized
 view in tab-complete

---
 src/bin/psql/tab-complete.in.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index d053ede02b..dc2ff335b5 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -3980,9 +3980,13 @@ match_previous_words(int pattern_id,
 		COMPLETE_WITH("VIEW");
 	/* Complete CREATE MATERIALIZED VIEW <name> with AS */
 	else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny))
-		COMPLETE_WITH("AS");
-	/* Complete "CREATE MATERIALIZED VIEW <sth> AS with "SELECT" */
-	else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "AS"))
+		COMPLETE_WITH("AS", "USING");
+	/* Complete CREATE MATERIALIZED VIEW <name> USING with list of access methods */
+	else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "USING"))
+		COMPLETE_WITH_QUERY(Query_for_list_of_table_access_methods);
+	/* Complete "CREATE MATERIALIZED VIEW <sth> [USING <am_name>] AS with "SELECT" */
+	else if (Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "AS") || 
+			 Matches("CREATE", "MATERIALIZED", "VIEW", MatchAny, "USING", MatchAny, "AS"))
 		COMPLETE_WITH("SELECT");
 
 /* CREATE EVENT TRIGGER */
-- 
2.34.1

