You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/11/16 20:22:43 UTC
svn commit: r1542556 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
test/queries/clientpositive/vector_left_outer_join.q
test/results/clientpositive/vector_left_outer_join.q.out
Author: hashutosh
Date: Sat Nov 16 19:22:42 2013
New Revision: 1542556
URL: http://svn.apache.org/r1542556
Log:
HIVE-5813 : Multi-way Left outer join fails in vectorized mode (Ashutosh Chauhan via Thejas Nair, Eric Hanson & Remus Rusanu)
Added:
hive/trunk/ql/src/test/queries/clientpositive/vector_left_outer_join.q
hive/trunk/ql/src/test/results/clientpositive/vector_left_outer_join.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java?rev=1542556&r1=1542555&r2=1542556&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java Sat Nov 16 19:22:42 2013
@@ -434,7 +434,7 @@ public abstract class CommonJoinOperator
}
}
if (forward) {
- internalForward(forwardCache, null);
+ internalForward(forwardCache, outputObjInspector);
countAfterReport = 0;
}
}
Added: hive/trunk/ql/src/test/queries/clientpositive/vector_left_outer_join.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vector_left_outer_join.q?rev=1542556&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vector_left_outer_join.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/vector_left_outer_join.q Sat Nov 16 19:22:42 2013
@@ -0,0 +1,21 @@
+set hive.vectorized.execution.enabled=true;
+set hive.auto.convert.join=true;
+explain
+select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1
+;
+select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1;
+
+set hive.auto.convert.join=false;
+set hive.vectorized.execution.enabled=false;
Added: hive/trunk/ql/src/test/results/clientpositive/vector_left_outer_join.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vector_left_outer_join.q.out?rev=1542556&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vector_left_outer_join.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/vector_left_outer_join.q.out Sat Nov 16 19:22:42 2013
@@ -0,0 +1,156 @@
+PREHOOK: query: explain
+select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1
+POSTHOOK: type: QUERY
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_LEFTOUTERJOIN (TOK_LEFTOUTERJOIN (TOK_TABREF (TOK_TABNAME alltypesorc) c) (TOK_TABREF (TOK_TABNAME alltypesorc) cd) (= (. (TOK_TABLE_OR_COL cd) cint) (. (TOK_TABLE_OR_COL c) cint))) (TOK_TABREF (TOK_TABNAME alltypesorc) hd) (= (. (TOK_TABLE_OR_COL hd) ctinyint) (. (TOK_TABLE_OR_COL c) ctinyint)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL c) ctinyint))))) t1)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTIONSTAR count)))))
+
+STAGE DEPENDENCIES:
+ Stage-7 is a root stage
+ Stage-2 depends on stages: Stage-7
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-7
+ Map Reduce Local Work
+ Alias -> Map Local Tables:
+ t1:cd
+ Fetch Operator
+ limit: -1
+ t1:hd
+ Fetch Operator
+ limit: -1
+ Alias -> Map Local Operator Tree:
+ t1:cd
+ TableScan
+ alias: cd
+ HashTable Sink Operator
+ condition expressions:
+ 0 {ctinyint}
+ 1
+ handleSkewJoin: false
+ keys:
+ 0 [Column[cint]]
+ 1 [Column[cint]]
+ Position of Big Table: 0
+ t1:hd
+ TableScan
+ alias: hd
+ HashTable Sink Operator
+ condition expressions:
+ 0
+ 1
+ handleSkewJoin: false
+ keys:
+ 0 [Column[_col0]]
+ 1 [Column[ctinyint]]
+ Position of Big Table: 0
+
+ Stage: Stage-2
+ Map Reduce
+ Alias -> Map Operator Tree:
+ t1:c
+ TableScan
+ alias: c
+ Map Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ condition expressions:
+ 0 {ctinyint}
+ 1
+ handleSkewJoin: false
+ keys:
+ 0 [Column[cint]]
+ 1 [Column[cint]]
+ outputColumnNames: _col0
+ Position of Big Table: 0
+ Vectorized execution: true
+ Map Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ condition expressions:
+ 0
+ 1
+ handleSkewJoin: false
+ keys:
+ 0 [Column[_col0]]
+ 1 [Column[ctinyint]]
+ Position of Big Table: 0
+ Vectorized execution: true
+ Select Operator
+ Vectorized execution: true
+ Group By Operator
+ aggregations:
+ expr: count()
+ bucketGroup: false
+ mode: hash
+ outputColumnNames: _col0
+ Vectorized execution: true
+ Reduce Output Operator
+ sort order:
+ tag: -1
+ value expressions:
+ expr: _col0
+ type: bigint
+ Local Work:
+ Map Reduce Local Work
+ Reduce Operator Tree:
+ Group By Operator
+ aggregations:
+ expr: count(VALUE._col0)
+ bucketGroup: false
+ mode: mergepartial
+ outputColumnNames: _col0
+ Select Operator
+ expressions:
+ expr: _col0
+ type: bigint
+ outputColumnNames: _col0
+ File Output Operator
+ compressed: false
+ GlobalTableId: 0
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+
+
+PREHOOK: query: select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+POSTHOOK: query: select count(*) from (select c.ctinyint
+from alltypesorc c
+left outer join alltypesorc cd
+ on cd.cint = c.cint
+left outer join alltypesorc hd
+ on hd.ctinyint = c.ctinyint
+) t1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alltypesorc
+#### A masked pattern was here ####
+192735557