You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Hongze Zhang (JIRA)" <ji...@apache.org> on 2019/02/26 10:39:00 UTC

[jira] [Comment Edited] (CALCITE-2866) Allow passing factory of SqlValidator / SqlToRelConverter into FrameworkConfig

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

Hongze Zhang edited comment on CALCITE-2866 at 2/26/19 10:38 AM:
-----------------------------------------------------------------

{quote}And ask people from Drill, Flink to review those samples.
{quote}
[~julianhyde], I think this is feasible, and do you think we should somehow push the downstream projects to get to use PlannerImpl in there future versions, or we just do our work and let them choose?

And thanks for introducing the context.unwrap(...) method. I'm inclined to add some new methods to CalciteConnectionConfig, and use context.unwrap(CalciteConnectionConfig.class) to get the factories. Let me know if you have any thoughts about that.


was (Author: zhztheplayer):
{quote}And ask people from Drill, Flink to review those samples.
{quote}
[~julianhyde], I think this is feasible, and do you think we should somehow push the downstream projects to get to use PlannerImpl in there future versions? Or we just do our work and let them choose?

And thanks for introducing the context.unwrap(...) method. I'm inclined to add the new methods to CalciteConnectionConfig, and use context.unwrap(CalciteConnectionConfig.class) to get the factories. Let me know if you have any thoughts about that.

> Allow passing factory of SqlValidator / SqlToRelConverter into FrameworkConfig
> ------------------------------------------------------------------------------
>
>                 Key: CALCITE-2866
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2866
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Hongze Zhang
>            Assignee: Hongze Zhang
>            Priority: Major
>              Labels: usability
>
> I am inclined to believe that the customization of SqlValidator / SqlToRelConverter in downstream projects is something normal. 
>  E.g. Following are some examples (not all) of extended SqlValidator or SqlToRelConverter from other projects that are using Calcite as query planner :
>  # DrillValidator
>  [https://github.com/apache/drill/blob/4627973bde9847a4eb2672c44941136c167326a1/exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java#L249]
>  # FlinkCalciteSqlValidator
>  [https://github.com/apache/flink/blob/master/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/calcite/FlinkCalciteSqlValidator.scala#L31]
>  # DremioSqlToRelConverter
>  [https://github.com/dremio/dremio-oss/blob/master/sabot/kernel/src/main/java/com/dremio/exec/planner/sql/DremioSqlToRelConverter.java#L40]
>  # (Dremio) SqlValidatorImpl
>  [https://github.com/dremio/dremio-oss/blob/master/sabot/kernel/src/main/java/com/dremio/exec/planner/sql/SqlValidatorImpl.java#L32]
> The class tools/Planner.java[1] is a good customization tool for Calcite user. However currently there are no way to use Frameworks.getPlanner() directly if the two class need to be customized[2][3].
>  
> [1] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/tools/Planner.java
> [2] [https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/prepare/PlannerImpl.java#L232]
> [3] [https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/prepare/PlannerImpl.java#L184]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)