You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2010/04/17 02:38:48 UTC

svn commit: r935101 - /hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/optimizer/PushDownForeachFlatten.java

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;
+                        }
                     }
                 }
             }