@@ -3773,7 +3773,7 @@ psql_completion(const char *text, int start, int end)
37733773 */
37743774/* Complete GRANT/REVOKE with a list of roles and privileges */
37753775else if (TailMatches ("GRANT|REVOKE" )||
3776- TailMatches ("REVOKE" ,"ADMIN|GRANT|INHERIT" ,"OPTION" ,"FOR" ))
3776+ TailMatches ("REVOKE" ,"ADMIN|GRANT|INHERIT|SET " ,"OPTION" ,"FOR" ))
37773777{
37783778/*
37793779 * With ALTER DEFAULT PRIVILEGES, restrict completion to grantable
@@ -3792,18 +3792,21 @@ psql_completion(const char *text, int start, int end)
37923792Privilege_options_of_grant_and_revoke ,
37933793"GRANT OPTION FOR" ,
37943794"ADMIN OPTION FOR" ,
3795- "INHERIT OPTION FOR" );
3795+ "INHERIT OPTION FOR" ,
3796+ "SET OPTION FOR" );
37963797else if (TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ))
37973798COMPLETE_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" ))
37993800COMPLETE_WITH_QUERY (Query_for_list_of_roles );
38003801}
38013802
38023803else if (TailMatches ("GRANT|REVOKE" ,"ALTER" )||
38033804TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"ALTER" ))
38043805COMPLETE_WITH ("SYSTEM" );
38053806
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" )||
38073810TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"SET" )||
38083811TailMatches ("GRANT|REVOKE" ,"ALTER" ,"SYSTEM" )||
38093812TailMatches ("REVOKE" ,"GRANT" ,"OPTION" ,"FOR" ,"ALTER" ,"SYSTEM" ))
@@ -3942,14 +3945,16 @@ psql_completion(const char *text, int start, int end)
39423945else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ))
39433946COMPLETE_WITH ("WITH ADMIN" ,
39443947"WITH INHERIT" ,
3948+ "WITH SET" ,
39453949"WITH GRANT OPTION" ,
39463950"GRANTED BY" );
39473951else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ,"WITH" ))
39483952COMPLETE_WITH ("ADMIN" ,
39493953"INHERIT" ,
3954+ "SET" ,
39503955"GRANT OPTION" );
39513956else if (HeadMatches ("GRANT" )&&
3952- (TailMatches ("TO" ,MatchAny ,"WITH" ,"ADMIN|INHERIT" )))
3957+ (TailMatches ("TO" ,MatchAny ,"WITH" ,"ADMIN|INHERIT|SET " )))
39533958COMPLETE_WITH ("OPTION" ,"TRUE" ,"FALSE" );
39543959else if (HeadMatches ("GRANT" )&& TailMatches ("TO" ,MatchAny ,"WITH" ,MatchAny ,"OPTION" ))
39553960COMPLETE_WITH ("GRANTED BY" );