You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@datafu.apache.org by "Matthew Hayes (JIRA)" <ji...@apache.org> on 2014/05/26 05:01:05 UTC

[jira] [Reopened] (DATAFU-50) SimpleEvalFunc should extend ContextualEvalFunc, have good lifecycle hooks

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

Matthew Hayes reopened DATAFU-50:
---------------------------------


Reverted with commit:  faab884c278a3ab5197ec3cd8931f84a664f4904

There were test failures with some of the existing UDFs that use these base classes.  BagGroup tests fail for instance.  With these changes the underlying classes don't behave quite the same.  We should make sure the existing classes that derive from ContextualEvalFunc and AliasableEvalFunc don't need to be changed.

At least now I have now committed the upgrade to Pig 0.12.1, for which the tests complete significantly faster, so it will be quicker to verify all the tests still pass.

> SimpleEvalFunc should extend ContextualEvalFunc, have good lifecycle hooks
> --------------------------------------------------------------------------
>
>                 Key: DATAFU-50
>                 URL: https://issues.apache.org/jira/browse/DATAFU-50
>             Project: DataFu
>          Issue Type: Improvement
>            Reporter: Philip (flip) Kromer
>            Assignee: Philip (flip) Kromer
>              Labels: Utils
>             Fix For: 1.3.0
>
>         Attachments: 0001-DATAFU-50-SimpleEvalFunc-should-extend-ContextualEva.patch
>
>
> Being able to squirrel away values frozen at frontend-launch-time is very handy. 
> This does two things:
> * makes SimpleEvalFunc extend ContextualEvalFunc rather than plain-old-EvalFunc. This seems harmless and gains you all that power of Contextualism.
> * Adds a hook method "void schemaReadyHook(inputSchema,outputSchema)" to ContextualEvalFunc, called once the schemata are prepared. This acts as sugar for classes that want to set properties at front-end time to be used at later points but which, like most SimpleEvalFunc's, want nothing to do with schema calculation. In ContextualEvalFunc it does nothing; subclasses may override it and if so must call super. schemaReadyHook().



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