Problem: when optimize some sql (has Union + Aggregate pattern) based on VolcanoPlanner may take a long time(tens of seconds or a few minutes).
After adding the time cost statistics for each rule during the optimization phase, I found that "AggregateUnionAggregateRule" has a large value, but the query pattern will not be matched finally.
So I try to make a minor change for AggregateUnionAggregateRule and the statistics shows a improvement for the same query be tested. (see the attached image)
1. Current AggregateUnionAggregateRule's match pattern:
2. Real patterns that can possibly be matched:
Will this change reasonable? (BTW, would it be useful to add some time cost statistics to VolcanoPlanner like the attached image below? I saw a CalciteTimingTracer class and getSqlTimingTracer() in CalciteTracer but not used.)