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

Reply via email to