Comment by gopalv
3 months ago
This is a great write up about a pull-style volcano SQL engine.
The IR I've used is the Calcite implementation, this looks very concept adjacent enough that it makes sense on the first read.
> tmp2/test-branch> explain plan select count() from xy join uv on x = u;
One of the helpful things we did was to build a graphviz dot export for the explains plans, which saved us days and years of work when trying to explain an optimization problem between the physical and logical layers.
My version would end up displayed as SVG like this
https://web.archive.org/web/20190724161156/http://people.apa...
But the calcite logical plans also have that dot export modes.
Calcite also has a relatively-unknown web tool for plan visualization that lets you step through execution.
It's a method from "RuleMatchVisualizer":
https://github.com/apache/calcite/blob/36f6dddd894b8b79edeb5...
Here's a screenshot of what the webpage looks like, for anyone curious:
https://github.com/GavinRay97/GraphQLCalcite/blob/92b18a850d...
This is really great!!