[ https://issues.apache.org/jira/browse/PIG-2563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13221474#comment-13221474 ]
Daniel Dai commented on PIG-2563: --------------------------------- Logical plan for the foreach nested plan is wrong. Using Jonathan's first test case as example: |---C: (Name: LOForEach Schema: A#21:bag{#22:tuple(a#18:bytearray,b#19:bytearray,c#20:chararray)},tmp#21:bag{#22:tuple(a#18:bytearray)}) | | | (Name: LOGenerate[false,false] Schema: A#21:bag{#22:tuple(a#18:bytearray,b#19:bytearray,c#20:chararray)},tmp#21:bag{#22:tuple(a#18:bytearray)}) | | | | | A:(Name: Project Type: bag Uid: 21 Input: 0 Column: (*)) | | | | | tmp:(Name: Project Type: bag Uid: 21 Input: 1 Column: (*)) | | | |---A: (Name: LOInnerLoad[1] Schema: a#18:bytearray,b#19:bytearray,c#20:chararray) Here we only generate one LOInnerLoad. We should generate two LOInnerLoad instead. > IndexOutOfBoundsException: while projecting fields from a bag > ------------------------------------------------------------- > > Key: PIG-2563 > URL: https://issues.apache.org/jira/browse/PIG-2563 > Project: Pig > Issue Type: Bug > Affects Versions: 0.9.1, 0.10 > Reporter: Vivek Padmanabhan > > The below script fails with Pig 0.9 / Pig 0.10 but works fine for Pig 0.8. > {code} > A = load 'i1' as (a,b,c:chararray); > B = load 'i2' as (d,e,f:chararray); > C = cogroup A by a, B by d; > D = foreach C { > tmp = B.d; > tmp_dis = distinct tmp; > generate A,B,tmp_dis ; } ; > E = foreach D generate B.(d,e) as v; > dump E; > {code} > The script fails with the below exception. Looks like DereferenceExpression > is using wrong schema to build inner schema. > java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 > at java.util.ArrayList.RangeCheck(ArrayList.java:547) > at java.util.ArrayList.get(ArrayList.java:322) > at > org.apache.pig.newplan.logical.relational.LogicalSchema.getField(LogicalSchema.java:653) > at > org.apache.pig.newplan.logical.expression.DereferenceExpression.getFieldSchema(DereferenceExpression.java:167) > at > org.apache.pig.newplan.logical.relational.LOGenerate.getSchema(LOGenerate.java:88) > at > org.apache.pig.newplan.logical.visitor.TypeCheckingRelVisitor.visit(TypeCheckingRelVisitor.java:160) > at > org.apache.pig.newplan.logical.relational.LOGenerate.accept(LOGenerate.java:242) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira