[
https://issues.apache.org/jira/browse/CALCITE-3093?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16849072#comment-16849072
]
Julian Hyde commented on CALCITE-3093:
--------------------------------------
After re-reading I now understand that you mean making JDBC connections to
Calcite. This is not as great a concern as making JDBC connections to an
external database - we know that connections are lightweight - but I agree that
we should not need JDBC to do internal activities like planning.
Would it be possible to decompose the PR into a (large) commit that moves code
around and adds system properties, and a smaller one that fixes PlannerImpl's
lifecycle?
> Remove JDBC connection calls from PlannerImpl
> ---------------------------------------------
>
> Key: CALCITE-3093
> URL: https://issues.apache.org/jira/browse/CALCITE-3093
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Hongze Zhang
> Assignee: Hongze Zhang
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Currently the class {{PlannerImpl}} creates JDBC connections[1] internally to
> instantiate {{RelOptPlanner}}. For improving the design I suggest to reverse
> the call chain, for example, we can make JDBC API call PlannerImpl to create
> {{RelOptPlanner}}, {{SqlValidator}}, {{SqlToRelConverter}} instances, etc.
> This JIRA topic is the first step of the improvement - we should decouple the
> use of JDBC API from PlannerImpl. Planner API is designed to be a reusable
> toolkit and we should make it work individually without the help of JDBC API.
> [1]
> https://github.com/apache/calcite/blob/4e1b68e3c0b2a90832cc790c6166cebb14ae2970/core/src/main/java/org/apache/calcite/prepare/PlannerImpl.java#L143-L151
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)