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

Julian Hyde commented on CALCITE-3395:
--------------------------------------

[~yuanyoujun], There are a few cases where we do code generation for functions 
that are overloaded. We don't check that the arguments match the parameter 
types of the method. It's not totally kosher but we get away with it, and I'm 
not too worried. The main goal of BuiltInMethod is impact analysis (finding all 
the places that we generate calls to String.substring) and for that it works.

> add BuiltinMethod for Substring(String, int)
> --------------------------------------------
>
>                 Key: CALCITE-3395
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3395
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Youjun Yuan
>            Priority: Minor
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> substring function has two versoins:
> 1, Substring(String, int, int)
> 2, Substring(String, int)
> currently in BuiltinMethod.java, only the first one is defined. Need to 
> define the second one as well, so that we can use both of them.
> Apache Flink(FunctionGenerator.scala), reference the BuiltinMethod, since 
> Calcite only defines 1, not 2, Flink always resolve SUBSTRING to 
> Substring(String, int, int) even if there is only 2 parameters. This problem 
> happens to be covered by method overloading of java, but it's still a 
> potential problem.



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

Reply via email to