Author: daijy Date: Sat Apr 17 00:38:48 2010 New Revision: 935101 URL: http://svn.apache.org/viewvc?rev=935101&view=rev Log: PIG-1374: PushDownForeachFlatten shall not push ForEach below Join if the flattened fields is used in the next statement
Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java?rev=935101&r1=935100&r2=935101&view=diff ============================================================================== --- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java (original) +++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java Sat Apr 17 00:38:48 2010 @@ -191,10 +191,12 @@ public class PushDownForeachFlatten exte if (requiredFields.getFields()!=null) { for (Pair<Integer, Integer> pair : requiredFields.getFields()) { Collection<Column> columns = foreachMappedFields.get(pair.second); - for (Column column : columns) { - Pair<Integer, Integer> foreachInputColumn = column.getInputColumn(); - if (foreach.isInputFlattened(foreachInputColumn.second)) - return false; + if (columns!=null) { + for (Column column : columns) { + Pair<Integer, Integer> foreachInputColumn = column.getInputColumn(); + if (foreach.isInputFlattened(foreachInputColumn.second)) + return false; + } } } }