Hi Vladimir,

Anton Haidai did a nice visualizer [1] for sets, subsets, and rels using
Calcite's logging mechanism.
Maybe it suits your needs.

Best,
Stamatis

[1] https://github.com/anha1/apache-calcite-trace-analyzer

Στις Δευ, 28 Ιαν 2019 στις 1:01 μ.μ., ο/η Vladimir Sitnikov <
[email protected]> έγραψε:

> Hi,
>
> I've been debugging VolcanoPlanner for quite some time recently, and
> it looks like its transparency leaves much to be desired.
>
> Key issues I've run into:
> 1) It is complicated to understand "what happens" during rule execution.
> call.transformTo(..) is used a lot, and it is really hard to keep in
> head the IDs of rels, subsets, etc
> 2) It takes time to draw the rels on a paper
> 3) "CannotPlanException" is not human readable. I can read it now,
> however it really takes time to navigate through IDs.
>
> I think a visual representation of the planner state would help a lot
> for both debugging and/or crash analysis.
> Does anyone have a tool to visualize sets, subsets, rels and friends?
>
> For instance:
> A) Add String VolcanoPlanner#toGraphViz() so a dump of the current
> planner state can be obtained and printed (e.g. during debug)
> B) Implement automatic dump of "before and after" images for each rule
> execution. In other words, display a source state, highlight rule
> operands there, and display the final state. Bonus point for an
> animated gif :)
> C) Add a GraphViz-compatible bit to CannotPlanException, so the state
> can be visualized.
> D) Highlight possible root cause in CannotPlanException output. For
> instance, empty subset is a strong indicator. In case it can be
> related to original plan (or even SQL), then it would be great to have
> that pointer as well.
>
>
> Vladimir
>

Reply via email to