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 2011/02/18 02:31:30 UTC

svn commit: r1071853 - in /pig/trunk: CHANGES.txt src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java test/org/apache/pig/test/TestFilterSimplification.java

Author: daijy
Date: Fri Feb 18 01:31:29 2011
New Revision: 1071853

URL: http://svn.apache.org/viewvc?rev=1071853&view=rev
Log:
PIG-1820: New logical plan: FilterLogicExpressionSimplifier fail to deal with UDF

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java
    pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1071853&r1=1071852&r2=1071853&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Feb 18 01:31:29 2011
@@ -299,6 +299,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
 
 BUG FIXES
 
+PIG-1820: New logical plan: FilterLogicExpressionSimplifier fail to deal with UDF (daijy)
+
 PIG-1854: Pig returns exit code 0 for the failed Pig script (rding)
 
 PIG-1812: Problem with DID_NOT_FIND_LOAD_ONLY_MAP_PLAN (daijy)

Modified: pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java?rev=1071853&r1=1071852&r2=1071853&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java Fri Feb 18 01:31:29 2011
@@ -557,6 +557,8 @@ public class LogicalExpressionSimplifier
                     return Unknown;
             }
 
+            if (!(le1 instanceof BinaryExpression)||!(le2 instanceof BinaryExpression))
+                return Unknown;
             BinaryExpression b1 = !proxy1 ? (BinaryExpression) e1
                             : (BinaryExpression) ((LogicalExpressionProxy) e1).src, b2 = !proxy2 ? (BinaryExpression) e2
                             : (BinaryExpression) ((LogicalExpressionProxy) e2).src;

Modified: pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java?rev=1071853&r1=1071852&r2=1071853&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java Fri Feb 18 01:31:29 2011
@@ -804,6 +804,26 @@ public class TestFilterSimplification ex
         assertTrue(expected.isEqual(newLogicalPlan));
     }
     
+    @Test
+    // PIG-1820
+    public void test8() throws Exception {
+        LogicalPlanTester lpt = new LogicalPlanTester(pc);
+        lpt.buildPlan("b = filter (load 'd.txt' as (a0, a1)) by (a0 is not null or a1 is not null) and IsEmpty(a0);"); 
+
+        org.apache.pig.impl.logicalLayer.LogicalPlan plan = lpt.buildPlan("store b into 'empty';");
+        LogicalPlan newLogicalPlan = migratePlan(plan);
+
+        PlanOptimizer optimizer = new MyPlanOptimizer(newLogicalPlan, 10);
+        optimizer.optimize();
+
+        lpt = new LogicalPlanTester(pc);
+        lpt.buildPlan("b = filter (load 'd.txt' as (a0, a1)) by (a0 is not null or a1 is not null) and IsEmpty(a0);"); 
+        plan = lpt.buildPlan("store b into 'empty';");
+        LogicalPlan expected = migratePlan(plan);
+
+        assertTrue(expected.isEqual(newLogicalPlan));
+    }
+    
     public class MyPlanOptimizer extends LogicalPlanOptimizer {
 
         protected MyPlanOptimizer(OperatorPlan p, int iterations) {