3 ms·
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
by gopalv 1y 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.apache.org/~gopalv/q27-plan.svg https://web.archive.org/web/20190724161156/http://people.apa...
But the calcite logical plans also have that dot export modes.
https://issues.apache.org/jira/browse/CALCITE-4197 https://issues.apache.org/jira/browse/CALCITE-4197
- th0ma5 1y agoThis is really great!!
- gavinray 1y agoCalcite 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/36f6dddd894b8b79edeb568982251dec8c9d2fc0/core/src/main/java/org/apache/calcite/plan/visualizer/RuleMatchVisualizer.java#L62-L78 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/92b18a850d5546403b9760d96dc5b3a59533f3ca/readme-images/calcite-query-plan-example.png https://github.com/GavinRay97/GraphQLCalcite/blob/92b18a850d...