@@ -52,7 +52,7 @@ impl DataFusionEvaluationHandler {
5252 fn evaluator (
5353 & self ,
5454 schema : SchemaRef ,
55- expression : Expression ,
55+ expression : Arc < Expression > ,
5656 output_type : DataType ,
5757 ) -> Arc < DataFusionExpressionEvaluator > {
5858 let maybe_schema: Result < ArrowSchema , _ > = schema. as_ref ( ) . try_into_arrow ( ) ;
@@ -79,7 +79,7 @@ impl EvaluationHandler for DataFusionEvaluationHandler {
7979 fn new_expression_evaluator (
8080 & self ,
8181 schema : SchemaRef ,
82- expression : Expression ,
82+ expression : Arc < Expression > ,
8383 output_type : DataType ,
8484 ) -> Arc < dyn ExpressionEvaluator > {
8585 self . evaluator ( schema, expression, output_type)
@@ -88,11 +88,11 @@ impl EvaluationHandler for DataFusionEvaluationHandler {
8888 fn new_predicate_evaluator (
8989 & self ,
9090 schema : SchemaRef ,
91- predicate : Predicate ,
91+ predicate : Arc < Predicate > ,
9292 ) -> Arc < dyn PredicateEvaluator > {
9393 self . evaluator (
9494 schema,
95- Expression :: Predicate ( Box :: new ( predicate) ) ,
95+ Expression :: Predicate ( Box :: new ( predicate. as_ref ( ) . clone ( ) ) ) . into ( ) ,
9696 DataType :: BOOLEAN ,
9797 )
9898 }
@@ -268,7 +268,7 @@ mod tests {
268268
269269 let evaluator = handler. new_expression_evaluator (
270270 input_schema,
271- expr,
271+ expr. into ( ) ,
272272 DataType :: Primitive ( PrimitiveType :: Integer ) ,
273273 ) ;
274274
@@ -305,7 +305,7 @@ mod tests {
305305 StructField :: new( "y" , DataType :: Primitive ( PrimitiveType :: String ) , true ) ,
306306 ] ) ) ) ;
307307
308- let evaluator = handler. new_expression_evaluator ( input_schema, expr, output_type) ;
308+ let evaluator = handler. new_expression_evaluator ( input_schema, expr. into ( ) , output_type) ;
309309 let result = evaluator. evaluate ( & data) . unwrap ( ) ;
310310 let engine_data = ArrowEngineData :: try_from_engine_data ( result) . unwrap ( ) ;
311311
@@ -332,7 +332,7 @@ mod tests {
332332
333333 let evaluator = handler. new_expression_evaluator (
334334 input_schema,
335- expr,
335+ expr. into ( ) ,
336336 DataType :: Primitive ( PrimitiveType :: Integer ) ,
337337 ) ;
338338
@@ -362,7 +362,7 @@ mod tests {
362362
363363 let evaluator = handler. new_expression_evaluator (
364364 input_schema,
365- expr,
365+ expr. into ( ) ,
366366 DataType :: Primitive ( PrimitiveType :: Integer ) ,
367367 ) ;
368368
0 commit comments