andygrove opened a new pull request, #4139:
URL: https://github.com/apache/datafusion-comet/pull/4139

   ## Which issue does this PR close?
   
   Closes #4077.
   
   ## Rationale for this change
   
   `StringDecode`, `ToPrettyString`, and `WidthBucket` were registered through 
`CometExprShim.versionSpecificExprToProtoInternal` and bypassed the 
`CometExpressionSerde` framework. They had no per-expression `enabled` config, 
no support-level gate, and no entry in the auto-generated compatibility guide.
   
   ## What changes are included in this PR?
   
   - Add category-keyed maps (`versionSpecificStringExpressions`, 
`versionSpecificMathExpressions`, `versionSpecificMiscExpressions`) to 
`CometExprShim`. `QueryPlanSerde` merges these into the global category maps.
   - Make `binaryOutputStyle` public on the trait so serde objects can read it 
via `QueryPlanSerde.binaryOutputStyle`.
   - Migrate `StringDecode` (3.4 / 3.5), `ToPrettyString` (3.5 / 4.x), and 
`WidthBucket` (3.5 / 4.x) to standalone `CometExpressionSerde[T]` objects under 
the relevant version source dirs.
   - Trim each shim's `versionSpecificExprToProtoInternal` to only the cases 
that cannot be keyed by `Class[_]`: `KnownNotContainsNull`, 
`Invoke`-on-`StructsToJsonEvaluator`, and the 4.x 
`StaticInvoke`-on-`StringDecode` rewrite.
   - `MapSort` is intentionally not migrated here. It lives on the 
`feat/map-sort-spark4` branch and will move in a follow-up after #4076 lands.
   
   ## How are these changes tested?
   
   - New framework tests (one per migrated expression) toggle the 
`spark.comet.expression.<X>.enabled` config and assert the expression now falls 
back to Spark when disabled. These tests fail before the refactor and pass 
after, demonstrating the framework integration works.
   - Existing tests (`CometToPrettyStringSuite` on 3.5 and 4.x, 
`CometStringExpressionSuite`) continue to pass, confirming no behavior change 
for accepted expressions.


-- 
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]

Reply via email to