[ 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