@@ -3773,7 +3773,7 @@ psql_completion(const char *text, int start, int end)
3773
3773
*/
3774
3774
/* Complete GRANT/REVOKE with a list of roles and privileges */
3775
3775
else if (TailMatches ("GRANT|REVOKE" )||
3776
- TailMatches ("REVOKE" ,"ADMIN|GRANT|INHERIT" ,"OPTION" ,"FOR" ))
3776
+ TailMatches ("REVOKE" ,"ADMIN|GRANT|INHERIT|SET " ,"OPTION" ,"FOR" ))
3777
3777
{
3778
3778
/*
3779
3779
* With ALTER DEFAULT PRIVILEGES, restrict completion to grantable
@@ -3792,18 +3792,21 @@ psql_completion(const char *text, int start, int end)
3792
3792
Privilege_options_of_grant_and_revoke ,
3793
3793
"GRANT OPTION FOR" ,
3794
3794
"ADMIN OPTION FOR" ,
3795
- "INHERIT OPTION FOR" );
3795
+ "INHERIT OPTION FOR" ,
3796
+ "SET OPTION FOR" );
3796
3797
else if (TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ))
3797
3798
COMPLETE_WITH (Privilege_options_of_grant_and_revoke );
3798
- else if (TailMatches ("REVOKE" ,"ADMIN|INHERIT" ,"OPTION" ,"FOR" ))
3799
+ else if (TailMatches ("REVOKE" ,"ADMIN|INHERIT|SET " ,"OPTION" ,"FOR" ))
3799
3800
COMPLETE_WITH_QUERY (Query_for_list_of_roles );
3800
3801
}
3801
3802
3802
3803
else if (TailMatches ("GRANT|REVOKE" ,"ALTER" )||
3803
3804
TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"ALTER" ))
3804
3805
COMPLETE_WITH ("SYSTEM" );
3805
3806
3806
- else if (TailMatches ("GRANT|REVOKE" ,"SET" )||
3807
+ else if (TailMatches ("REVOKE" ,"SET" ))
3808
+ COMPLETE_WITH ("ON PARAMETER" ,"OPTION FOR" );
3809
+ else if (TailMatches ("GRANT" ,"SET" )||
3807
3810
TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"SET" )||
3808
3811
TailMatches ("GRANT|REVOKE" ,"ALTER" ,"SYSTEM" )||
3809
3812
TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"ALTER" ,"SYSTEM" ))
@@ -3942,14 +3945,16 @@ psql_completion(const char *text, int start, int end)
3942
3945
else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ))
3943
3946
COMPLETE_WITH ("WITH ADMIN" ,
3944
3947
"WITH INHERIT" ,
3948
+ "WITH SET" ,
3945
3949
"WITH GRANT OPTION" ,
3946
3950
"GRANTED BY" );
3947
3951
else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ,"WITH" ))
3948
3952
COMPLETE_WITH ("ADMIN" ,
3949
3953
"INHERIT" ,
3954
+ "SET" ,
3950
3955
"GRANT OPTION" );
3951
3956
else if (HeadMatches ("GRANT" )&&
3952
- (TailMatches ("TO" ,MatchAny ,"WITH" ,"ADMIN|INHERIT" )))
3957
+ (TailMatches ("TO" ,MatchAny ,"WITH" ,"ADMIN|INHERIT|SET " )))
3953
3958
COMPLETE_WITH ("OPTION" ,"TRUE" ,"FALSE" );
3954
3959
else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ,"WITH" ,MatchAny ,"OPTION" ))
3955
3960
COMPLETE_WITH ("GRANTED BY" );