andygrove commented on issue #4452: URL: https://github.com/apache/datafusion-comet/issues/4452#issuecomment-4555314150
After a closer look at Spark, this is not a divergence. Spark's `MakeDate.nullSafeEval` uses `LocalDate.of(year, month, day)` (`datetimeExpressions.scala:2453` in v3.5.8), which accepts any year in `[-999999999, 999999999]` (the Java `LocalDate` range). chrono's `NaiveDate::from_ymd_opt` accepts the same range, so year 0 and negative years produce the same date on both engines. The existing SQL tests at `spark/src/test/resources/sql-tests/expressions/datetime/make_date.sql:133,136` exercise `make_date(0, 1, 1)` and `make_date(-1, 1, 1)` in default `query` mode and pass, confirming no divergence. The audit finding that produced this issue was overstated: Spark's `@ExpressionDescription` documents the range as 1..9999 but the implementation does not enforce that bound. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
