Skip to content

Commit 86c539c

Browse files
committed
psql: Improve psql tab completion for GRANT/REVOKE on large objects.
This commit enhances psql's tab completion to support TO/FROM after "GRANT/REVOKE ... ON LARGE OBJECT ...". Additionally, since "ALTER DEFAULT PRIVILEGES" now supports large objects, tab completion is also updated for "GRANT/REVOKE ... ON LARGE OBJECTS" with TO/FROM. Author: Fujii Masao <masao.fujii@gmail.com> Reviewed-by: Yugo Nagata <nagata@sraoss.co.jp> Discussion: https://postgr.es/m/ade0ab29-777f-47f6-9d0d-1af67728a86e@oss.nttdata.com
1 parent ed26c4e commit 86c539c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/bin/psql/tab-complete.in.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4624,6 +4624,26 @@ match_previous_words(int pattern_id,
46244624
COMPLETE_WITH("FROM");
46254625
}
46264626

4627+
/* Complete "GRANT/REVOKE * ON LARGE OBJECT *" with TO/FROM */
4628+
else if (TailMatches("GRANT|REVOKE", MatchAny, "ON", "LARGE", "OBJECT", MatchAny) ||
4629+
TailMatches("REVOKE", "GRANT", "OPTION", "FOR", MatchAny, "ON", "LARGE", "OBJECT", MatchAny))
4630+
{
4631+
if (TailMatches("GRANT", MatchAny, MatchAny, MatchAny, MatchAny, MatchAny))
4632+
COMPLETE_WITH("TO");
4633+
else
4634+
COMPLETE_WITH("FROM");
4635+
}
4636+
4637+
/* Complete "GRANT/REVOKE * ON LARGE OBJECTS" with TO/FROM */
4638+
else if (TailMatches("GRANT|REVOKE", MatchAny, "ON", "LARGE", "OBJECTS") ||
4639+
TailMatches("REVOKE", "GRANT", "OPTION", "FOR", MatchAny, "ON", "LARGE", "OBJECTS"))
4640+
{
4641+
if (TailMatches("GRANT", MatchAny, MatchAny, MatchAny, MatchAny))
4642+
COMPLETE_WITH("TO");
4643+
else
4644+
COMPLETE_WITH("FROM");
4645+
}
4646+
46274647
/* GROUP BY */
46284648
else if (TailMatches("FROM", MatchAny, "GROUP"))
46294649
COMPLETE_WITH("BY");

0 commit comments

Comments
 (0)