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/04/04 22:46:15 UTC
svn commit: r1088783 - in /pig/branches/branch-0.8: CHANGES.txt
src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java
Author: daijy
Date: Mon Apr 4 20:46:15 2011
New Revision: 1088783
URL: http://svn.apache.org/viewvc?rev=1088783&view=rev
Log:
PIG-1935: New logical plan: Should not push up filter in front of Bincond
Modified:
pig/branches/branch-0.8/CHANGES.txt
pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
pig/branches/branch-0.8/test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java
Modified: pig/branches/branch-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/CHANGES.txt?rev=1088783&r1=1088782&r2=1088783&view=diff
==============================================================================
--- pig/branches/branch-0.8/CHANGES.txt (original)
+++ pig/branches/branch-0.8/CHANGES.txt Mon Apr 4 20:46:15 2011
@@ -229,6 +229,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
BUG FIXES
+PIG-1935: New logical plan: Should not push up filter in front of Bincond (daijy)
+
PIG-1861: The pig script stored in the Hadoop History logs is stored as a concatenated string without whitespace this causes problems when attempting to extract and execute the script (rding)
PIG-1912: non-deterministic output when a file is loaded multiple times (daijy)
Modified: pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java?rev=1088783&r1=1088782&r2=1088783&view=diff
==============================================================================
--- pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java (original)
+++ pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/BinCondExpression.java Mon Apr 4 20:46:15 2011
@@ -98,6 +98,7 @@ public class BinCondExpression extends L
if (fieldSchema!=null)
return fieldSchema;
fieldSchema = getLhs().getFieldSchema().deepCopy();
+ fieldSchema.uid = -1;
uidOnlyFieldSchema = fieldSchema.mergeUid(uidOnlyFieldSchema);
return fieldSchema;
}
Modified: pig/branches/branch-0.8/test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java?rev=1088783&r1=1088782&r2=1088783&view=diff
==============================================================================
--- pig/branches/branch-0.8/test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java (original)
+++ pig/branches/branch-0.8/test/org/apache/pig/test/TestNewPlanFilterAboveForeach.java Mon Apr 4 20:46:15 2011
@@ -415,6 +415,21 @@ public class TestNewPlanFilterAboveForea
Operator foreach = newLogicalPlan.getPredecessors(store).get(0);
Assert.assertTrue( foreach instanceof LOForEach );
}
+
+ // See PIG-1935
+ @Test
+ public void testPushUpFilterAboveBinCond() throws Exception {
+ planTester.buildPlan("data = LOAD 'data.txt' as (referrer:chararray, canonical_url:chararray, ip:chararray);");
+ planTester.buildPlan("best_url = FOREACH data GENERATE ((canonical_url != '' and canonical_url is not null) ? canonical_url : referrer) AS url, ip;");
+ planTester.buildPlan("filtered = FILTER best_url BY url == 'badsite.com';");
+ org.apache.pig.impl.logicalLayer.LogicalPlan plan = planTester.buildPlan("store filtered into 'empty';");
+
+ LogicalPlan newLogicalPlan = migrateAndOptimizePlan( plan );
+
+ Operator store = newLogicalPlan.getSinks().get( 0 );
+ Operator filter = newLogicalPlan.getPredecessors(store).get(0);
+ Assert.assertTrue( filter instanceof LOFilter );
+ }
private LogicalPlan migrateAndOptimizePlan(org.apache.pig.impl.logicalLayer.LogicalPlan plan) throws FrontendException {
LogicalPlan newLogicalPlan = migratePlan( plan );