1. I would run planner tests (e.g. RelOptRulesTest, PlannerTest, VolcanoPlannerTest) in a debugger. I would turn on tracing and try to understand the output.
Frameworks and Planner may be useful classes if you find it difficult to create the environment needed for a planner. 2. VolcanoPlanner.findBestExp() 3. I don’t know - it’s a complex piece of code 4. no - except for the parser 5. not much These are very quick answers. Others, please chime in with your answers. Julian > On Nov 11, 2017, at 4:50 PM, Edmon Begoli <ebeg...@gmail.com> wrote: > > Calcite planner implementer(s): > > Could you give me a quick pointer on how to best navigate and study the > planner code, so that I could write a proper documentation as the community > desires, and maybe write an example for a simple custom planner. > > Give me, if you can, a quick guide on: > > 1. where to get started for studying of the code, > > 2. where are the starting points for actual execution of the planner code > > 3. are there any "gotchas" to be aware of > > 4. are there any hidden (auto-generated) codes, not obvious from the source > > 5. is there any code that is there but not used > > I am doing this in response to self-assigned, so that we can put in place a > good description of this important aspect of the Calcite design and the > functionality: > https://issues.apache.org/jira/browse/CALCITE-2048