[ 
https://issues.apache.org/jira/browse/CALCITE-2048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16250024#comment-16250024
 ] 

Julian Hyde edited comment on CALCITE-2048 at 11/13/17 9:48 PM:
----------------------------------------------------------------

I agree with Enrico. 
The documentation should explain many concepts used in the planner, such as 
TraitDef, TraitSet, Convention, Program, Enumerable, Bindable, Program, Rules, 
transformation/conversion of nodes in rules, implementation of nodes, 
statistics, RelMetadataQuery, costs.  There are so many concepts.
I think examples or just snippets showing and explaining how they are used 
would help a lot.
We could also have a module with a full planner example with:
- configurable schema/catalog via json, so there is no need to use any adapter 
or create the schema somewhere else;
- configurable cost and metadata also via json, so it can be used to test 
different setups;
- show the best plan for each query, which rules where applied and the 
optimized SQL.
This would help test new rules, changes to costs and different queries easily 
using different setups.
Maybe even integrate with Cosette (CALCITE-1977) to validate whether the 
optimized SQL is really equivalent to the query.




was (Author: lfkauer):
I agree with Enrico. 
The documentation should explain many concepts used in the planner, such as 
TraitDef, TraitSet, Convention, Program, Enumerable, Bindable, Program, Rules, 
transformation/conversion of nodes in rules, implementation of nodes, 
statistics, RelMetadataQuery, costs.  There are so many concepts.
I think examples or just snippets showing and explaining how they are used 
would help a lot.
We could also have a module with a full planner example with:
- configurable schema/catalog via json, so there is no need to use any adapter 
or create the schema somewhere else;
- configurable cost and metadata also via json, so it can be used to test 
different setups;
- show the best plan for each query, which rules where applied and the 
optimized SQL.
This would help test new rules, changes to costs and different queries easily 
using different setups.
Maybe even integrate with Cosette (Calcite-1977) to validate whether the 
optimized SQL is really equivalent to the query.



> Create a better documentation for the Planner design
> ----------------------------------------------------
>
>                 Key: CALCITE-2048
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2048
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Edmon Begoli
>            Assignee: Edmon Begoli
>            Priority: Minor
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> Per request of the development community, and the assessment that we need a 
> tutorial, documentation and example code to work directly with the planner, 
> because it is a lot harder to work with the planner than with an adapter. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to