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

Reply via email to