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/11/20 02:07:06 UTC
svn commit: r1037100 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/newplan/logical/relational/LOGenerate.java
src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
test/org/apache/pig/test/TestEvalPipeline2.java
Author: daijy
Date: Sat Nov 20 01:07:05 2010
New Revision: 1037100
URL: http://svn.apache.org/viewvc?rev=1037100&view=rev
Log:
PIG-1725: New logical plan: uidOnlySchema bug in LOGenerate
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/relational/LOGenerate.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1037100&r1=1037099&r2=1037100&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Sat Nov 20 01:07:05 2010
@@ -220,6 +220,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
BUG FIXES
+PIG-1725: New logical plan: uidOnlySchema bug in LOGenerate (daijy)
+
PIG-1729: New logical plan: Dereference does not add into plan after deepCopy (daijy)
PIG-1721: New logical plan: script fail when reuse foreach inner alias (daijy)
Modified: pig/trunk/src/org/apache/pig/newplan/logical/relational/LOGenerate.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/relational/LOGenerate.java?rev=1037100&r1=1037099&r2=1037100&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/relational/LOGenerate.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/relational/LOGenerate.java Sat Nov 20 01:07:05 2010
@@ -167,7 +167,7 @@ public class LOGenerate extends LogicalR
// If the schema is generated by user defined schema, keep uid
if (expSchema==null) {
- LogicalSchema uidOnlySchema = schema.mergeUid(uidOnlySchemas.get(i));
+ LogicalSchema uidOnlySchema = planSchema.mergeUid(uidOnlySchemas.get(i));
uidOnlySchemas.set(i, uidOnlySchema);
}
outputPlanSchemas.add(planSchema);
Modified: pig/trunk/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java?rev=1037100&r1=1037099&r2=1037100&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java Sat Nov 20 01:07:05 2010
@@ -344,6 +344,10 @@ public class ColumnPruneVisitor extends
Set<Integer> inputsRemoved = new HashSet<Integer>();
List<LogicalSchema> outputPlanSchemas = new ArrayList<LogicalSchema>();
List<LogicalSchema> uidOnlySchemas = new ArrayList<LogicalSchema>();
+ List<LogicalSchema> userDefinedSchemas = null;
+
+ if (gen.getUserDefinedSchema()!=null)
+ userDefinedSchemas = new ArrayList<LogicalSchema>();
for (int i=0;i<genPlans.size();i++) {
LogicalExpressionPlan genPlan = genPlans.get(i);
@@ -351,6 +355,9 @@ public class ColumnPruneVisitor extends
flattenList.add(gen.getFlattenFlags()[i]);
outputPlanSchemas.add(gen.getOutputPlanSchemas().get(i));
uidOnlySchemas.add(gen.getUidOnlySchemas().get(i));
+ if (gen.getUserDefinedSchema()!=null) {
+ userDefinedSchemas.add(gen.getUserDefinedSchema().get(i));
+ }
List<Operator> sinks = genPlan.getSinks();
for(Operator s: sinks) {
if (s instanceof ProjectExpression) {
@@ -379,6 +386,7 @@ public class ColumnPruneVisitor extends
gen.setFlattenFlags(flatten);
gen.setOutputPlanSchemas(outputPlanSchemas);
gen.setUidOnlySchemas(uidOnlySchemas);
+ gen.setUserDefinedSchema(userDefinedSchemas);
for (LogicalExpressionPlan genPlanToRemove : genPlansToRemove) {
genPlans.remove(genPlanToRemove);
Modified: pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java?rev=1037100&r1=1037099&r2=1037100&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java Sat Nov 20 01:07:05 2010
@@ -870,4 +870,25 @@ public class TestEvalPipeline2 extends T
assertFalse(iter.hasNext());
}
+
+ @Test
+ // See PIG-1725
+ public void testLOGenerateSchema() throws Exception{
+ String[] input1 = {
+ "1\t2\t{(1)}",
+ };
+
+ Util.createInputFile(cluster, "table_testLOGenerateSchema", input1);
+ pigServer.registerQuery("a = load 'table_testLOGenerateSchema' as (a0:int, a1, a2:bag{});");
+ pigServer.registerQuery("b = foreach a generate a0 as b0, a1 as b1, flatten(a2) as b2:int;");
+ pigServer.registerQuery("c = filter b by b0==1;");
+ pigServer.registerQuery("d = foreach c generate b0+1, b2;");
+
+ Iterator<Tuple> iter = pigServer.openIterator("d");
+
+ Tuple t = iter.next();
+ assertTrue(t.toString().equals("(2,1)"));
+
+ assertFalse(iter.hasNext());
+ }
}