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/15 02:25:00 UTC
svn commit: r1092550 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
test/org/apache/pig/test/TestEvalPipeline2.java
Author: daijy
Date: Fri Apr 15 00:25:00 2011
New Revision: 1092550
URL: http://svn.apache.org/viewvc?rev=1092550&view=rev
Log:
PIG-1979: New logical plan failing with ERROR 2229: Couldn't find matching uid -1
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.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=1092550&r1=1092549&r2=1092550&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Apr 15 00:25:00 2011
@@ -147,6 +147,8 @@ PIG-1696: Performance: Use System.arrayc
BUG FIXES
+PIG-1979: New logical plan failing with ERROR 2229: Couldn't find matching uid -1 (daijy)
+
PIG-1897: multiple star projection in a statement does not produce
the right plan (thejas)
Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java?rev=1092550&r1=1092549&r2=1092550&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java Fri Apr 15 00:25:00 2011
@@ -158,6 +158,7 @@ public class DereferenceExpression exten
bagSchema.addField(new LogicalSchema.LogicalFieldSchema(null, innerSchema, DataType.TUPLE,
LogicalExpression.getNextUid()));
fieldSchema = new LogicalSchema.LogicalFieldSchema(null, bagSchema, DataType.BAG, LogicalExpression.getNextUid());
+ uidOnlyFieldSchema = fieldSchema.mergeUid(uidOnlyFieldSchema);
}
else { // Dereference a field out of a tuple
if (predFS.schema!=null) {
@@ -167,6 +168,7 @@ public class DereferenceExpression exten
fieldSchema = predFS.schema.getField(columns.get(0));
} else{
fieldSchema = new LogicalFieldSchema(null, null, DataType.BYTEARRAY);
+ uidOnlyFieldSchema = fieldSchema.mergeUid(uidOnlyFieldSchema);
}
}
}
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=1092550&r1=1092549&r2=1092550&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java Fri Apr 15 00:25:00 2011
@@ -1459,5 +1459,29 @@ public class TestEvalPipeline2 {
Assert.assertFalse(iter.hasNext());
}
-
+ // See PIG-1979
+ @Test
+ public void testDereferenceUidBug() throws Exception{
+ String[] input1 = {
+ "0\t0\t{(1,2)}\t1",
+ };
+ String[] input2 = {
+ "0\t0",
+ };
+
+ Util.createInputFile(cluster, "table_testDereferenceUidBug1", input1);
+ Util.createInputFile(cluster, "table_testDereferenceUidBug2", input2);
+ pigServer.registerQuery("a = load 'table_testDereferenceUidBug1' as (a0:int, a1:int, a2:{t:(i0:int, i1:int)}, a3:int);");
+ pigServer.registerQuery("b = foreach a generate a0, a1, a0+a1 as sum, a2.i0 as a2, a3;");
+ pigServer.registerQuery("c = filter b by sum==0;");
+ pigServer.registerQuery("d = load 'table_testDereferenceUidBug2' as (d0:int, d1:int);");
+ pigServer.registerQuery("e = join c by a0, d by d0;");
+ pigServer.registerQuery("f = foreach e generate c::a2;");
+
+ Iterator<Tuple> iter = pigServer.openIterator("f");
+
+ Tuple t = iter.next();
+ Assert.assertTrue(t.toString().equals("({(1)})"));
+ Assert.assertFalse(iter.hasNext());
+ }
}