[ 
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

Reply via email to