@@ -33,7 +33,7 @@ use crate::joins::hash_join::partitioned_hash_eval::{
3333use arrow:: array:: ArrayRef ;
3434use arrow:: datatypes:: { DataType , Field , Schema } ;
3535use datafusion_common:: config:: ConfigOptions ;
36- use datafusion_common:: { DataFusionError , Result , ScalarValue } ;
36+ use datafusion_common:: { DataFusionError , Result , ScalarValue , SharedResult } ;
3737use datafusion_expr:: Operator ;
3838use datafusion_functions:: core:: r#struct as struct_func;
3939use datafusion_physical_expr:: expressions:: {
@@ -275,7 +275,7 @@ enum AccumulatedBuildData {
275275enum CompletionState {
276276 Pending ,
277277 Finalizing ,
278- Ready ( std :: result :: Result < ( ) , String > ) ,
278+ Ready ( SharedResult < ( ) > ) ,
279279}
280280
281281struct AccumulatorState {
@@ -507,9 +507,7 @@ impl SharedBuildAccumulator {
507507 }
508508
509509 fn finish ( & self , finalize_input : FinalizeInput ) {
510- let result = self
511- . build_filter ( finalize_input)
512- . map_err ( |err| err. to_string ( ) ) ;
510+ let result = self . build_filter ( finalize_input) . map_err ( Arc :: new) ;
513511 self . dynamic_filter . mark_complete ( ) ;
514512
515513 let mut guard = self . inner . lock ( ) ;
@@ -525,7 +523,7 @@ impl SharedBuildAccumulator {
525523 match & guard. completion {
526524 CompletionState :: Ready ( Ok ( ( ) ) ) => return Ok ( ( ) ) ,
527525 CompletionState :: Ready ( Err ( err) ) => {
528- return Err ( DataFusionError :: Execution ( err . clone ( ) ) ) ;
526+ return Err ( DataFusionError :: Shared ( Arc :: clone ( err ) ) ) ;
529527 }
530528 CompletionState :: Pending | CompletionState :: Finalizing => {
531529 self . completion_notify . notified ( )
0 commit comments