[
https://issues.apache.org/jira/browse/PIG-2968?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Koji Noguchi updated PIG-2968:
------------------------------
Attachment: pig-2968-trunk_v01.txt
ConcurrentModificationException is happening in ColumnPruneVisitor.removeSubTree
{noformat}
List<Operator> ll = p.getPredecessors(op);
if (ll != null) {
for(Operator pred: ll) {
removeSubTree((LogicalRelationalOperator)pred);
}
}
{noformat}
where List ll is updated within (recursive-)removeSubTree
while being traversed.
Attaching a patch that creates a shallow copy of the list.
For the test, attaching one that will fail with Exception. But I couldn't come
up with _expected_ raw query that matches the pruned result.
> ColumnMapKeyPrune fails to prune a subtree inside foreach
> ---------------------------------------------------------
>
> Key: PIG-2968
> URL: https://issues.apache.org/jira/browse/PIG-2968
> Project: Pig
> Issue Type: Bug
> Reporter: Koji Noguchi
> Assignee: Koji Noguchi
> Priority: Minor
> Attachments: pig-2968-trunk_v01.txt
>
>
> Sample code
> {noformat}
> $ cat test/foreach.pig
> daily = load 'nyse' as (exchange, symbol);
> grpd = group daily by exchange;
> uniquecnt = foreach grpd {
> sym = daily.symbol;
> uniq_sym = distinct sym;
> generate group, uniq_sym;
> };
> another = FOREACH uniquecnt GENERATE group;
> explain another;
> {noformat}
> This breaks when it tries to prune uniq_sym->sym->innerload_daily
> bq. 2012-10-12 14:54:11,031 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> ERROR 2000: Error processing rule ColumnMapKeyPrune. Try -t ColumnMapKeyPrune
--
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