[
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)