@@ -40,6 +40,7 @@ use datafusion::physical_plan::InputOrderMode;
4040use datafusion:: {
4141 arrow:: { compute:: SortOptions , datatypes:: SchemaRef } ,
4242 common:: DataFusionError ,
43+ config:: ConfigOptions ,
4344 execution:: FunctionRegistry ,
4445 functions_aggregate:: first_last:: { FirstValue , LastValue } ,
4546 logical_expr:: Operator as DataFusionOperator ,
@@ -623,8 +624,13 @@ impl PhysicalPlanner {
623624 let args = vec ! [ child] ;
624625 let comet_hour = Arc :: new ( ScalarUDF :: new_from_impl ( SparkHour :: new ( timezone) ) ) ;
625626 let field_ref = Arc :: new ( Field :: new ( "hour" , DataType :: Int32 , true ) ) ;
626- let expr: ScalarFunctionExpr =
627- ScalarFunctionExpr :: new ( "hour" , comet_hour, args, field_ref) ;
627+ let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
628+ "hour" ,
629+ comet_hour,
630+ args,
631+ field_ref,
632+ Arc :: new ( ConfigOptions :: default ( ) ) ,
633+ ) ;
628634
629635 Ok ( Arc :: new ( expr) )
630636 }
@@ -635,8 +641,13 @@ impl PhysicalPlanner {
635641 let args = vec ! [ child] ;
636642 let comet_minute = Arc :: new ( ScalarUDF :: new_from_impl ( SparkMinute :: new ( timezone) ) ) ;
637643 let field_ref = Arc :: new ( Field :: new ( "minute" , DataType :: Int32 , true ) ) ;
638- let expr: ScalarFunctionExpr =
639- ScalarFunctionExpr :: new ( "minute" , comet_minute, args, field_ref) ;
644+ let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
645+ "minute" ,
646+ comet_minute,
647+ args,
648+ field_ref,
649+ Arc :: new ( ConfigOptions :: default ( ) ) ,
650+ ) ;
640651
641652 Ok ( Arc :: new ( expr) )
642653 }
@@ -647,8 +658,13 @@ impl PhysicalPlanner {
647658 let args = vec ! [ child] ;
648659 let comet_second = Arc :: new ( ScalarUDF :: new_from_impl ( SparkSecond :: new ( timezone) ) ) ;
649660 let field_ref = Arc :: new ( Field :: new ( "second" , DataType :: Int32 , true ) ) ;
650- let expr: ScalarFunctionExpr =
651- ScalarFunctionExpr :: new ( "second" , comet_second, args, field_ref) ;
661+ let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
662+ "second" ,
663+ comet_second,
664+ args,
665+ field_ref,
666+ Arc :: new ( ConfigOptions :: default ( ) ) ,
667+ ) ;
652668
653669 Ok ( Arc :: new ( expr) )
654670 }
@@ -870,8 +886,13 @@ impl PhysicalPlanner {
870886 ScalarUDF :: new_from_impl ( BloomFilterMightContain :: try_new ( bloom_filter_expr) ?) ;
871887
872888 let field_ref = Arc :: new ( Field :: new ( "might_contain" , DataType :: Boolean , true ) ) ;
873- let expr: ScalarFunctionExpr =
874- ScalarFunctionExpr :: new ( "might_contain" , Arc :: new ( udf) , args, field_ref) ;
889+ let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
890+ "might_contain" ,
891+ Arc :: new ( udf) ,
892+ args,
893+ field_ref,
894+ Arc :: new ( ConfigOptions :: default ( ) ) ,
895+ ) ;
875896 Ok ( Arc :: new ( expr) )
876897 }
877898 ExprStruct :: CreateNamedStruct ( expr) => {
@@ -1090,6 +1111,7 @@ impl PhysicalPlanner {
10901111 fun_expr,
10911112 vec ! [ left, right] ,
10921113 Arc :: new ( Field :: new ( func_name, data_type, true ) ) ,
1114+ Arc :: new ( ConfigOptions :: default ( ) ) ,
10931115 ) ) )
10941116 }
10951117 _ => {
@@ -1115,6 +1137,7 @@ impl PhysicalPlanner {
11151137 fun_expr,
11161138 vec ! [ left, right] ,
11171139 Arc :: new ( Field :: new ( op_str, data_type, true ) ) ,
1140+ Arc :: new ( ConfigOptions :: default ( ) ) ,
11181141 ) ) )
11191142 } else {
11201143 Ok ( Arc :: new ( BinaryExpr :: new ( left, op, right) ) )
@@ -2354,6 +2377,8 @@ impl PhysicalPlanner {
23542377 window_frame. into ( ) ,
23552378 input_schema. as_ref ( ) ,
23562379 false , // TODO: Ignore nulls
2380+ false , // TODO: Spark does not support DISTINCT ... OVER
2381+ None ,
23572382 )
23582383 . map_err ( |e| ExecutionError :: DataFusionError ( e. to_string ( ) ) )
23592384 }
@@ -2533,6 +2558,7 @@ impl PhysicalPlanner {
25332558 fun_expr,
25342559 args. to_vec ( ) ,
25352560 Arc :: new ( Field :: new ( fun_name, data_type, true ) ) ,
2561+ Arc :: new ( ConfigOptions :: default ( ) ) ,
25362562 ) ) ;
25372563
25382564 Ok ( scalar_expr)
0 commit comments