@@ -70,8 +70,7 @@ use datafusion::{
7070} ;
7171use datafusion_comet_spark_expr:: {
7272 create_comet_physical_fun, create_comet_physical_fun_with_eval_mode, BinaryOutputStyle ,
73- BloomFilterAgg , BloomFilterMightContain , EvalMode , SparkHour , SparkMinute , SparkSecond ,
74- SparkUnixTimestamp ,
73+ BloomFilterAgg , BloomFilterMightContain , EvalMode ,
7574} ;
7675use iceberg:: expr:: Bind ;
7776
@@ -126,8 +125,7 @@ use datafusion_comet_spark_expr::monotonically_increasing_id::MonotonicallyIncre
126125use datafusion_comet_spark_expr:: {
127126 ArrayInsert , Avg , AvgDecimal , Cast , CheckOverflow , Correlation , Covariance , CreateNamedStruct ,
128127 GetArrayStructFields , GetStructField , IfExpr , ListExtract , NormalizeNaNAndZero , RandExpr ,
129- RandnExpr , SparkCastOptions , Stddev , SumDecimal , TimestampTruncExpr , ToJson , UnboundColumn ,
130- Variance ,
128+ RandnExpr , SparkCastOptions , Stddev , SumDecimal , ToJson , UnboundColumn , Variance ,
131129} ;
132130use itertools:: Itertools ;
133131use jni:: objects:: GlobalRef ;
@@ -375,83 +373,6 @@ impl PhysicalPlanner {
375373 SparkCastOptions :: new ( eval_mode, & expr. timezone , expr. allow_incompat ) ,
376374 ) ) )
377375 }
378- ExprStruct :: Hour ( expr) => {
379- let child =
380- self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , Arc :: clone ( & input_schema) ) ?;
381- let timezone = expr. timezone . clone ( ) ;
382- let args = vec ! [ child] ;
383- let comet_hour = Arc :: new ( ScalarUDF :: new_from_impl ( SparkHour :: new ( timezone) ) ) ;
384- let field_ref = Arc :: new ( Field :: new ( "hour" , DataType :: Int32 , true ) ) ;
385- let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
386- "hour" ,
387- comet_hour,
388- args,
389- field_ref,
390- Arc :: new ( ConfigOptions :: default ( ) ) ,
391- ) ;
392-
393- Ok ( Arc :: new ( expr) )
394- }
395- ExprStruct :: Minute ( expr) => {
396- let child =
397- self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , Arc :: clone ( & input_schema) ) ?;
398- let timezone = expr. timezone . clone ( ) ;
399- let args = vec ! [ child] ;
400- let comet_minute = Arc :: new ( ScalarUDF :: new_from_impl ( SparkMinute :: new ( timezone) ) ) ;
401- let field_ref = Arc :: new ( Field :: new ( "minute" , DataType :: Int32 , true ) ) ;
402- let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
403- "minute" ,
404- comet_minute,
405- args,
406- field_ref,
407- Arc :: new ( ConfigOptions :: default ( ) ) ,
408- ) ;
409-
410- Ok ( Arc :: new ( expr) )
411- }
412- ExprStruct :: Second ( expr) => {
413- let child =
414- self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , Arc :: clone ( & input_schema) ) ?;
415- let timezone = expr. timezone . clone ( ) ;
416- let args = vec ! [ child] ;
417- let comet_second = Arc :: new ( ScalarUDF :: new_from_impl ( SparkSecond :: new ( timezone) ) ) ;
418- let field_ref = Arc :: new ( Field :: new ( "second" , DataType :: Int32 , true ) ) ;
419- let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
420- "second" ,
421- comet_second,
422- args,
423- field_ref,
424- Arc :: new ( ConfigOptions :: default ( ) ) ,
425- ) ;
426-
427- Ok ( Arc :: new ( expr) )
428- }
429- ExprStruct :: UnixTimestamp ( expr) => {
430- let child =
431- self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , Arc :: clone ( & input_schema) ) ?;
432- let timezone = expr. timezone . clone ( ) ;
433- let args = vec ! [ child] ;
434- let comet_unix_timestamp =
435- Arc :: new ( ScalarUDF :: new_from_impl ( SparkUnixTimestamp :: new ( timezone) ) ) ;
436- let field_ref = Arc :: new ( Field :: new ( "unix_timestamp" , DataType :: Int64 , true ) ) ;
437- let expr: ScalarFunctionExpr = ScalarFunctionExpr :: new (
438- "unix_timestamp" ,
439- comet_unix_timestamp,
440- args,
441- field_ref,
442- Arc :: new ( ConfigOptions :: default ( ) ) ,
443- ) ;
444-
445- Ok ( Arc :: new ( expr) )
446- }
447- ExprStruct :: TruncTimestamp ( expr) => {
448- let child =
449- self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , Arc :: clone ( & input_schema) ) ?;
450- let format = self . create_expr ( expr. format . as_ref ( ) . unwrap ( ) , input_schema) ?;
451- let timezone = expr. timezone . clone ( ) ;
452-
453- Ok ( Arc :: new ( TimestampTruncExpr :: new ( child, format, timezone) ) )
454- }
455376 ExprStruct :: CheckOverflow ( expr) => {
456377 let child = self . create_expr ( expr. child . as_ref ( ) . unwrap ( ) , input_schema) ?;
457378 let data_type = to_arrow_datatype ( expr. datatype . as_ref ( ) . unwrap ( ) ) ;
0 commit comments