felipepessoto opened a new pull request, #12337: URL: https://github.com/apache/gluten/pull/12337
## What changes are proposed in this pull request? Backport of #12290 (commit e2300d86baf58d935a087951f097a52f13ac30f3) to `branch-1.7`. This is a clean cherry-pick (`git cherry-pick -x`) with no conflicts — the patch is identical to the one merged on `main`. For context, the original fix: `SubstraitVeloxExprConverter::toVeloxExpr(FieldReference, RowTypePtr)` walks a nested `struct_field` reference and descends with `inputColumnType = asRowType(childAt(idx))`. When the path traverses a non-struct child (e.g. a field nested under an array), `asRowType()` returns `nullptr` and the next iteration dereferenced it, crashing the forked JVM with a `SIGSEGV` that `SubstraitToVeloxPlanValidator` could not catch. The fix adds `VELOX_USER_CHECK` guards so an unsupported nested reference throws a catchable `VeloxUserError` and the query falls back to vanilla Spark instead of crashing the process. See #12290 for the full description and CI evidence. ## How was this patch tested? Cherry-picked the unit test `cpp/velox/tests/SubstraitVeloxExprConverterTest.cc` (identical to `main`), which builds the crashing `FieldReference` (a reference descending into an array column) and asserts the converter now throws instead of aborting the JVM. CI on this PR validates the build and tests against `branch-1.7`. ## Was this patch authored or co-authored using generative AI tooling? Generated-by: GitHub Copilot CLI (claude-opus-4.8) -- 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]
