You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "sunjincheng (JIRA)" <ji...@apache.org> on 2019/01/30 15:41:00 UTC

[jira] [Commented] (FLINK-11449) Uncouple the Expression class from RexNodes

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

sunjincheng commented on FLINK-11449:
-------------------------------------

Hi [~twalthr] as you mentioned in [FLIP-32|https://cwiki.apache.org/confluence/display/FLINK/FLIP-32%3A+Restructure+flink-table+for+future+contributions].,  we have two approach to uncouple the `Expression` class from `RexNode`s as follows:
 #  Big visitor pattern ([prototype|https://github.com/sunjincheng121/flink/pull/77])
 Create visitor for `toRexNode`, `toAggCall` and `getSqlAggFunction`.
 # Introduce a new Expression in `flink-table-api-base`, i.e.: "Create Call(..) " ([prototype|https://github.com/sunjincheng121/flink/pull/81])

        Create an APIExpression (May also named Expression) that is not dependent on Calcite in flink-table-api-base, and the current Expression will move to `flink-table-planner`.(Not sure, may be named `PlannerExpression`)

I am not sure if I understand [FLIP-32|https://cwiki.apache.org/confluence/display/FLINK/FLIP-32%3A+Restructure+flink-table+for+future+contributions]‘s design correctly, so I provided the prototype code.

Hope the feedback! :)

Best, Jincheng

> Uncouple the Expression class from RexNodes
> -------------------------------------------
>
>                 Key: FLINK-11449
>                 URL: https://issues.apache.org/jira/browse/FLINK-11449
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table API &amp; SQL
>            Reporter: Timo Walther
>            Assignee: sunjincheng
>            Priority: Major
>
> A more detailed description can be found in [FLIP-32|https://cwiki.apache.org/confluence/display/FLINK/FLIP-32%3A+Restructure+flink-table+for+future+contributions].
> Calcite will not be part of any API module anymore. Therefore, RexNode translation must happen in a different layer. This issue will require a new design document.



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