LimitOptimizer fails with dynamic LIMIT argument
------------------------------------------------
Key: PIG-2570
URL: https://issues.apache.org/jira/browse/PIG-2570
Project: Pig
Issue Type: Bug
Reporter: Bill Graham
Assignee: Bill Graham
The following script fails with the exception shown below. Passing {{-t
LimitOptimizer}} makes it work, as does adding an {{ORDER}} clause before the
limit.
{noformat}
A = LOAD 'data1.txt' AS (owner:chararray,pet:chararray,age:int,phone:chararray);
B = group A all;
C = foreach B generate SUM(A.age) as total;
D = foreach A generate owner, age/(double)C.total AS percentAge;
F = LIMIT D C.total/8;
DUMP F;
{noformat}
{noformat}
Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 2000:
Error processing rule LimitOptimizer. Try -t LimitOptimizer
at
org.apache.pig.newplan.optimizer.PlanOptimizer.optimize(PlanOptimizer.java:122)
at
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.compile(HExecutionEngine.java:287)
at org.apache.pig.PigServer.compilePp(PigServer.java:1317)
at
org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1254)
at org.apache.pig.PigServer.storeEx(PigServer.java:953)
... 14 more
Caused by: org.apache.pig.impl.logicalLayer.FrontendException: ERROR 2243:
Attempt to remove operator LOLimit that is still softly connected in the plan
at
org.apache.pig.newplan.BaseOperatorPlan.remove(BaseOperatorPlan.java:174)
at
org.apache.pig.newplan.BaseOperatorPlan.removeAndReconnect(BaseOperatorPlan.java:449)
at
org.apache.pig.newplan.logical.rules.LimitOptimizer$OptimizeLimitTransformer.transform(LimitOptimizer.java:124)
at
org.apache.pig.newplan.optimizer.PlanOptimizer.optimize(PlanOptimizer.java:110)
{noformat}
--
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