@@ -5,6 +5,7 @@ pub(crate) enum CompletionRelevanceData<'a> {
5
5
Table ( & ' a pgt_schema_cache:: Table ) ,
6
6
Function ( & ' a pgt_schema_cache:: Function ) ,
7
7
Column ( & ' a pgt_schema_cache:: Column ) ,
8
+ Schema ( & ' a pgt_schema_cache:: Schema ) ,
8
9
}
9
10
10
11
impl CompletionRelevanceData < ' _ > {
@@ -58,6 +59,7 @@ impl CompletionRelevance<'_> {
58
59
CompletionRelevanceData :: Function ( f) => f. name . as_str ( ) ,
59
60
CompletionRelevanceData :: Table ( t) => t. name . as_str ( ) ,
60
61
CompletionRelevanceData :: Column ( c) => c. name . as_str ( ) ,
62
+ CompletionRelevanceData :: Schema ( s) => s. name . as_str ( ) ,
61
63
} ;
62
64
63
65
if name. starts_with ( content) {
@@ -97,6 +99,10 @@ impl CompletionRelevance<'_> {
97
99
ClauseType :: Where => 10 ,
98
100
_ => -15 ,
99
101
} ,
102
+ CompletionRelevanceData :: Schema ( _) => match clause_type {
103
+ ClauseType :: From => 15 ,
104
+ _ => -50 ,
105
+ } ,
100
106
}
101
107
}
102
108
@@ -129,6 +135,7 @@ impl CompletionRelevance<'_> {
129
135
CompletionRelevanceData :: Function ( f) => f. schema . as_str ( ) ,
130
136
CompletionRelevanceData :: Table ( t) => t. schema . as_str ( ) ,
131
137
CompletionRelevanceData :: Column ( c) => c. schema_name . as_str ( ) ,
138
+ CompletionRelevanceData :: Schema ( s) => s. name . as_str ( ) ,
132
139
}
133
140
}
134
141
@@ -168,11 +175,7 @@ impl CompletionRelevance<'_> {
168
175
}
169
176
170
177
fn check_is_user_defined ( & mut self ) {
171
- let schema = match self . data {
172
- CompletionRelevanceData :: Column ( c) => & c. schema_name ,
173
- CompletionRelevanceData :: Function ( f) => & f. schema ,
174
- CompletionRelevanceData :: Table ( t) => & t. schema ,
175
- } ;
178
+ let schema = self . get_schema_name ( ) . to_string ( ) ;
176
179
177
180
let system_schemas = [ "pg_catalog" , "information_schema" , "pg_toast" ] ;
178
181
0 commit comments