Description
AQE logical optimization rules can lead to invalid physical plans as certain physical plan nodes are not compatible with others. E.g., `BroadcastExchangeExec` can only work as a direct child of broadcast join nodes.
Logical optimizations, on the other hand, are not (and should not be) aware of such restrictions. So a general solution here is to check for invalid plans and throw exceptions, which can be caught by AQE replanning process. And if such an exception is captured, AQE can void the current replanning result and keep using the latest valid plan.
Attachments
Issue Links
- fixes
-
SPARK-41336 BroadcastExchange does not support the execute() code path. when AQE enabled
- Resolved
- is duplicated by
-
SPARK-39447 Only non-broadcast query stage can propagate empty relation
- Resolved
- relates to
-
SPARK-39447 Only non-broadcast query stage can propagate empty relation
- Resolved
- links to