924060929 commented on PR #65129: URL: https://github.com/apache/doris/pull/65129#issuecomment-4955126365
@morrySnow Per your earlier comment that the children outputs are already legal after the regulator, I've simplified `ChildOutputPropertyDeriver.visitPhysicalSetOperation` back to the 4-case rule (first NATURAL / else first STORAGE_BUCKETED / else the equivalence-set-aware generic loop) and removed the layout / output-position / equivalence-intersection helper methods that the automated reviewer had asked me to add — `ChildOutputPropertyDeriver` set-op code goes from ~255 back to ~133 lines, and the translator marker is back to the simple `isStorageBucketed` + known-layout check. All the shapes the automated reviewer raised — equivalence-mediated bucket keys (a join key exposed via a projected column), multiple visible equivalents where the parent hashes on a later one, and a `(k, v)` bucket key wider than the set-op requirement — are covered by committed regression cases (`bucket_shuffle_equivalent_key_fill_up`, `bucket_shuffle_two_equivalent_keys`, `multi_column_bucket_key_intersect`) that all pass on this simpler version; I verified their results match the execution-shuffle path on a 4-BE cluster. The only deviation from your version is the `shuffleToRight` branch returning a non-specific property (`createAnyFromHash`) instead of `ShuffleType.EXECUTION_BUCKETED`, which fixes a reproducible "Can not find tablet ... in the bucket" error when two right-basic set operations of different layouts are co-located under a join. Could you confirm this simpler direction is what you want, rather than re-adding the alignment proofs the bot requested? -- 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]
