You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Edmon Begoli <eb...@gmail.com> on 2017/11/12 00:50:45 UTC

A guide to Planner

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

Re: A guide to Planner

Posted by Julian Hyde <jh...@apache.org>.
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 <eb...@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