EvalFuncs need redesigned
-------------------------

                 Key: PIG-2421
                 URL: https://issues.apache.org/jira/browse/PIG-2421
             Project: Pig
          Issue Type: New Feature
          Components: impl
    Affects Versions: 0.11
            Reporter: Alan Gates
            Assignee: Alan Gates


The current EvalFunc interface (and associated Algebraic and Accumulator 
interfaces) have grown unwieldy.  In particular, people have noted the 
following issues:

# Writing a UDF requires a lot of boiler plate code.
# Since UDFs always pass a tuple, users are required to manage their own type 
checking for input.
# Declaring schemas for output data is confusing.
# Writing a UDF that accepts multiple different parameters (using 
getArgToFuncMapping) is confusing.
# Using Algebraic and Accumulator interfaces often entails duplicating code 
from the initial implementation.
# UDF implementors are exposed to the internals of Pig since they have to know 
when to return a tuple (Initial, Intermediate) and when not to (exec, Final).
# The separation of Initial, Intermediate, and Final into separate classes 
forces code duplication and makes it hard for UDFs in other languages to use 
those interfaces.
# There is unused code in the current interface that occasionally causes 
confusion (e.g. isAsynchronous)

Any change must be done in a way that allows existing UDFs to continue working 
essentially forever.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to