[ https://issues.apache.org/jira/browse/FLINK-11449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16757523#comment-16757523 ]
sunjincheng edited comment on FLINK-11449 at 1/31/19 5:13 PM: -------------------------------------------------------------- Hi, [~twalthr] Thank you for your reply, I feel that the proposal is very meaningful to me。 Here have several places to confirm: 1. Why should FunctionDefinitions be placed in flink-table-api-java, can it be put into flink-table-api-common? 2. All the Expression class should using in java, and expressionDsl also keep using in scala,right? 3. The visitor which in flink-table-planner also defined in scala,right? 4. Why we should defined CAST as a function call? In my opinion, only the funciton defined in the FunctionCatalog is defined as a funcitoncall. And others can be defined as other Expression types? Similar to the following definition in my prototype: {code:java} case class Call(functionName: String, args: Seq[Expression]) extends Expression { override def children: Seq[Expression] = args } case class Cast(child: Expression, resultType: TypeInformation[_]) extends UnaryExpression{code} I suggest that is it possible to divide unified built-in functions and UDFs into multiple commits? In this JIRA we first remove the existing Expresion to eliminate the dependency on RexNodes, is that makes sense to you? was (Author: sunjincheng121): Thank you for your reply, I feel that the proposal is very meaningful to me。 Here have several places to confirm: 1. Why should FunctionDefinitions be placed in flink-table-api-java, can it be put into flink-table-api-common? 2. All the Expression class should using in java, and expressionDsl also keep using in scala,right? 3. The visitor which in flink-table-planner also defined in scala,right? 4. Why we should defined CAST as a function call? In my opinion, only the funciton defined in the FunctionCatalog is defined as a funcitoncall. And others can be defined as other Expression types? Similar to the following definition in my prototype: {code:java} case class Call(functionName: String, args: Seq[Expression]) extends Expression { override def children: Seq[Expression] = args } case class Cast(child: Expression, resultType: TypeInformation[_]) extends UnaryExpression{code} I suggest that is it possible to divide unified built-in functions and UDFs into multiple commits? In this JIRA we first remove the existing Expresion to eliminate the dependency on RexNodes, is that makes sense to you? > 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 & 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)