From 60ef5d1db5e99a8ab6505d3ac15eb0f80ade8e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Rodr=C3=ADguez?= Date: Mon, 15 Jun 2026 10:44:32 +0200 Subject: [PATCH v2] Add SET LOCAL and SET SESSION to tab completion in PSQL This commit adds autocompletion options for SET LOCAL and SET SESSION. The options provided are all the SET variables for the given session, plus "TIME ZONE" for the special syntax for those options, and other variants (ROLE, SESSION AUTHORIZATION, CHARACTERISTICS AS TRANSACTION). --- src/bin/psql/tab-complete.in.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index de547a8cb37..0bdee795ded 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -5338,11 +5338,26 @@ match_previous_words(int pattern_id, /* Complete SET ROLE */ else if (Matches("SET", "ROLE")) COMPLETE_WITH_QUERY(Query_for_list_of_roles); - /* Complete SET SESSION with AUTHORIZATION or CHARACTERISTICS... */ + /* Complete SET LOCAL */ + else if (Matches("SET", "LOCAL")) + COMPLETE_WITH_QUERY_VERBATIM_PLUS(Query_for_list_of_set_vars, + "TIME ZONE", + "ROLE", + "SESSION AUTHORIZATION"); + /* + * Complete SET SESSION. SESSION can be a modifier or part of + * "SESSION AUTHORIZATION" or "SESSION CHARACTERISTICS AS TRANSACTION" + */ else if (Matches("SET", "SESSION")) - COMPLETE_WITH("AUTHORIZATION", "CHARACTERISTICS AS TRANSACTION"); - /* Complete SET SESSION AUTHORIZATION with username */ - else if (Matches("SET", "SESSION", "AUTHORIZATION")) + COMPLETE_WITH_QUERY_VERBATIM_PLUS(Query_for_list_of_set_vars, + "TIME ZONE", + "ROLE", + "AUTHORIZATION", + "SESSION AUTHORIZATION", + "CHARACTERISTICS AS TRANSACTION"); + /* Complete SET [LOCAL | SESSION] SESSION AUTHORIZATION with username */ + else if (Matches("SET", "SESSION", "AUTHORIZATION") || + Matches("SET", "LOCAL|SESSION", "SESSION", "AUTHORIZATION")) COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_roles, "DEFAULT"); /* Complete RESET SESSION with AUTHORIZATION */ -- 2.52.0