[ https://issues.apache.org/jira/browse/PIG-5335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453484#comment-16453484 ]
Koji Noguchi commented on PIG-5335: ----------------------------------- Looking at why ProjectStarExpander was seeing a completely random schema with redundant a0 {panel} Projected field \[a0] does not exist in schema: {color:red}a0:bytearray,a0:bytearray{color},a2:bytearray,a3:bytearray {panel} It was coming from LogicalPlanBuilder.buildForeachOp --> ProjectExpression.getFieldSchema where ProjectExpression was always picking the first field (column 0) when provided alias was not found. This random behavior worked because later in LogicalPlan.validate()->ColumnAliasConversionVisitor, it did correctly identify the incorrect alias reference ("b1"). However, for this jira, before reaching to LogicalPlan.validate(), it is failing within LogicalPlanBuilder's phase where ProjectStarExpander looked up for range "a0..a2", and LogicalSchema.getField("a0") didn't return due to {code:title=LogicalSchema.java} 610 StringBuilder sb = new StringBuilder("Found more than one match: " + result.alias + ", " + fs.alias); 611 throw new FrontendException(sb.toString(), 1025); {code} and that exception was swallowed and got replaced with the misleading error message shown in the description. > Error message from range projection completely misleading > --------------------------------------------------------- > > Key: PIG-5335 > URL: https://issues.apache.org/jira/browse/PIG-5335 > Project: Pig > Issue Type: Bug > Reporter: Koji Noguchi > Assignee: Koji Noguchi > Priority: Major > > {code} > A = load 'input.txt' as (a0,a1,a2,a3); > B = FOREACH A GENERATE a0, a1, a2, a3; > store B into '/tmp/deleteme'; > C = FOREACH A GENERATE a0, b1, a2, a3; > D = FOREACH C GENERATE a0..a2; > (end of script, no store, nothing) > {code} > Error message > {panel} > 2018-04-10 10:22:33,360 \[main] ERROR org.apache.pig.PigServer - exception > during parsing: Error during parsing. Invalid field projection. Projected > field \[a0] does not exist in schema: > a0:bytearray,a0:bytearray,a2:bytearray,a3:bytearray. > {panel} > At least two issues. > # Error should be about FOREACH for C referencing non-existing field 'b1'. > But the error message is saying something about 'a0'. > # Script itself is not using relation C and D at all. It's confusing to see > errors coming out of unused relations. -- This message was sent by Atlassian JIRA (v7.6.3#76005)