Something similar to "EXPLAIN ANALYZE" where we annotate explain plan with actual and estimated statistics. The runtime stats can be cached at query level and subsequent execution of the same query can make use of the cached statistics from the previous run for better optimization.
Some use cases,
1) re-planning join query (mapjoin failures can be converted to shuffle joins)
2) better statistics for table scan operator if dynamic partition pruning is involved
3) Better estimates for bloom filter initialization (setting expected entries during merge)
This can extended to support wider queries by caching fragments of operator plans scanning same table(s) or matching some operator sequences.
|There are 2 configs to detect/warn for cross products||Open||Unassigned|
|Handle explain analyze for reoptimization||Open|