[ https://issues.apache.org/jira/browse/PIG-255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alan Gates reassigned PIG-255: ------------------------------ Assignee: Ajay Garg > Calling non default constructor of Final class from Main class in UDF > --------------------------------------------------------------------- > > Key: PIG-255 > URL: https://issues.apache.org/jira/browse/PIG-255 > Project: Pig > Issue Type: Improvement > Reporter: Ajay Garg > Assignee: Ajay Garg > Priority: Minor > Fix For: 0.1.0 > > Attachments: cons.patch, new.patch, test.patch > > > Pig supports the use of define to call a non default constructor. Making it > work across Algebraic functions is not possible with the current code. The > problem is once the func is defined to use a non default constructor which > takes in names of the variables, we have no way of transmitting this > information from the main class to the final class. We tried passing the func > spec through the call to getFinal(). That is, What ever names we get in the > main class we store it and when the getFinal method is called, instead of > just passing the name of the Final class we attach the string args received > by the main class to the name to construct a func spec. For ex. if define COV > = Covariance('Population', 'Height'); Then we would have the "Population' & > 'Height' stored in the main class. A call to getFinal would return > Covariance$Final("Population", "Height") instead of just Covariance$Final. I > guess this is the right way to go. However, pig has a problem with this. The > resolveClassName method doesn't think of its args as specs and assumes them > to be just names. So in createJar, when the func spec, > Covariance$Final("Population", "Height") is being resolved it fails. I think > this is an issue with pig and we need to resolve it by clipping the args > before doing a resolveClassName. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.