@@ -230,101 +230,34 @@ impl QueryRouter {
230
230
variable : & Vec < ast:: Ident > ,
231
231
span_id : Option < Arc < SpanId > > ,
232
232
) -> CompilationResult < QueryPlan > {
233
- let name = variable. to_vec ( ) [ 0 ] . value . clone ( ) ;
234
- if self . state . protocol == DatabaseProtocol :: PostgreSQL {
235
- let full_variable = variable. iter ( ) . map ( |v| v. value . to_lowercase ( ) ) . join ( "_" ) ;
236
- let full_variable = match full_variable. as_str ( ) {
237
- "transaction_isolation_level" => "transaction_isolation" ,
238
- x => x,
239
- } ;
240
- let stmt = if name. eq_ignore_ascii_case ( "all" ) {
241
- parse_sql_to_statement (
242
- & "SELECT name, setting, short_desc as description FROM pg_catalog.pg_settings"
243
- . to_string ( ) ,
244
- self . state . protocol . clone ( ) ,
245
- & mut None ,
246
- ) ?
247
- } else {
248
- parse_sql_to_statement (
249
- // TODO: column name might be expected to match variable name
250
- & format ! (
251
- "SELECT setting FROM pg_catalog.pg_settings where name = '{}'" ,
252
- escape_single_quote_string( full_variable) ,
253
- ) ,
254
- self . state . protocol . clone ( ) ,
255
- & mut None ,
256
- ) ?
257
- } ;
233
+ let full_variable = variable. iter ( ) . map ( |v| v. value . to_lowercase ( ) ) . join ( "_" ) ;
234
+ let full_variable = match full_variable. as_str ( ) {
235
+ "transaction_isolation_level" => "transaction_isolation" ,
236
+ x => x,
237
+ } ;
258
238
259
- self . create_df_logical_plan ( stmt, & mut None , span_id. clone ( ) )
260
- . await
261
- } else if name. eq_ignore_ascii_case ( "databases" ) || name. eq_ignore_ascii_case ( "schemas" ) {
262
- Ok ( QueryPlan :: MetaTabular (
263
- StatusFlags :: empty ( ) ,
264
- Box :: new ( dataframe:: DataFrame :: new (
265
- vec ! [ dataframe:: Column :: new(
266
- "Database" . to_string( ) ,
267
- ColumnType :: String ,
268
- ColumnFlags :: empty( ) ,
269
- ) ] ,
270
- vec ! [
271
- dataframe:: Row :: new( vec![ dataframe:: TableValue :: String ( "db" . to_string( ) ) ] ) ,
272
- dataframe:: Row :: new( vec![ dataframe:: TableValue :: String (
273
- "information_schema" . to_string( ) ,
274
- ) ] ) ,
275
- dataframe:: Row :: new( vec![ dataframe:: TableValue :: String (
276
- "mysql" . to_string( ) ,
277
- ) ] ) ,
278
- dataframe:: Row :: new( vec![ dataframe:: TableValue :: String (
279
- "performance_schema" . to_string( ) ,
280
- ) ] ) ,
281
- dataframe:: Row :: new( vec![ dataframe:: TableValue :: String ( "sys" . to_string( ) ) ] ) ,
282
- ] ,
283
- ) ) ,
284
- ) )
285
- } else if name. eq_ignore_ascii_case ( "processlist" ) {
286
- let stmt = parse_sql_to_statement (
287
- & "SELECT * FROM information_schema.processlist" . to_string ( ) ,
239
+ let name = variable. to_vec ( ) [ 0 ] . value . clone ( ) ;
240
+ let stmt = if name. eq_ignore_ascii_case ( "all" ) {
241
+ parse_sql_to_statement (
242
+ & "SELECT name, setting, short_desc as description FROM pg_catalog.pg_settings"
243
+ . to_string ( ) ,
288
244
self . state . protocol . clone ( ) ,
289
245
& mut None ,
290
- ) ?;
291
-
292
- self . create_df_logical_plan ( stmt, & mut None , span_id. clone ( ) )
293
- . await
294
- } else if name. eq_ignore_ascii_case ( "warnings" ) {
295
- Ok ( QueryPlan :: MetaTabular (
296
- StatusFlags :: empty ( ) ,
297
- Box :: new ( dataframe:: DataFrame :: new (
298
- vec ! [
299
- dataframe:: Column :: new(
300
- "Level" . to_string( ) ,
301
- ColumnType :: VarStr ,
302
- ColumnFlags :: NOT_NULL ,
303
- ) ,
304
- dataframe:: Column :: new(
305
- "Code" . to_string( ) ,
306
- ColumnType :: Int32 ,
307
- ColumnFlags :: NOT_NULL | ColumnFlags :: UNSIGNED ,
308
- ) ,
309
- dataframe:: Column :: new(
310
- "Message" . to_string( ) ,
311
- ColumnType :: VarStr ,
312
- ColumnFlags :: NOT_NULL ,
313
- ) ,
314
- ] ,
315
- vec ! [ ] ,
316
- ) ) ,
317
- ) )
246
+ ) ?
318
247
} else {
319
- self . create_df_logical_plan (
320
- ast:: Statement :: ShowVariable {
321
- variable : variable. clone ( ) ,
322
- } ,
248
+ parse_sql_to_statement (
249
+ // TODO: column name might be expected to match variable name
250
+ & format ! (
251
+ "SELECT setting FROM pg_catalog.pg_settings where name = '{}'" ,
252
+ escape_single_quote_string( full_variable) ,
253
+ ) ,
254
+ self . state . protocol . clone ( ) ,
323
255
& mut None ,
324
- span_id. clone ( ) ,
325
- )
256
+ ) ?
257
+ } ;
258
+
259
+ self . create_df_logical_plan ( stmt, & mut None , span_id. clone ( ) )
326
260
. await
327
- }
328
261
}
329
262
330
263
fn explain_to_plan (
0 commit comments