[
https://issues.apache.org/jira/browse/PIG-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12614769#action_12614769
]
Santhosh Srinivasan commented on PIG-320:
-----------------------------------------
EvalFunc implements the outputSchema method and returns null. UDF writers need
not implement the outputSchema method. In th typechecker code, we verify the
return value of outputSchema method and if it is NULL, then the return type is
set to the type returned by getReturnType().
{code}
//In private void setUdfSchema
if (null != udfSchema) {
...
} else {
func.setType(DataType.findType(ef.getReturnType()));
}
{code}
> The parser/type checker should use the getSchema method of UDFs to deduce
> return type/schema
> --------------------------------------------------------------------------------------------
>
> Key: PIG-320
> URL: https://issues.apache.org/jira/browse/PIG-320
> Project: Pig
> Issue Type: Bug
> Components: impl
> Affects Versions: types_branch
> Reporter: Santhosh Srinivasan
> Assignee: Santhosh Srinivasan
> Fix For: types_branch
>
> Attachments: udf_outputSchema.patch
>
>
> Currently, the parser/type checker uses the getReturnType to deduce the
> return type of the user defined function (UDF). This mechanism is
> satisfactory only for basic types (int, long, ...); for composite types
> (tuple, bag), the schema is also required.The abstract class EvalFunc
> interface exposes the outputSchema to deduce the return type/schema of the
> UDF. The parser/type checker should use this method to figure out the return
> type/schema of the UDF and use it appropriately.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.