From 1fa81580cc399cff78e4a3d0914145ca824494e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
Date: Mon, 22 Oct 2018 18:06:20 +0100
Subject: [PATCH 2/2] Improve CREATE EVENT TRIGGER tab completion

This adds tab completion of the WHEN and EXECUTE TRIGGER/PROCEDURE
clauses to CREATE EVENT TRIGGER, similar to CREATE TRIGGER in the
previous commit.
---
 src/bin/psql/tab-complete.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 70aa629a3b..3253e51ebe 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2567,6 +2567,19 @@ psql_completion(const char *text, int start, int end)
 	/* Complete CREATE EVENT TRIGGER <name> ON with event_type */
 	else if (Matches("CREATE", "EVENT", "TRIGGER", MatchAny, "ON"))
 		COMPLETE_WITH("ddl_command_start", "ddl_command_end", "sql_drop");
+	else if (Matches("CREATE", "EVENT", "TRIGGER", MatchAny, "ON", MatchAny))
+		COMPLETE_WITH("WHEN TAG IN (", "EXECUTE");
+	else if (Matches("CREATE", "EVENT", "TRIGGER", MatchAny, "ON", MatchAny, "WHEN"))
+		COMPLETE_WITH("TAG IN (");
+	else if (Matches("CREATE", "EVENT", "TRIGGER", MatchAny, "ON", MatchAny, "WHEN", "TAG", "IN", "(*)"))
+		COMPLETE_WITH("EXECUTE");
+	else if (HeadMatches("CREATE", "EVENT", "TRIGGER") && TailMatches("EXECUTE"))
+		if (pset.sversion >= 110000)
+			COMPLETE_WITH("FUNCTION", "PROCEDURE");
+		else
+			COMPLETE_WITH("PROCEDURE");
+	else if (HeadMatches("CREATE", "EVENT", "TRIGGER") && TailMatches("EXECUTE", "FUNCTION|PROCEDURE"))
+		COMPLETE_WITH_VERSIONED_SCHEMA_QUERY(Query_for_list_of_functions, NULL);
 
 /* DEALLOCATE */
 	else if (Matches("DEALLOCATE"))
-- 
2.19.1

