From 9cc255e0cdddeda3d655c1265d698b1f6027aec6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <ilmari@ilmari.org>
Date: Tue, 1 Feb 2022 13:13:07 +0000
Subject: [PATCH] Make all tab completion keywords upper case.

So they stand out from the object names in the same tab completion
menu.

Also fix tab completion of SHOW SESSION AUTHORIZATION in the face of
config variables starting with session_.
---
 src/bin/psql/tab-complete.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index b2ec50b4f2..d2744cdb6f 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -2059,7 +2059,7 @@ psql_completion(const char *text, int start, int end)
 		COMPLETE_WITH("SET", "RESET");
 	else if (Matches("ALTER", "SYSTEM", "SET|RESET"))
 		COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_alter_system_set_vars,
-								 "all");
+								 "ALL");
 	else if (Matches("ALTER", "SYSTEM", "SET", MatchAny))
 		COMPLETE_WITH("TO");
 	/* ALTER VIEW <name> */
@@ -4039,16 +4039,18 @@ psql_completion(const char *text, int start, int end)
 	/* Complete with a variable name */
 	else if (TailMatches("SET|RESET") && !TailMatches("UPDATE", MatchAny, "SET"))
 		COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_set_vars,
-								 "constraints",
-								 "transaction",
-								 "session",
-								 "role",
-								 "tablespace",
-								 "all");
+								 "CONSTRAINTS",
+								 "TRANSACTION",
+								 "SESSION",
+								 "ROLE",
+								 "TABLESPACE",
+								 "ALL");
 	else if (Matches("SHOW"))
 		COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_show_vars,
-								 "session authorization",
-								 "all");
+								 "SESSION AUTHORIZATION",
+								 "ALL");
+	else if (Matches("SHOW", "SESSION"))
+		COMPLETE_WITH("AUTHORIZATION");
 	/* Complete "SET TRANSACTION" */
 	else if (Matches("SET", "TRANSACTION"))
 		COMPLETE_WITH("SNAPSHOT", "ISOLATION LEVEL", "READ", "DEFERRABLE", "NOT DEFERRABLE");
-- 
2.30.2

