aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Vondra <tomas.vondra@postgresql.org>2025-02-17 17:55:23 +0100
committerTomas Vondra <tomas.vondra@postgresql.org>2025-02-17 18:12:15 +0100
commitc407d5426b877b41be87f9e679e321bb2c42e47d (patch)
tree79f3e43e7b8e48d7848b4c6c40712ddddd00cf2e /src
parent9df8727c5067916580f82da8b249136391de8544 (diff)
downloadpostgresql-c407d5426b877b41be87f9e679e321bb2c42e47d.tar.gz
postgresql-c407d5426b877b41be87f9e679e321bb2c42e47d.zip
Add tab completion for ALTER USER/ROLE RESET
Currently tab completion for ALTER USER RESET shows a list of all configuration parameters that may be set on a role, irrespectively of which parameters are actually set. This patch improves tab completion to offer only parameters that are set. Author: Robins Tharakan Reviewed-By: Tomas Vondra Discussion: https://postgr.es/m/CAEP4nAzqiT6VbVC5r3nq5byLTnPzjniVGzEMpYcnAHQyNzEuaw%40mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/bin/psql/tab-complete.in.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index 18fecd32807..eb8bc128720 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -1077,6 +1077,11 @@ Keywords_for_list_of_owner_roles, "PUBLIC"
" FROM pg_catalog.pg_user_mappings "\
" WHERE usename LIKE '%s'"
+#define Query_for_list_of_user_vars \
+" SELECT pg_catalog.split_part(pg_catalog.unnest(rolconfig),'=',1) "\
+" FROM pg_catalog.pg_roles "\
+" WHERE rolname LIKE '%s'"
+
#define Query_for_list_of_access_methods \
" SELECT amname "\
" FROM pg_catalog.pg_am "\
@@ -2487,6 +2492,10 @@ match_previous_words(int pattern_id,
"RENAME TO", "REPLICATION", "RESET", "SET", "SUPERUSER",
"VALID UNTIL", "WITH");
+ /* ALTER USER,ROLE <name> RESET */
+ else if (Matches("ALTER", "USER|ROLE", MatchAny, "RESET"))
+ COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_user_vars, "ALL");
+
/* ALTER USER,ROLE <name> WITH */
else if (Matches("ALTER", "USER|ROLE", MatchAny, "WITH"))
/* Similar to the above, but don't complete "WITH" again. */