What
Gluten has no ANSI-on cast coverage on Spark 3.4 and 3.5, and the workflow that would run it does not cover those versions.
On 4.0 and 4.1, VeloxTestSettings enables both GlutenCastWithAnsiOffSuite and GlutenCastWithAnsiOnSuite. On 3.4 and 3.5 only the ANSI-off one is enabled, under its older name GlutenCastSuite.
The order matters
Enabling an ANSI-on suite on 3.4/3.5 by itself buys nothing. FallbackOnANSIMode (gluten-substrait/.../FallbackRules.scala:30) tags the whole plan when enableAnsiMode && enableAnsiFallback, and spark.gluten.sql.ansiFallback.enabled defaults to true, so with session ANSI on the query falls back to vanilla Spark and the suite tests nothing about Velox. The only place that flag is turned off is .github/workflows/velox_backend_ansi.yml, and that workflow has jobs for 4.0 and 4.1 only. The comment on the 4.0 suite says as much: ANSI fallback has to be off for Velox to actually execute.
So this needs two steps, in order:
- Add 3.4 and 3.5 jobs to
velox_backend_ansi.yml, mirroring the existing spark-test-spark-ut-ansi-spark40 shape, including -Dspark.gluten.sql.ansiFallback.enabled=false in the argLine.
- Enable the ANSI-on cast suite on those two modules and settle whatever it turns up, with per-case exclusions carrying a stated reason.
Not a blocker for removing Spark 3.3
Recorded during the audit for #12807. It is unrelated to deleting the 3.3 module: the three ANSI cast suites that only exist on gluten-ut/spark33 never reach Velox either, for the reasons written up in #12863, so nothing is lost by deleting them and nothing is gained by keeping them.
Related: #12807, #12863.
What
Gluten has no ANSI-on cast coverage on Spark 3.4 and 3.5, and the workflow that would run it does not cover those versions.
On 4.0 and 4.1,
VeloxTestSettingsenables bothGlutenCastWithAnsiOffSuiteandGlutenCastWithAnsiOnSuite. On 3.4 and 3.5 only the ANSI-off one is enabled, under its older nameGlutenCastSuite.The order matters
Enabling an ANSI-on suite on 3.4/3.5 by itself buys nothing.
FallbackOnANSIMode(gluten-substrait/.../FallbackRules.scala:30) tags the whole plan whenenableAnsiMode && enableAnsiFallback, andspark.gluten.sql.ansiFallback.enableddefaults to true, so with session ANSI on the query falls back to vanilla Spark and the suite tests nothing about Velox. The only place that flag is turned off is.github/workflows/velox_backend_ansi.yml, and that workflow has jobs for 4.0 and 4.1 only. The comment on the 4.0 suite says as much: ANSI fallback has to be off for Velox to actually execute.So this needs two steps, in order:
velox_backend_ansi.yml, mirroring the existingspark-test-spark-ut-ansi-spark40shape, including-Dspark.gluten.sql.ansiFallback.enabled=falsein the argLine.Not a blocker for removing Spark 3.3
Recorded during the audit for #12807. It is unrelated to deleting the 3.3 module: the three ANSI cast suites that only exist on
gluten-ut/spark33never reach Velox either, for the reasons written up in #12863, so nothing is lost by deleting them and nothing is gained by keeping them.Related: #12807, #12863.