@@ -287,6 +287,11 @@ impl UserQuery {
287287
288288 #[ instrument( name = "UserQuery::postprocess_query_statement" , level = "trace" , err) ]
289289 pub fn postprocess_query_statement_with_validation ( statement : & mut DFStatement ) -> Result < ( ) > {
290+ let statement = if let DFStatement :: Explain ( explain) = statement {
291+ explain. statement . as_mut ( )
292+ } else {
293+ statement
294+ } ;
290295 if let DFStatement :: Statement ( value) = statement {
291296 rlike_regexp_expr_rewriter:: visit ( value) ;
292297 functions_rewriter:: visit ( value) ;
@@ -953,7 +958,7 @@ impl UserQuery {
953958 let catalog = self . get_catalog ( & catalog_name) . map_err ( |_| {
954959 ex_error:: CatalogNotFoundSnafu {
955960 operation_on : OperationOn :: Table ( OperationType :: Create ) ,
956- catalog : catalog_name. to_string ( ) ,
961+ catalog : catalog_name. clone ( ) ,
957962 }
958963 . build ( )
959964 } ) ?;
@@ -2546,17 +2551,17 @@ impl UserQuery {
25462551 . await
25472552 . context ( ex_error:: MetastoreSnafu ) ?
25482553 . context ( ex_error:: TableNotFoundSnafu {
2549- schema : ident. schema . to_string ( ) ,
2550- table : ident. table . to_string ( ) ,
2554+ schema : ident. schema . clone ( ) ,
2555+ table : ident. table . clone ( ) ,
25512556 } ) ?;
25522557 let volume = self
25532558 . metastore
25542559 . volume_for_table ( & ident)
25552560 . await
25562561 . context ( ex_error:: MetastoreSnafu ) ?
25572562 . context ( ex_error:: TableNotFoundSnafu {
2558- schema : ident. schema . to_string ( ) ,
2559- table : ident. table . to_string ( ) ,
2563+ schema : ident. schema . clone ( ) ,
2564+ table : ident. table . clone ( ) ,
25602565 } ) ?;
25612566 let setup_query = match volume. volume . clone ( ) {
25622567 VolumeType :: S3 ( s3_volume) => {
@@ -3219,10 +3224,8 @@ pub fn merge_clause_projection<S: ContextProvider>(
32193224 if values. rows . len ( ) != 1 {
32203225 return Err ( ex_error:: MergeInsertOnlyOneRowSnafu . build ( ) ) ;
32213226 }
3222- let mut all_columns: HashSet < String > = target_schema
3223- . iter ( )
3224- . map ( |x| x. 1 . name ( ) . to_string ( ) )
3225- . collect ( ) ;
3227+ let mut all_columns: HashSet < String > =
3228+ target_schema. iter ( ) . map ( |x| x. 1 . name ( ) . clone ( ) ) . collect ( ) ;
32263229 for ( column, value) in insert. columns . iter ( ) . zip (
32273230 values
32283231 . rows
@@ -3406,7 +3409,8 @@ async fn target_filter_expression(
34063409 table : & DataFusionTable ,
34073410) -> Result < Option < datafusion_expr:: Expr > > {
34083411 #[ allow( clippy:: unwrap_used) ]
3409- let table = match table. tabular . read ( ) . unwrap ( ) . clone ( ) {
3412+ let value = table. tabular . read ( ) . unwrap ( ) . clone ( ) ;
3413+ let table = match value {
34103414 Tabular :: Table ( table) => Ok ( table) ,
34113415 _ => MergeSourceNotSupportedSnafu . fail ( ) ,
34123416 } ?;
0 commit comments