Tab completion for GRANT MAINTAIN
Hi hackers,
I found that GRANT MAINTAIN is not tab-completed with ON, so here is a
patch.
Best wishes,
--
Ken Kato
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION
Attachments:
grant_maintain_tab_completion_v1.patchtext/x-diff; charset=us-ascii; name=grant_maintain_tab_completion_v1.patchDownload
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 5825b2a195..bd04244969 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3902,7 +3902,7 @@ psql_completion(const char *text, int start, int end)
else if (TailMatches("GRANT|REVOKE", MatchAny) ||
TailMatches("REVOKE", "GRANT", "OPTION", "FOR", MatchAny))
{
- if (TailMatches("SELECT|INSERT|UPDATE|DELETE|TRUNCATE|REFERENCES|TRIGGER|CREATE|CONNECT|TEMPORARY|TEMP|EXECUTE|USAGE|ALL"))
+ if (TailMatches("SELECT|INSERT|UPDATE|DELETE|TRUNCATE|REFERENCES|TRIGGER|CREATE|CONNECT|TEMPORARY|TEMP|EXECUTE|USAGE|MAINTAIN|ALL"))
COMPLETE_WITH("ON");
else if (TailMatches("GRANT", MatchAny))
COMPLETE_WITH("TO");
On 18.04.23 11:08, Ken Kato wrote:
Hi hackers,
I found that GRANT MAINTAIN is not tab-completed with ON, so here is a
patch.
Hi,
the patch applies cleanly and now GRANT MAINTAIN tab-completes with ON.
For the sake of completeness I tested a whole statement:
postgres=# GRANT M<tab>
=> postgres=# GRANT MAINTAIN
postgres=# GRANT MAINTAIN <tab>
=> postgres=# GRANT MAINTAIN ON
postgres=# GRANT MAINTAIN ON t <tab>
=> postgres=# GRANT MAINTAIN ON t TO
postgres=# GRANT MAINTAIN ON t TO <tab><tab>
=>
CURRENT_ROLE pg_monitor pg_use_reserved_connections
CURRENT_USER pg_read_all_data pg_write_all_data
pg_checkpoint pg_read_all_settings pg_write_server_files
pg_create_subscription pg_read_all_stats postgres
pg_database_owner pg_read_server_files PUBLIC
pg_execute_server_program pg_signal_backend SESSION_USER
pg_maintain pg_stat_scan_tables
I've marked the CF entry as "ready for committer"
Best, Jim
Jim Jones <jim.jones@uni-muenster.de> writes:
On 18.04.23 11:08, Ken Kato wrote:
I found that GRANT MAINTAIN is not tab-completed with ON, so here is a
patch.
I've marked the CF entry as "ready for committer"
Yup, clearly an oversight. Pushed.
(One could wish that it didn't take touching three or so places in
tab-complete.c to add a privilege, especially when a naive hacker might
think he was done after touching Privilege_options_of_grant_and_revoke.
I didn't see any easy way to improve that situation though.)
regards, tom lane
On Wed, Apr 19, 2023 at 10:54:05AM -0400, Tom Lane wrote:
(One could wish that it didn't take touching three or so places in
tab-complete.c to add a privilege, especially when a naive hacker might
think he was done after touching Privilege_options_of_grant_and_revoke.
I didn't see any easy way to improve that situation though.)
Sorry, I think this was my fault. Thanks for fixing.
--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com