[
https://issues.apache.org/jira/browse/PIG-3153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13586230#comment-13586230
]
Cheolsoo Park commented on PIG-3153:
------------------------------------
{quote}
Your change of JsFunction "outputSchema.getField(0).type == DataType.TUPLE"
makes it possible to adding "()" to define the return schema as tuple type.
{quote}
No, that's not what I do. The point of that condition is to wrap a JS object
with another object if the outputSchema is a tuple. By wrapping outputSchema
with a tuple, we add an extra layer in Pig. So we should add the same to the
JavaScript object.
> TestScriptUDF.testJavascriptExampleScript fails in trunk
> --------------------------------------------------------
>
> Key: PIG-3153
> URL: https://issues.apache.org/jira/browse/PIG-3153
> Project: Pig
> Issue Type: Bug
> Affects Versions: 0.12
> Reporter: Cheolsoo Park
> Assignee: Johnny Zhang
> Fix For: 0.12
>
> Attachments: PIG-3153-2.patch.txt, PIG-3153.patch.txt,
> PIG-3153.patch.txt
>
>
> To reproduce the failure, do:
> {code}
> ant clean test -Dtestcase=TestScriptUDF
> {code}
> The test fails with the following error:
> {code}
> Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 0: Given
> UDF returns an improper Schema. Schema should only contain one field of a
> Tuple, Bag, or a single type. Returns: {word: chararray,num: long}
> at
> org.apache.pig.newplan.logical.expression.UserFuncExpression.getFieldSchema(UserFuncExpression.java:206)
> at
> org.apache.pig.newplan.logical.optimizer.FieldSchemaResetter.execute(SchemaResetter.java:264)
> at
> org.apache.pig.newplan.logical.expression.AllSameExpressionVisitor.visit(AllSameExpressionVisitor.java:143)
> at
> org.apache.pig.newplan.logical.expression.UserFuncExpression.accept(UserFuncExpression.java:88)
> at
> org.apache.pig.newplan.ReverseDependencyOrderWalker.walk(ReverseDependencyOrderWalker.java:70)
> at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:52)
> at
> org.apache.pig.newplan.logical.optimizer.SchemaResetter.visitAll(SchemaResetter.java:67)
> at
> org.apache.pig.newplan.logical.optimizer.SchemaResetter.visit(SchemaResetter.java:122)
> at
> org.apache.pig.newplan.logical.relational.LOGenerate.accept(LOGenerate.java:240)
> at
> org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
> at
> org.apache.pig.newplan.logical.optimizer.SchemaResetter.visit(SchemaResetter.java:114)
> at
> org.apache.pig.newplan.logical.relational.LOForEach.accept(LOForEach.java:76)
> at
> org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
> at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:52)
> at
> org.apache.pig.parser.LogicalPlanBuilder.expandAndResetVisitor(LogicalPlanBuilder.java:402)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira