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

Stamatis Zampetakis commented on CALCITE-3629:
----------------------------------------------

I see no reason to make changes and in particular introduce new interfaces if 
it is just for future changes that we are not even sure that they are going to 
be useful. Can you clarify if there is a particular need to do it now? 

> Table-valued function implementor interface
> -------------------------------------------
>
>                 Key: CALCITE-3629
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3629
>             Project: Calcite
>          Issue Type: Sub-task
>            Reporter: Rui Wang
>            Assignee: Rui Wang
>            Priority: Major
>
> The current implementation of TUMBLE is the following: 
> {code:java}
> if (isTumble()) {
>    // create expressions and blockstatement
> } else {
>  // other table function scan enumerable implementation.
> }
> {code}
> This style is less extensible. We will add more builtin table-valued function 
> implementation and we shouldn't  add more if-else with complicated 
> implementation.
> A better practice is in RexImpTable, each operator register its implementor, 
> and then the code will be becomes:
> {code:java}
> if (implementor defined) {
>    return implementor.implement(...)
> }  else {
>  // default table function scan enumerable implementation for those that does 
> not have implementor.
> } 
> {code}
> The current implementor[1] or [2] is not enough for table-valued function as 
> table-valued function need both inputPhysType and outPhysType, and potential 
> other params to implement itself.
> Another condition is we might need more table-valued function implementations 
> to abstract a common interface. 
> [1]: 
> https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/adapter/enumerable/CallImplementor.java#L38
> [2]: 
> https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/adapter/enumerable/NotNullImplementor.java



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to