anshulsingh-py commented on PR #19853: URL: https://github.com/apache/hudi/pull/19853#issuecomment-5597650686
Addressed the two substantive findings from the last review round: - `applyImplicitCasts` only ran `ImplicitTypeCasts`, missing the other analyzer rules a filter is likely to hit — `concat(id, 'x')` was rejected even though real Spark accepts it (`ConcatCoercion` casts the Int to String). Now also runs `FunctionArgumentConversion` (greatest/least/array_contains) and `IfCoercion` (then/else branch types), in the same order `TypeCoercion`'s own rule list does. A genuine mismatch (concat against a Map argument) still gets rejected — widening the coercion didn't loosen the underlying type check. - The `Unevaluable` guard added to protect a direct `eval()` on an unsupported function had also narrowed the three pre-existing ANSI cast/arithmetic exception types, which used to rethrow unconditionally. Split back into two cases so only the two new exception types (`SparkThrowable`/`IllegalArgumentException`) get the guard — an ANSI error OR'd with an unrelated unsupported function now correctly surfaces instead of being swallowed. Also applied both nits: trimmed the dense comment block, and split `resolveViaFunctionRegistry` into `lookupBuiltin`/`finalizeRegistryResolution`/`isUsableOutsideQueryPlan`, each a single responsibility. Full `procedure` package suite: 268/268 passing, BUILD SUCCESS. Rebased onto current master. -- 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]
