Author: daijy
Date: Thu Dec 10 17:49:18 2009
New Revision: 889346
URL: http://svn.apache.org/viewvc?rev=889346&view=rev
Log:
PIG-1142: Got NullPointerException merge join with pruning
Modified:
hadoop/pig/trunk/CHANGES.txt
hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOJoin.java
hadoop/pig/trunk/test/org/apache/pig/test/TestPruneColumn.java
Modified: hadoop/pig/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/pig/trunk/CHANGES.txt?rev=889346&r1=889345&r2=889346&view=diff
==============================================================================
--- hadoop/pig/trunk/CHANGES.txt (original)
+++ hadoop/pig/trunk/CHANGES.txt Thu Dec 10 17:49:18 2009
@@ -269,6 +269,8 @@
PIG-1132: Column Pruner issues in dealing with unprunable loader (daijy)
+PIG-1142: Got NullPointerException merge join with pruning (daijy)
+
Release 0.5.0
INCOMPATIBLE CHANGES
Modified: hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOJoin.java
URL:
http://svn.apache.org/viewvc/hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOJoin.java?rev=889346&r1=889345&r2=889346&view=diff
==============================================================================
--- hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOJoin.java (original)
+++ hadoop/pig/trunk/src/org/apache/pig/impl/logicalLayer/LOJoin.java Thu Dec
10 17:49:18 2009
@@ -617,7 +617,8 @@
errCode, PigException.BUG);
}
- for (Pair<Integer, Integer> column : columns) {
+ for (int i=columns.size()-1;i>=0;i--) {
+ Pair<Integer, Integer> column = columns.get(i);
if (column.first < 0 || column.first > predecessors.size()) {
int errCode = 2191;
throw new FrontendException("No input " + column.first
Modified: hadoop/pig/trunk/test/org/apache/pig/test/TestPruneColumn.java
URL:
http://svn.apache.org/viewvc/hadoop/pig/trunk/test/org/apache/pig/test/TestPruneColumn.java?rev=889346&r1=889345&r2=889346&view=diff
==============================================================================
--- hadoop/pig/trunk/test/org/apache/pig/test/TestPruneColumn.java (original)
+++ hadoop/pig/trunk/test/org/apache/pig/test/TestPruneColumn.java Thu Dec 10
17:49:18 2009
@@ -1539,5 +1539,32 @@
assertTrue(checkLogFileMessage(new String[]{"Columns pruned for A: $0,
$2",
"No map keys pruned for A"}));
- }
+ }
+
+ // See PIG-1142
+ @Test
+ public void testJoin4() throws Exception {
+ pigServer.registerQuery("A = load '"+
Util.generateURI(tmpFile1.toString()) + "' AS (a0, a1, a2);");
+ pigServer.registerQuery("B = load '"+
Util.generateURI(tmpFile1.toString()) + "' AS (b0, b1, b2);");
+ pigServer.registerQuery("C = join A by a2, B by b2;");
+ pigServer.registerQuery("D = foreach C generate $0, $1, $2;");
+
+ Iterator<Tuple> iter = pigServer.openIterator("D");
+ Collection<String> results = new HashSet<String>();
+ results.add("(1,2,3)");
+ results.add("(2,5,2)");
+
+ assertTrue(iter.hasNext());
+ Tuple t = iter.next();
+ assertTrue(results.contains(t.toString()));
+
+ assertTrue(iter.hasNext());
+ t = iter.next();
+ assertTrue(results.contains(t.toString()));
+
+ assertFalse(iter.hasNext());
+
+ assertTrue(checkLogFileMessage(new String[]{"No column pruned for A",
+ "No map keys pruned for A", "Columns pruned for B: $0, $1",
"No map keys pruned for B"}));
+ }
}