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

Julian Hyde commented on CALCITE-1536:
--------------------------------------

I agree that {{RelOptPlanner}} will be less important, and more short-term. It 
will be created inside of a particular {{Program}}, and discarded at the end. 
And we will be able to remove it from the {{RelNode Program.run(RelOptPlanner, 
RelNode, RelTraitSet)}} API.

There's still a question of where the data that used to be in RelOptPlanner (in 
particular materializations and lattices) moves to. Options: 1. move it into 
Program, 2. pass it as arguments to {{Program.run}}. You seem to prefer 1, I am 
leaning towards 2. I prefer that Program doesn't contain any session data 
(analogous to a Java .class file).

> Initialize cluster before planner
> ---------------------------------
>
>                 Key: CALCITE-1536
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1536
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> We should initialize the cluster ({{RelOptCluster}}) before planner 
> ({{RelOptPlanner}}, or a sub-class such as {{VolcanoPlanner}} or 
> {{HepPlanner}}). Currently the planner contains important information such as 
> executor ({{RelOptPlanner.Executor}}), the set of active traits (epitomized 
> by the {{RelOptPlanner.emptyTraitSet}} method) and the metadata providers, 
> and the cluster contains a link to a planner, so the planner has to be 
> created first.
> This makes it difficult to use a succession of planners for query planning. 
> Fixing this issue is a first step towards CALCITE-1525.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to