You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by at...@apache.org on 2009/02/04 02:35:39 UTC
svn commit: r740572 - in /hadoop/hive/branches/branch-0.2: ./
ql/src/java/org/apache/hadoop/hive/ql/exec/
ql/src/java/org/apache/hadoop/hive/ql/parse/
ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/
ql/src/test/results/compiler/...
Author: athusoo
Date: Wed Feb 4 01:35:38 2009
New Revision: 740572
URL: http://svn.apache.org/viewvc?rev=740572&view=rev
Log:
HIVE-262. Fix for joins wherein a merged join having and outer or
right outer join gave spurious rows in join. (Namit Jain via athusoo)
Added:
hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join20.q
hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join21.q
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join20.q.out
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join21.q.out
Modified:
hadoop/hive/branches/branch-0.2/CHANGES.txt
hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join12.q.out
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join19.q.out
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join3.q.out
hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join7.q.out
hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join3.q.xml
hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join7.q.xml
Modified: hadoop/hive/branches/branch-0.2/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/CHANGES.txt?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/CHANGES.txt (original)
+++ hadoop/hive/branches/branch-0.2/CHANGES.txt Wed Feb 4 01:35:38 2009
@@ -1,17 +1,5 @@
Hive Change Log
-Trunk (unreleased changes)
-
- INCOMPATIBLE CHANGES
-
- NEW FEATURES
-
- IMPROVEMENTS
-
- OPTIMIZATIONS
-
- BUG FIXES
-
Release 0.2.0 - Unreleased
INCOMPATIBLE CHANGES
@@ -278,3 +266,6 @@
private members of the records in calculating the avg size of the
rows and we were also not estimating variable length columns
properly. (Namit Jain via athusoo)
+
+ HIVE-262. Fix for joins wherein a merged join having and outer or
+ right outer join gave spurious rows in join. (Namit Jain via athusoo)
Modified: hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java Wed Feb 4 01:35:38 2009
@@ -305,10 +305,20 @@
private Vector<boolean[]> joinObjectsRightOuterJoin(
Vector<boolean[]> resNulls, Vector<boolean[]> inputNulls,
ArrayList<Object> newObj, IntermediateObject intObj, int left,
- boolean newObjNull) {
+ boolean newObjNull, boolean firstRow) {
if (newObjNull)
return resNulls;
- boolean allOldObjsNull = true;
+
+ if (inputNulls.isEmpty() && firstRow) {
+ boolean[] newNulls = new boolean[intObj.getCurSize()];
+ for (int i = 0; i < intObj.getCurSize() - 1; i++)
+ newNulls[i] = true;
+ newNulls[intObj.getCurSize()-1] = newObjNull;
+ resNulls.add(newNulls);
+ return resNulls;
+ }
+
+ boolean allOldObjsNull = firstRow;
Iterator<boolean[]> nullsIter = inputNulls.iterator();
while (nullsIter.hasNext()) {
@@ -334,6 +344,7 @@
for (int i = 0; i < intObj.getCurSize() - 1; i++)
newNulls[i] = true;
newNulls[oldNulls.length] = newObjNull;
+ resNulls.add(newNulls);
return resNulls;
}
}
@@ -343,7 +354,7 @@
private Vector<boolean[]> joinObjectsFullOuterJoin(
Vector<boolean[]> resNulls, Vector<boolean[]> inputNulls,
ArrayList<Object> newObj, IntermediateObject intObj, int left,
- boolean newObjNull) {
+ boolean newObjNull, boolean firstRow) {
if (newObjNull) {
Iterator<boolean[]> nullsIter = inputNulls.iterator();
while (nullsIter.hasNext()) {
@@ -356,7 +367,16 @@
return resNulls;
}
- boolean allOldObjsNull = true;
+ if (inputNulls.isEmpty() && firstRow) {
+ boolean[] newNulls = new boolean[intObj.getCurSize()];
+ for (int i = 0; i < intObj.getCurSize() - 1; i++)
+ newNulls[i] = true;
+ newNulls[intObj.getCurSize()-1] = newObjNull;
+ resNulls.add(newNulls);
+ return resNulls;
+ }
+
+ boolean allOldObjsNull = firstRow;
Iterator<boolean[]> nullsIter = inputNulls.iterator();
while (nullsIter.hasNext()) {
@@ -405,7 +425,8 @@
* inner join. The outer joins are processed appropriately.
*/
private Vector<boolean[]> joinObjects(Vector<boolean[]> inputNulls,
- ArrayList<Object> newObj, IntermediateObject intObj, int joinPos) {
+ ArrayList<Object> newObj, IntermediateObject intObj,
+ int joinPos, boolean firstRow) {
Vector<boolean[]> resNulls = new Vector<boolean[]>();
boolean newObjNull = newObj == dummyObj[joinPos] ? true : false;
if (joinPos == 0) {
@@ -422,7 +443,7 @@
// process all nulls for RIGHT and FULL OUTER JOINS
if (((type == joinDesc.RIGHT_OUTER_JOIN) || (type == joinDesc.FULL_OUTER_JOIN))
- && !newObjNull && (inputNulls == null)) {
+ && !newObjNull && (inputNulls == null) && firstRow) {
boolean[] newNulls = new boolean[intObj.getCurSize()];
for (int i = 0; i < newNulls.length - 1; i++)
newNulls[i] = true;
@@ -442,10 +463,10 @@
left, newObjNull);
else if (type == joinDesc.RIGHT_OUTER_JOIN)
return joinObjectsRightOuterJoin(resNulls, inputNulls, newObj, intObj,
- left, newObjNull);
+ left, newObjNull, firstRow);
assert (type == joinDesc.FULL_OUTER_JOIN);
return joinObjectsFullOuterJoin(resNulls, inputNulls, newObj, intObj, left,
- newObjNull);
+ newObjNull, firstRow);
}
/*
@@ -456,7 +477,8 @@
* are accounted for, the output is forwared appropriately.
*/
private void genObject(Vector<boolean[]> inputNulls, int aliasNum,
- IntermediateObject intObj) throws HiveException {
+ IntermediateObject intObj, boolean firstRow) throws HiveException {
+ boolean childFirstRow = firstRow;
if (aliasNum < numValues) {
Iterator<ArrayList<Object>> aliasRes = storage.get(order[aliasNum])
.iterator();
@@ -465,9 +487,10 @@
ArrayList<Object> newObj = aliasRes.next();
intObj.pushObj(newObj);
Vector<boolean[]> newNulls = joinObjects(inputNulls, newObj, intObj,
- aliasNum);
- genObject(newNulls, aliasNum + 1, intObj);
+ aliasNum, childFirstRow);
+ genObject(newNulls, aliasNum + 1, intObj, firstRow);
intObj.popObj();
+ firstRow = false;
}
iterators.pop();
} else {
@@ -506,7 +529,7 @@
}
LOG.trace("calling genObject");
- genObject(null, 0, new IntermediateObject(new ArrayList[numValues], 0));
+ genObject(null, 0, new IntermediateObject(new ArrayList[numValues], 0), true);
LOG.trace("called genObject");
}
Modified: hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Wed Feb 4 01:35:38 2009
@@ -2618,8 +2618,8 @@
if (nodeCondn.getLeft() == 0)
nodeCondn.setLeft(pos);
else
- nodeCondn.setLeft(nodeCondn.getLeft() + targetCondnsSize - 1);
- nodeCondn.setRight(nodeCondn.getRight() + targetCondnsSize - 1);
+ nodeCondn.setLeft(nodeCondn.getLeft() + targetCondnsSize);
+ nodeCondn.setRight(nodeCondn.getRight() + targetCondnsSize);
newCondns[targetCondnsSize + i] = nodeCondn;
}
Added: hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join20.q
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join20.q?rev=740572&view=auto
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join20.q (added)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join20.q Wed Feb 4 01:35:38 2009
@@ -0,0 +1,10 @@
+EXPLAIN
+SELECT * FROM src src1 JOIN src src2 ON (src1.key = src2.key AND src1.key < 10) RIGHT OUTER JOIN src src3 ON (src1.key = src3.key AND src3.key < 20);
+
+SELECT * FROM src src1 JOIN src src2 ON (src1.key = src2.key AND src1.key < 10) RIGHT OUTER JOIN src src3 ON (src1.key = src3.key AND src3.key < 20);
+
+
+EXPLAIN
+SELECT * FROM src src1 JOIN src src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key < 15) RIGHT OUTER JOIN src src3 ON (src1.key = src3.key AND src3.key < 20);
+
+SELECT * FROM src src1 JOIN src src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key < 15) RIGHT OUTER JOIN src src3 ON (src1.key = src3.key AND src3.key < 20);
Added: hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join21.q
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join21.q?rev=740572&view=auto
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join21.q (added)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/queries/clientpositive/join21.q Wed Feb 4 01:35:38 2009
@@ -0,0 +1,4 @@
+EXPLAIN
+SELECT * FROM src src1 LEFT OUTER JOIN src src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10) RIGHT OUTER JOIN src src3 ON (src2.key = src3.key AND src3.key < 10);
+
+SELECT * FROM src src1 LEFT OUTER JOIN src src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10) RIGHT OUTER JOIN src src3 ON (src2.key = src3.key AND src3.key < 10);
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join12.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join12.q.out?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join12.q.out (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join12.q.out Wed Feb 4 01:35:38 2009
@@ -84,7 +84,7 @@
Join Operator
condition map:
Inner Join 0 to 1
- Inner Join 0 to 1
+ Inner Join 0 to 2
condition expressions:
0 {VALUE.0} {VALUE.1}
1 {VALUE.0} {VALUE.1}
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join19.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join19.q.out?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join19.q.out (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join19.q.out Wed Feb 4 01:35:38 2009
@@ -110,7 +110,7 @@
Join Operator
condition map:
Inner Join 0 to 1
- Inner Join 0 to 1
+ Inner Join 0 to 2
condition expressions:
0 {VALUE.0}
1 {VALUE.0} {VALUE.1}
@@ -212,7 +212,7 @@
Join Operator
condition map:
Inner Join 0 to 1
- Inner Join 1 to 1
+ Inner Join 1 to 2
condition expressions:
0 {VALUE.0} {VALUE.1} {VALUE.2} {VALUE.3} {VALUE.4}
1 {VALUE.0}
Added: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join20.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join20.q.out?rev=740572&view=auto
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join20.q.out (added)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join20.q.out Wed Feb 4 01:35:38 2009
@@ -0,0 +1,336 @@
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_RIGHTOUTERJOIN (TOK_JOIN (TOK_TABREF src src1) (TOK_TABREF src src2) (AND (= (TOK_COLREF src1 key) (TOK_COLREF src2 key)) (< (TOK_COLREF src1 key) 10))) (TOK_TABREF src src3) (AND (= (TOK_COLREF src1 key) (TOK_COLREF src3 key)) (< (TOK_COLREF src3 key) 20)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Alias -> Map Operator Tree:
+ src2
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src3
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(20))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 2
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src1
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(10))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 0
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ Right Outer Join0 to 2
+ condition expressions:
+ 0 {VALUE.0} {VALUE.1}
+ 1 {VALUE.0} {VALUE.1}
+ 2 {VALUE.0} {VALUE.1}
+ Select Operator
+ expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ expr: 2
+ type: string
+ expr: 3
+ type: string
+ expr: 4
+ type: string
+ expr: 5
+ type: string
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+NULL NULL NULL NULL 10 val_10
+NULL NULL NULL NULL 11 val_11
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 17 val_17
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 19 val_19
+2 val_2 2 val_2 2 val_2
+4 val_4 4 val_4 4 val_4
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+8 val_8 8 val_8 8 val_8
+9 val_9 9 val_9 9 val_9
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_RIGHTOUTERJOIN (TOK_JOIN (TOK_TABREF src src1) (TOK_TABREF src src2) (AND (AND (= (TOK_COLREF src1 key) (TOK_COLREF src2 key)) (< (TOK_COLREF src1 key) 10)) (< (TOK_COLREF src2 key) 15))) (TOK_TABREF src src3) (AND (= (TOK_COLREF src1 key) (TOK_COLREF src3 key)) (< (TOK_COLREF src3 key) 20)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Alias -> Map Operator Tree:
+ src2
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(15))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src3
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(20))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 2
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src1
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(10))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 0
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ Right Outer Join0 to 2
+ condition expressions:
+ 0 {VALUE.0} {VALUE.1}
+ 1 {VALUE.0} {VALUE.1}
+ 2 {VALUE.0} {VALUE.1}
+ Select Operator
+ expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ expr: 2
+ type: string
+ expr: 3
+ type: string
+ expr: 4
+ type: string
+ expr: 5
+ type: string
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+0 val_0 0 val_0 0 val_0
+NULL NULL NULL NULL 10 val_10
+NULL NULL NULL NULL 11 val_11
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 12 val_12
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 15 val_15
+NULL NULL NULL NULL 17 val_17
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 18 val_18
+NULL NULL NULL NULL 19 val_19
+2 val_2 2 val_2 2 val_2
+4 val_4 4 val_4 4 val_4
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+5 val_5 5 val_5 5 val_5
+8 val_8 8 val_8 8 val_8
+9 val_9 9 val_9 9 val_9
Added: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join21.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join21.q.out?rev=740572&view=auto
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join21.q.out (added)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join21.q.out Wed Feb 4 01:35:38 2009
@@ -0,0 +1,112 @@
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_RIGHTOUTERJOIN (TOK_LEFTOUTERJOIN (TOK_TABREF src src1) (TOK_TABREF src src2) (AND (AND (= (TOK_COLREF src1 key) (TOK_COLREF src2 key)) (< (TOK_COLREF src1 key) 10)) (> (TOK_COLREF src2 key) 10))) (TOK_TABREF src src3) (AND (= (TOK_COLREF src2 key) (TOK_COLREF src3 key)) (< (TOK_COLREF src3 key) 10)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))
+
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Alias -> Map Operator Tree:
+ src2
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) > UDFToDouble(10))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 1
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src3
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(10))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 2
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ src1
+ Filter Operator
+ predicate:
+ expr: (UDFToDouble(key) < UDFToDouble(10))
+ type: boolean
+ Reduce Output Operator
+ key expressions:
+ expr: key
+ type: string
+ sort order: +
+ Map-reduce partition columns:
+ expr: key
+ type: string
+ tag: 0
+ value expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ Right Outer Join1 to 2
+ condition expressions:
+ 0 {VALUE.0} {VALUE.1}
+ 1 {VALUE.0} {VALUE.1}
+ 2 {VALUE.0} {VALUE.1}
+ Select Operator
+ expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ expr: 2
+ type: string
+ expr: 3
+ type: string
+ expr: 4
+ type: string
+ expr: 5
+ type: string
+ File Output Operator
+ compressed: false
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+NULL NULL NULL NULL 0 val_0
+NULL NULL NULL NULL 0 val_0
+NULL NULL NULL NULL 0 val_0
+NULL NULL NULL NULL 2 val_2
+NULL NULL NULL NULL 4 val_4
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 5 val_5
+NULL NULL NULL NULL 8 val_8
+NULL NULL NULL NULL 9 val_9
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join3.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join3.q.out?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join3.q.out (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join3.q.out Wed Feb 4 01:35:38 2009
@@ -62,7 +62,7 @@
Join Operator
condition map:
Inner Join 0 to 1
- Inner Join 0 to 1
+ Inner Join 0 to 2
condition expressions:
0 {VALUE.0}
1 {VALUE.0}
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join7.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join7.q.out?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join7.q.out (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/clientpositive/join7.q.out Wed Feb 4 01:35:38 2009
@@ -88,7 +88,7 @@
Join Operator
condition map:
Outer Join 0 to 1
- Left Outer Join0 to 1
+ Left Outer Join0 to 2
condition expressions:
0 {VALUE.0} {VALUE.1}
1 {VALUE.0} {VALUE.1}
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join3.q.xml
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join3.q.xml?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join3.q.xml (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join3.q.xml Wed Feb 4 01:35:38 2009
@@ -31,7 +31,7 @@
<boolean>true</boolean>
</void>
<void property="sourceDir">
- <string>/data/users/zshao/sync/apache-trunk-HIVE-105/ql/../build/ql/tmp/474048901.10000.insclause-0</string>
+ <string>/data/users/njain/hive1/hive/ql/../build/ql/tmp/101117165.10000.insclause-0</string>
</void>
<void property="table">
<object id="tableDesc0" class="org.apache.hadoop.hive.ql.plan.tableDesc">
@@ -80,7 +80,7 @@
</void>
<void method="put">
<string>location</string>
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/dest1</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/dest1</string>
</void>
</object>
</void>
@@ -750,7 +750,7 @@
<void property="pathToAliases">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
<object class="java.util.ArrayList">
<void method="add">
<string>src2</string>
@@ -768,7 +768,7 @@
<void property="pathToPartitionInfo">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
<object class="org.apache.hadoop.hive.ql.plan.partitionDesc">
<void property="partSpec">
<object class="java.util.LinkedHashMap"/>
@@ -820,7 +820,7 @@
</void>
<void method="put">
<string>location</string>
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
</void>
</object>
</void>
@@ -846,7 +846,7 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.fileSinkDesc">
<void property="dirName">
- <string>/data/users/zshao/sync/apache-trunk-HIVE-105/ql/../build/ql/tmp/474048901.10000.insclause-0</string>
+ <string>/data/users/njain/hive1/hive/ql/../build/ql/tmp/101117165.10000.insclause-0</string>
</void>
<void property="tableInfo">
<object idref="tableDesc0"/>
@@ -952,7 +952,7 @@
<void index="1">
<object class="org.apache.hadoop.hive.ql.plan.joinCond">
<void property="right">
- <int>1</int>
+ <int>2</int>
</void>
</object>
</void>
Modified: hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join7.q.xml
URL: http://svn.apache.org/viewvc/hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join7.q.xml?rev=740572&r1=740571&r2=740572&view=diff
==============================================================================
--- hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join7.q.xml (original)
+++ hadoop/hive/branches/branch-0.2/ql/src/test/results/compiler/plan/join7.q.xml Wed Feb 4 01:35:38 2009
@@ -1544,7 +1544,7 @@
<void property="pathToAliases">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
<object class="java.util.ArrayList">
<void method="add">
<string>c:a:src1</string>
@@ -1562,7 +1562,7 @@
<void property="pathToPartitionInfo">
<object class="java.util.LinkedHashMap">
<void method="put">
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
<object class="org.apache.hadoop.hive.ql.plan.partitionDesc">
<void property="partSpec">
<object class="java.util.LinkedHashMap"/>
@@ -1614,7 +1614,7 @@
</void>
<void method="put">
<string>location</string>
- <string>file:/data/users/zshao/sync/apache-trunk-HIVE-105/build/ql/test/data/warehouse/src</string>
+ <string>file:/data/users/njain/hive1/hive/build/ql/test/data/warehouse/src</string>
</void>
</object>
</void>
@@ -1644,7 +1644,7 @@
<void property="conf">
<object class="org.apache.hadoop.hive.ql.plan.fileSinkDesc">
<void property="dirName">
- <string>/data/users/zshao/sync/apache-trunk-HIVE-105/ql/../build/ql/tmp/87762372/259536474.10001.insclause-0</string>
+ <string>/data/users/njain/hive1/hive/ql/../build/ql/tmp/984290950/203044114.10001.insclause-0</string>
</void>
<void property="tableInfo">
<object class="org.apache.hadoop.hive.ql.plan.tableDesc">
@@ -2002,7 +2002,7 @@
<void index="1">
<object class="org.apache.hadoop.hive.ql.plan.joinCond">
<void property="right">
- <int>1</int>
+ <int>2</int>
</void>
<void property="type">
<int>1</int>