You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by zs...@apache.org on 2008/12/06 23:51:23 UTC
svn commit: r724047 - in /hadoop/hive/trunk: CHANGES.txt
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
ql/src/test/queries/clientpositive/join0.q
ql/src/test/results/clientpositive/join0.q.out
Author: zshao
Date: Sat Dec 6 14:51:23 2008
New Revision: 724047
URL: http://svn.apache.org/viewvc?rev=724047&view=rev
Log:
HIVE-111. Support join without a ON clause. (Namit through zshao)
Added:
hadoop/hive/trunk/ql/src/test/queries/clientpositive/join0.q
hadoop/hive/trunk/ql/src/test/results/clientpositive/join0.q.out
Modified:
hadoop/hive/trunk/CHANGES.txt
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=724047&r1=724046&r2=724047&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Sat Dec 6 14:51:23 2008
@@ -25,6 +25,8 @@
BUG FIXES
+ HIVE-111. Support join without a ON clause. (Namit through zshao)
+
HIVE-77. Thread safe query execution. (Joydeep through zshao)
HIVE-86. Drop table should not delete data for external tables.
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=724047&r1=724046&r2=724047&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Sat Dec 6 14:51:23 2008
@@ -754,6 +754,8 @@
*/
private void parseJoinCondition(QBJoinTree joinTree, CommonTree joinCond, Vector<String> leftSrc)
throws SemanticException {
+ if (joinCond == null)
+ return;
switch (joinCond.getToken().getType()) {
case HiveParser.KW_OR:
@@ -2415,7 +2417,6 @@
joinTree.setFilters(filters);
CommonTree joinCond = (CommonTree) joinParseTree.getChild(2);
- assert joinCond != null;
Vector<String> leftSrc = new Vector<String>();
parseJoinCondition(joinTree, joinCond, leftSrc);
if (leftSrc.size() == 1)
Added: hadoop/hive/trunk/ql/src/test/queries/clientpositive/join0.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/join0.q?rev=724047&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/join0.q (added)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/join0.q Sat Dec 6 14:51:23 2008
@@ -0,0 +1,11 @@
+EXPLAIN
+SELECT * FROM
+ (SELECT * FROM src WHERE src.key < 10) src1
+ JOIN
+ (SELECT * FROM src WHERE src.key < 10) src2;
+
+SELECT * FROM
+ (SELECT * FROM src WHERE src.key < 10) src1
+ JOIN
+ (SELECT * FROM src WHERE src.key < 10) src2;
+
Added: hadoop/hive/trunk/ql/src/test/results/clientpositive/join0.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/join0.q.out?rev=724047&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/join0.q.out (added)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/join0.q.out Sat Dec 6 14:51:23 2008
@@ -0,0 +1,177 @@
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (< (TOK_COLREF src key) 10)))) src1) (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (< (TOK_COLREF src key) 10)))) src2))) (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:src
+ Filter Operator
+ predicate:
+ expr: (key < 10)
+ type: boolean
+ Select Operator
+ expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Output Operator
+ sort order:
+ tag: 1
+ value expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ src1:src
+ Filter Operator
+ predicate:
+ expr: (key < 10)
+ type: boolean
+ Select Operator
+ expressions:
+ expr: key
+ type: string
+ expr: value
+ type: string
+ Reduce Output Operator
+ sort order:
+ tag: 0
+ value expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Inner Join 0 to 1
+ condition expressions:
+ 0 {VALUE.0} {VALUE.1}
+ 1 {VALUE.0} {VALUE.1}
+ Select Operator
+ expressions:
+ expr: 0
+ type: string
+ expr: 1
+ type: string
+ expr: 2
+ type: string
+ expr: 3
+ 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
+
+
+9 val_9 0 val_0
+9 val_9 4 val_4
+9 val_9 8 val_8
+9 val_9 0 val_0
+9 val_9 0 val_0
+9 val_9 5 val_5
+9 val_9 2 val_2
+9 val_9 5 val_5
+9 val_9 9 val_9
+9 val_9 5 val_5
+5 val_5 0 val_0
+5 val_5 4 val_4
+5 val_5 8 val_8
+5 val_5 0 val_0
+5 val_5 0 val_0
+5 val_5 5 val_5
+5 val_5 2 val_2
+5 val_5 5 val_5
+5 val_5 9 val_9
+5 val_5 5 val_5
+8 val_8 0 val_0
+8 val_8 4 val_4
+8 val_8 8 val_8
+8 val_8 0 val_0
+8 val_8 0 val_0
+8 val_8 5 val_5
+8 val_8 2 val_2
+8 val_8 5 val_5
+8 val_8 9 val_9
+8 val_8 5 val_5
+5 val_5 0 val_0
+5 val_5 4 val_4
+5 val_5 8 val_8
+5 val_5 0 val_0
+5 val_5 0 val_0
+5 val_5 5 val_5
+5 val_5 2 val_2
+5 val_5 5 val_5
+5 val_5 9 val_9
+5 val_5 5 val_5
+4 val_4 0 val_0
+4 val_4 4 val_4
+4 val_4 8 val_8
+4 val_4 0 val_0
+4 val_4 0 val_0
+4 val_4 5 val_5
+4 val_4 2 val_2
+4 val_4 5 val_5
+4 val_4 9 val_9
+4 val_4 5 val_5
+2 val_2 0 val_0
+2 val_2 4 val_4
+2 val_2 8 val_8
+2 val_2 0 val_0
+2 val_2 0 val_0
+2 val_2 5 val_5
+2 val_2 2 val_2
+2 val_2 5 val_5
+2 val_2 9 val_9
+2 val_2 5 val_5
+0 val_0 0 val_0
+0 val_0 4 val_4
+0 val_0 8 val_8
+0 val_0 0 val_0
+0 val_0 0 val_0
+0 val_0 5 val_5
+0 val_0 2 val_2
+0 val_0 5 val_5
+0 val_0 9 val_9
+0 val_0 5 val_5
+5 val_5 0 val_0
+5 val_5 4 val_4
+5 val_5 8 val_8
+5 val_5 0 val_0
+5 val_5 0 val_0
+5 val_5 5 val_5
+5 val_5 2 val_2
+5 val_5 5 val_5
+5 val_5 9 val_9
+5 val_5 5 val_5
+0 val_0 0 val_0
+0 val_0 4 val_4
+0 val_0 8 val_8
+0 val_0 0 val_0
+0 val_0 0 val_0
+0 val_0 5 val_5
+0 val_0 2 val_2
+0 val_0 5 val_5
+0 val_0 9 val_9
+0 val_0 5 val_5
+0 val_0 0 val_0
+0 val_0 4 val_4
+0 val_0 8 val_8
+0 val_0 0 val_0
+0 val_0 0 val_0
+0 val_0 5 val_5
+0 val_0 2 val_2
+0 val_0 5 val_5
+0 val_0 9 val_9
+0 val_0 5 val_5