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

Julian Hyde commented on OPTIQ-314:
-----------------------------------

Now if you specify {{methodName}}, Optiq finds all methods with that name in 
the class. (It excludes non-static ones if the class does not have a public 
zero-args constructor.) Overloads are resolved based on runtime arguments.

If you specify {{methodName='*'}} it loads all methods, as above. You don't 
need to specify {{name}}; the name of the function is based on the name of the 
method.

You cannot use {{methodName}} with aggregate functions. (They require several 
implementation methods, with fixed names.)

As part of this change, I also improved how overloaded argument lists are 
resolved. In particular, an Object parameter becomes a SQL ANY type and can 
thus match anything.

I also added {{OptiqAssert.AssertQuery.returnsValue}}, to make it easier to 
test statements that return 1 row with 1 column.

> Allow simple UDFs based on methods
> ----------------------------------
>
>                 Key: OPTIQ-314
>                 URL: https://issues.apache.org/jira/browse/OPTIQ-314
>             Project: Optiq
>          Issue Type: New Feature
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> We already allow UDFs based on classes, provided that that classes have just 
> one method. This change would allow UDFs based on classes with several 
> methods.
> E.g. should be able to use 'String String.replace(String s, String s2)' as a 
> SQL UDF 'REPLACE(String, String, String) RETURNS String'.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to