peterxcli opened a new issue, #5223: URL: https://github.com/apache/datafusion-comet/issues/5223
## What is the problem the feature request solves? Several Comet test suites independently implement the same full `Throwable.getCause` traversal: - `CometTemporalExpressionSuite` defines `causeChain` for structured Spark exception checks added in #5167. - `CometRegExpJvmSuite` walks the chain to inspect exception class names. - `ParquetReadSuite` walks the chain to find `SchemaColumnConvertNotSupportedException`. - `CometExecSuite` contains two copies that inspect exception messages. This duplicates null termination, ordering, and diagnostic behavior across five call sites in four suites. Related code in `CometExpressionSuite`, `CometDppFallbackRepro3949Suite`, `CometSQLQueryTestHelper`, and `CometCastSuite` intentionally uses bounded, root-only, or one-level unwrapping semantics and should not be changed automatically. ## Describe the potential solution Add one protected `causeChain(error: Throwable): Seq[Throwable]` helper to `CometTestBase` and migrate the identical full-chain traversals to it. Keep `deepestSparkThrowable` local to `CometTemporalExpressionSuite` because selecting the deepest structured Spark exception is currently unique policy; it can use the inherited `causeChain` helper. Do not introduce a universal structured-exception comparator or change tests that intentionally inspect only one cause level. Validate that the migrated tests preserve outer-to-inner ordering and behavior across supported Spark versions. ## Additional context Raised while addressing review feedback on #5167. -- 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]
