[
https://issues.apache.org/jira/browse/PARQUET-334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14628059#comment-14628059
]
li xiang commented on PARQUET-334:
----------------------------------
In Pig code, src/org/apache/pig/EvalFunc.java. A private number
"inputSchemaInternal" represent the schema. Setter and Getter are also provided
{code}
316 private Schema inputSchemaInternal=null;
328 /**
329 * This method is for internal use. It is called by Pig core in both
front-end
330 * and back-end to setup the right input schema for EvalFunc
331 */
332 public void setInputSchema(Schema input){
333 this.inputSchemaInternal=input;
334 }
335
336 /**
337 * This method is intended to be called by the user in {@link EvalFunc}
to get the input
338 * schema of the EvalFunc
339 */
340 public Schema getInputSchema(){
341 return this.inputSchemaInternal;
342 }
{code}
But actually, they are overrided. In
parquet-mr/parquet-pig/src/main/java/parquet/pig/summary/Summary.java, It uses
a new number called inputSchema(vs. inputSchemaInternal) to represent schema
and override setInputSchema(), but not override getInputSchema()
{code}
51 public class Summary extends EvalFunc<String> implements Algebraic {
54 private Schema inputSchema;
257 @Override
258 public void setInputSchema(Schema input) {
259 try {
260 // relation.bag.tuple
261 this.inputSchema=input.getField(0).schema.getField(0).schema;
262 saveSchemaToUDFContext();
263 } catch (FrontendException e) {
264 throw new RuntimeException("Usage: B = FOREACH (GROUP A ALL) GENERATE
Summary(A); Can not get schema from " + input, e);
265 } catch (RuntimeException e) {
266 throw new RuntimeException("Usage: B = FOREACH (GROUP A ALL) GENERATE
Summary(A); Can not get schema from "+input, e);
267 }
268 }
{code}
> UT TestSummary failed with java.lang.RuntimeException: Usage: B = FOREACH
> (GROUP A ALL) GENERATE Summary(A); Can not get schema from null when Pig is
> 0.15+
> -----------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: PARQUET-334
> URL: https://issues.apache.org/jira/browse/PARQUET-334
> Project: Parquet
> Issue Type: Bug
> Components: parquet-mr
> Affects Versions: 1.6.0
> Reporter: li xiang
> Priority: Critical
>
> org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1002: Unable to
> store alias B
> at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1694)
> at org.apache.pig.PigServer.registerQuery(PigServer.java:623)
> at org.apache.pig.PigServer.registerQuery(PigServer.java:636)
> at parquet.pig.summary.TestSummary.testMaxIsZero(TestSummary.java:154)
> ...
> Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 0:
> java.lang.RuntimeException: Usage: B = FOREACH (GROUP A ALL) GENERATE
> Summary(A); Can not get schema from null
> at
> org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:307)
> at org.apache.pig.PigServer.launchPlan(PigServer.java:1390)
> at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1375)
> at org.apache.pig.PigServer.execute(PigServer.java:1364)
> at org.apache.pig.PigServer.access$500(PigServer.java:113)
> at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1689)
> ... 32 more
> Caused by: java.lang.RuntimeException: Usage: B = FOREACH (GROUP A ALL)
> GENERATE Summary(A); Can not get schema from null
> at parquet.pig.summary.Summary.setInputSchema(Summary.java:266)
> at
> org.apache.pig.newplan.logical.expression.ExpToPhyTranslationVisitor.visit(ExpToPhyTranslationVisitor.java:530)
> at
> org.apache.pig.newplan.logical.expression.UserFuncExpression.accept(UserFuncExpression.java:132)
> at
> org.apache.pig.newplan.ReverseDependencyOrderWalkerWOSeenChk.walk(ReverseDependencyOrderWalkerWOSeenChk.java:69)
> at
> org.apache.pig.newplan.logical.relational.LogToPhyTranslationVisitor.visit(LogToPhyTranslationVisitor.java:808)
> at
> org.apache.pig.newplan.logical.relational.LOForEach.accept(LOForEach.java:87)
> at
> org.apache.pig.newplan.DependencyOrderWalker.walk(DependencyOrderWalker.java:75)
> at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:52)
> at
> org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:258)
> at
> org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:293)
> ... 37 more
> Caused by: java.lang.NullPointerException
> at parquet.pig.summary.Summary.setInputSchema(Summary.java:261)
> ... 46 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)