@@ -23,10 +23,11 @@ use crate::math_funcs::log::spark_log;
2323use crate :: math_funcs:: modulo_expr:: spark_modulo;
2424use crate :: {
2525 spark_ceil, spark_decimal_div, spark_decimal_integral_div, spark_floor, spark_isnan,
26- spark_lpad, spark_make_decimal, spark_read_side_padding, spark_round, spark_rpad, spark_unhex,
27- spark_unscaled_value, EvalMode , SparkArrayCompact , SparkArrayPositionFunc , SparkArraysOverlap ,
28- SparkContains , SparkDateDiff , SparkDateFromUnixDate , SparkDateTrunc , SparkMakeDate ,
29- SparkMakeTime , SparkSecondsToTimestamp , SparkSizeFunc ,
26+ spark_lpad, spark_make_decimal, spark_read_side_padding, spark_round, spark_rpad,
27+ spark_to_time, spark_unhex, spark_unscaled_value, EvalMode , SparkArrayCompact ,
28+ SparkArrayPositionFunc , SparkArraysOverlap , SparkContains , SparkDateDiff ,
29+ SparkDateFromUnixDate , SparkDateTrunc , SparkMakeDate , SparkMakeTime ,
30+ SparkSecondsToTimestamp , SparkSizeFunc ,
3031} ;
3132use arrow:: datatypes:: DataType ;
3233use datafusion:: common:: { DataFusionError , Result as DataFusionResult } ;
@@ -196,6 +197,9 @@ pub fn create_comet_physical_fun_with_eval_mode(
196197 let func = Arc :: new ( spark_map_sort) ;
197198 make_comet_scalar_udf ! ( "spark_map_sort" , func, without data_type)
198199 }
200+ "to_time" => {
201+ make_comet_scalar_udf ! ( "to_time" , spark_to_time, without data_type, fail_on_error)
202+ }
199203 _ => registry. udf ( fun_name) . map_err ( |e| {
200204 DataFusionError :: Execution ( format ! (
201205 "Function {fun_name} not found in the registry: {e}" ,
0 commit comments