postgres.git / summary / log / commit / refs
commit 344b572e3eff620ffc2e3680730103e33a502bc6
Author: Álvaro Herrera <alvherre@kurilemu.de>
Date: Mon Mar 02 17:03:44 2026 +0000
psql: Tab-complete ALTER ROLE ... IN DATABASE SET/RESET
Detailed completion of the RESET clause is still missing. Not sure a
detailed implementation is worth the trouble.
Author: Ian Lawrence Barwick <barwick@gmail.com>
Author: Vasuki M <vasukianand0119@gmail.com>
Reviewed-by: zengman <zengman@halodbtech.com>
Reviewed-by: Dharin Shah <dharinshah95@gmail.com>
Reviewed-by: Surya Poondla <suryapoondla4@gmail.com>
Discussion: https://postgr.es/m/CAB8KJ=iH_v1YB2ss1A=BqvOAf28OVYiWRqUdE6TJ3pP-RdsPig@mail.gmail.com
src/bin/psql/tab-complete.in.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index 43451fce1c3..987cce820b9 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -2536,12 +2536,24 @@ match_previous_words(int pattern_id,
else if (Matches("ALTER", "USER|ROLE", MatchAny) &&
!TailMatches("USER", "MAPPING"))
COMPLETE_WITH("BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
- "ENCRYPTED PASSWORD", "INHERIT", "LOGIN", "NOBYPASSRLS",
+ "ENCRYPTED PASSWORD", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD",
"RENAME TO", "REPLICATION", "RESET", "SET", "SUPERUSER",
"VALID UNTIL", "WITH");
-
+ /* ALTER USER,ROLE <name> IN */
+ else if (Matches("ALTER", "USER|ROLE", MatchAny, "IN"))
+ COMPLETE_WITH("DATABASE");
+ /* ALTER USER,ROLE <name> IN DATABASE */
+ else if (Matches("ALTER", "USER|ROLE", MatchAny, "IN", "DATABASE"))
+ COMPLETE_WITH_QUERY(Query_for_list_of_databases);
+ /* ALTER USER,ROLE <name> IN DATABASE <dbname> */
+ else if (Matches("ALTER", "USER|ROLE", MatchAny, "IN", "DATABASE", MatchAny))
+ COMPLETE_WITH("SET", "RESET");
+ /* ALTER USER,ROLE <name> IN DATABASE <dbname> SET */
+ else if (Matches("ALTER", "USER|ROLE", MatchAny, "IN", "DATABASE", MatchAny, "SET"))
+ COMPLETE_WITH_QUERY(Query_for_list_of_set_vars);
+ /* XXX missing support for ALTER ROLE <name> IN DATABASE <dbname> RESET */
/* ALTER USER,ROLE <name> RESET */
else if (Matches("ALTER", "USER|ROLE", MatchAny, "RESET"))
{
[parent: 74b4438a70b9]