apache / apache/gluten

[VL] No ANSI-on cast coverage on Spark 3.4/3.5, and velox_backend_ansi.yml has no jobs for them

Open
#12,892 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
1.6k
Forks
657
Avg merge
2d 14h
Merged PRs (30d)
80

Description

### 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:

1. 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.
2. 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.

Contributor guide

Open the contributing guide

Research direction

Start with .github/workflows/velox_backend_ansi.yml and gluten-substrait/.../FallbackRules.scala:30, then compare the existing spark-test-spark-ut-ansi-spark40 job and VeloxTestSettings in the Spark 3.4 and 3.5 modules. Run the added ANSI cast suites with spark.gluten.sql.ansiFallback.enabled=false. Done means both versions have ANSI jobs and suites execute on Velox, with any per-case exclusions carrying stated reasons.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, scala
Domain
ci-cd, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.