[ 
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

Reply via email to