Обсуждение: [COMMITTERS] pgsql: Fix tab completion in psql for ALTER DEFAULT PRIVILEGES
Fix tab completion in psql for ALTER DEFAULT PRIVILEGES When providing tab completion for ALTER DEFAULT PRIVILEGES, we are including the list of roles as possible options for completion after the GRANT or REVOKE. Further, we accept FOR ROLE/IN SCHEMA at the same time and in either order, but the tab completion was only working for one or the other. Lastly, we weren't using the actual list of allowed kinds of objects for default privileges for completion after the 'GRANT X ON' but instead were completeing to what 'GRANT X ON' supports, which isn't the ssame at all. Address these issues by improving the forward tab-completion for ALTER DEFAULT PRIVILEGES and then constrain and correct how the tail completion is done when it is for ALTER DEFAULT PRIVILEGES. Back-patch the forward/tail tab-completion to 9.6, where we made it easy to handle such cases. For 9.5 and earlier, correct the initial tab-completion to at least be correct as far as it goes and then add a check for GRANT/REVOKE to only tab-complete when the GRANT/REVOKE is the start of the command, so we don't try to do tab-completion after we get to the GRANT/REVOKE part of the ALTER DEFAULT PRIVILEGES command, which is better than providing incorrect completions. Initial patch for master and 9.6 by Gilles Darold, though I cleaned it up and added a few comments. All bugs in the 9.5 and earlier patch are mine. Discussion: https://www.postgresql.org/message-id/1614593c-e356-5b27-6dba-66320a9bc68b@dalibo.com Branch ------ REL9_3_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/2022d594da3233dca4a4570b1e4e5d8a83ff6163 Modified Files -------------- src/bin/psql/tab-complete.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-)
Re: [COMMITTERS] pgsql: Fix tab completion in psql for ALTER DEFAULT PRIVILEGES
От
Robert Haas
Дата:
On Fri, Dec 23, 2016 at 9:02 PM, Stephen Frost <sfrost@snowman.net> wrote: > Lastly, we weren't using the actual list of allowed kinds of > objects for default privileges for completion after the 'GRANT X ON' but > instead were completeing to what 'GRANT X ON' supports, which isn't the > ssame at all. /me scratches head. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Re: [COMMITTERS] pgsql: Fix tab completion in psql for ALTER DEFAULTPRIVILEGES
От
Stephen Frost
Дата:
* Robert Haas (robertmhaas@gmail.com) wrote: > On Fri, Dec 23, 2016 at 9:02 PM, Stephen Frost <sfrost@snowman.net> wrote: > > Lastly, we weren't using the actual list of allowed kinds of > > objects for default privileges for completion after the 'GRANT X ON' but > > instead were completeing to what 'GRANT X ON' supports, which isn't the > > ssame at all. > > /me scratches head. 'ALTER DEFAULT PRIVILEGES ... GRANT X ON' can be followed by the literal term 'TABLES', or 'FUNCTIONS', etc. 'GRANT X ON ' can be followed by an actual table. A bit awkward to write out in a single sentence though. Thanks! Stephen