From 0d11e7cf810f281e42dc7bcfb439c9e9d6716e37 Mon Sep 17 00:00:00 2001 From: Shi Yu Date: Wed, 16 Nov 2022 13:32:07 +0800 Subject: [PATCH v5 2/2] =?UTF-8?q?Add=20tab=20completion=20for=20GRANT=20?= =?UTF-8?q?=E2=80=A6=20WITH=20INHERIT=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/psql/tab-complete.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 1f62ad401b..ff954e5c02 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3791,7 +3791,8 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_roles, Privileges_options_of_grant_and_revoke, "GRANT OPTION FOR", - "ADMIN OPTION FOR"); + "ADMIN OPTION FOR", + "INHERIT OPTION FOR"); else if (TailMatches("REVOKE", "GRANT", "OPTION", "FOR")) COMPLETE_WITH(Privileges_options_of_grant_and_revoke); } @@ -3953,12 +3954,17 @@ psql_completion(const char *text, int start, int end) * Offer grant options after that. */ else if (HeadMatches("GRANT") && TailMatches("TO", MatchAny)) - COMPLETE_WITH("WITH ADMIN OPTION", + COMPLETE_WITH("WITH ADMIN", + "WITH INHERIT", "WITH GRANT OPTION", "GRANTED BY"); else if (HeadMatches("GRANT") && TailMatches("TO", MatchAny, "WITH")) - COMPLETE_WITH("ADMIN OPTION", + COMPLETE_WITH("ADMIN", + "INHERIT", "GRANT OPTION"); + else if (HeadMatches("GRANT") && + (TailMatches("TO", MatchAny, "WITH", "ADMIN|INHERIT"))) + COMPLETE_WITH("OPTION", "TRUE", "FALSE"); else if (HeadMatches("GRANT") && TailMatches("TO", MatchAny, "WITH", MatchAny, "OPTION")) COMPLETE_WITH("GRANTED BY"); else if (HeadMatches("GRANT") && TailMatches("TO", MatchAny, "WITH", MatchAny, "OPTION", "GRANTED", "BY")) -- 2.31.1