@@ -128,7 +128,10 @@ impl CompletionScore<'_> {
128128 _ => -50 ,
129129 } ,
130130
131- CompletionRelevanceData :: Role ( _) => 0 ,
131+ CompletionRelevanceData :: Role ( _) => match clause_type {
132+ WrappingClause :: DropRole | WrappingClause :: AlterRole => 25 ,
133+ _ => -50 ,
134+ } ,
132135 }
133136 }
134137
@@ -201,7 +204,7 @@ impl CompletionScore<'_> {
201204 CompletionRelevanceData :: Column ( c) => Some ( c. schema_name . as_str ( ) ) ,
202205 CompletionRelevanceData :: Schema ( s) => Some ( s. name . as_str ( ) ) ,
203206 CompletionRelevanceData :: Policy ( p) => Some ( p. schema_name . as_str ( ) ) ,
204- CompletionRelevanceData :: Role ( p ) => None ,
207+ CompletionRelevanceData :: Role ( _ ) => None ,
205208 }
206209 }
207210
@@ -245,6 +248,30 @@ impl CompletionScore<'_> {
245248 }
246249
247250 fn check_is_user_defined ( & mut self ) {
251+ if let CompletionRelevanceData :: Role ( r) = self . data {
252+ match r. name . as_str ( ) {
253+ "pg_read_all_data"
254+ | "pg_write_all_data"
255+ | "pg_read_all_settings"
256+ | "pg_read_all_stats"
257+ | "pg_stat_scan_tables"
258+ | "pg_monitor"
259+ | "pg_database_owner"
260+ | "pg_signal_backend"
261+ | "pg_read_server_files"
262+ | "pg_write_server_files"
263+ | "pg_execute_server_program"
264+ | "pg_checkpoint"
265+ | "pg_maintain"
266+ | "pg_use_reserved_connections"
267+ | "pg_create_subscription"
268+ | "postgres" => self . score -= 20 ,
269+ _ => { }
270+ } ;
271+
272+ return ;
273+ }
274+
248275 let schema = match self . get_schema_name ( ) {
249276 Some ( s) => s. to_string ( ) ,
250277 None => return ,
0 commit comments