diff --git a/datafusion/spark/src/function/datetime/next_day.rs b/datafusion/spark/src/function/datetime/next_day.rs index 2241043d44cd..110dbe432c64 100644 --- a/datafusion/spark/src/function/datetime/next_day.rs +++ b/datafusion/spark/src/function/datetime/next_day.rs @@ -210,7 +210,7 @@ where fn spark_next_day(days: i32, day_of_week: &str) -> Option { let date = Date32Type::to_naive_date_opt(days)?; - let day_of_week = day_of_week.trim().to_uppercase(); + let day_of_week = day_of_week.to_uppercase(); let day_of_week = match day_of_week.as_str() { "MO" | "MON" | "MONDAY" => Some("MONDAY"), "TU" | "TUE" | "TUESDAY" => Some("TUESDAY"), diff --git a/datafusion/sqllogictest/test_files/spark/datetime/next_day.slt b/datafusion/sqllogictest/test_files/spark/datetime/next_day.slt index 872d1f2b58eb..e81e76fabf77 100644 --- a/datafusion/sqllogictest/test_files/spark/datetime/next_day.slt +++ b/datafusion/sqllogictest/test_files/spark/datetime/next_day.slt @@ -64,6 +64,22 @@ SELECT next_day('2020-01-01'::DATE, 'invalid_day'::string); ---- NULL +# Whitespace must NOT be trimmed — Spark does not accept padded day names (issue #22717) +query D +SELECT next_day('2024-01-01'::DATE, ' MO '::string); +---- +NULL + +query D +SELECT next_day('2024-01-01'::DATE, ' Monday '::string); +---- +NULL + +query D +SELECT next_day('2024-01-01'::DATE, ' sun '::string); +---- +NULL + query error Cast error: Cannot cast string '2015-13-32' to value of Date32 type SELECT next_day('2015-13-32'::DATE, 'Sun'::string);