v1-0001-Add-tab-completion-for-ALTER-USER-RESET.patch
application/x-patch
Filename: v1-0001-Add-tab-completion-for-ALTER-USER-RESET.patch
Type: application/x-patch
Part: 1
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v1-0001
Subject: Add tab completion for ALTER USER RESET
| File | + | − |
|---|---|---|
| src/bin/psql/tab-complete.in.c | 9 | 0 |
From a5536a66684b0540e223ce9a64da27e0ce43e744 Mon Sep 17 00:00:00 2001
From: Robins Tharakan <tharakan@gmail.com>
Date: Fri, 29 Nov 2024 19:05:38 +1030
Subject: [PATCH v1] Add tab completion for ALTER USER RESET
---
src/bin/psql/tab-complete.in.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c
index bbd08770c3..8d60408e26 100644
--- a/src/bin/psql/tab-complete.in.c
+++ b/src/bin/psql/tab-complete.in.c
@@ -1068,6 +1068,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 "\
@@ -2467,6 +2472,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. */
--
2.39.5