[ 
https://issues.apache.org/jira/browse/PIG-969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan Gates reassigned PIG-969:
------------------------------

    Assignee: Daniel Dai

> Default constructor of UDF gets called for UDF with parameterised constructor 
> , if the udf has a getArgToFuncMapping function defined
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PIG-969
>                 URL: https://issues.apache.org/jira/browse/PIG-969
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>            Reporter: Thejas M Nair
>            Assignee: Daniel Dai
>             Fix For: 0.9.0
>
>
> This issue is discussed in  
> http://www.mail-archive.com/pig-u...@hadoop.apache.org/msg00524.html . I am 
> able to reproduce the issue. While it is easy to fix the udf, it can take a 
> lot of time to figure out the problem (until they find this email 
> conversation!).
> The root cause is that when getArgToFuncMapping is defined in the udf , the 
> FuncSpec returned by the method replaces one set by define statement . The 
> constructor arguments get lost.  We can handle this in following ways -
> 1. Preserve the constructor arguments, and use it with the class name of the 
> matching FuncSpec from getArgToFuncMapping . 
> 2. Give an error if constructor paramerters are given for a udf which has 
> FuncSpecs returned from getArgToFuncMapping .
> The problem with  approach 1 is that we are letting the user define the 
> FuncSpec , so user could have defined a FuncSpec with constructor (though 
> they don't have a valid reason to do so.). It is also possible the the 
> constructor of the different class that matched might not support same 
> constructor parameters. The use of this function outside builtin udfs are 
> also probably not common.
> With option 2, we are telling the user that this is not a supported use case, 
> and user can easily change the udf to fix the issue, or use the udf which 
> would have matched given parameters (which unlikely to have the 
> getArgToFuncMapping method defined).
> I am proposing that we go with option 2 . 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to