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]

Reply via email to