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

Eric Lomore commented on PHOENIX-3355:
--------------------------------------

Thanks for the input, [~maryannxue]
1. Still determining why but when "registerBuiltins()" is in the constructor 
this.views gets cleared by the time getFunctions() is called. Obviously I'll 
find a better home for it since it's expensive to do it everytime 
getFunctions() is called.
2. I went ahead with this but now I'm forced to consider the tradeoffs here, so 
wanted to get your input before I proceed. In the case of default values, 
phoenix creates an entry for each possible signature, reducing functions by 
removing default values. func(arg1, arg2=null) gets mapped to func(arg1) and 
func(arg1, arg2). It may be more hassle than its worth to distinguish the 
signature that should be registered as a UDF. In the method I have laid out we 
avoid this since we're going off the original declaration.
3. Will make this adjustment, thanks!

Unfortunately, I still haven't solved the getDataType() issue I noted. I'm 
still looking into how I can get the return type for builtins as it's not 
defined in most cases. We could require a new annotation, but that has some 
severe backwards compatibility considerations.

> Register Phoenix built-in functions as Calcite functions
> --------------------------------------------------------
>
>                 Key: PHOENIX-3355
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3355
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Eric Lomore
>              Labels: calcite
>         Attachments: PHOENIX-3355.wip
>
>
> We should register all Phoenix built-in functions that don't exist in Calcite.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to