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]