damccorm opened a new pull request, #39459: URL: https://github.com/apache/beam/pull/39459
## Summary Removes `CoreRules.PROJECT_SET_OP_TRANSPOSE` from the active planner rule set in `BeamRuleSets`. This rule pushes projections through set operations (UNION/INTERSECT/EXCEPT), transposing the projection into each branch where `PROJECT_MERGE` then fuses it with adjacent branch projections. This fusion cancels the deterministic IEEE-754 FP surrogate wrapped around FLOAT/DOUBLE set-operation columns (collapsing `from_bits(bits(x))` back to the raw `DOUBLE`), reintroducing the non-deterministic `Double`/`Float` key coder that Beam's CoGroup-based set operators reject with "the keyCoder of a GroupByKey must be deterministic." The rule is a pure optimization, so omitting it is correctness-preserving. ## Changes - **`BeamRuleSets.java`**: Replaced `CoreRules.PROJECT_SET_OP_TRANSPOSE` with a comment explaining why it is intentionally disabled. - **`BeamRuleSetsTest.java`** (new): Tests verifying `PROJECT_SET_OP_TRANSPOSE` is not in the active rule set and `FILTER_SET_OP_TRANSPOSE` remains enabled. ## Files Changed - `sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/planner/BeamRuleSets.java` - `sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/impl/planner/BeamRuleSetsTest.java` (new) -- 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]
