You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2013/04/24 19:36:39 UTC
svn commit: r1471553 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
test/queries/clientpositive/allcolref_in_udf.q
test/results/clientpositive/allcolref_in_udf.q.out
Author: namit
Date: Wed Apr 24 17:36:39 2013
New Revision: 1471553
URL: http://svn.apache.org/r1471553
Log:
HIVE-4181 Star argument without table alias for UDTF is not working
(Navis via namit)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
hive/trunk/ql/src/test/queries/clientpositive/allcolref_in_udf.q
hive/trunk/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1471553&r1=1471552&r2=1471553&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Wed Apr 24 17:36:39 2013
@@ -2428,6 +2428,7 @@ public class SemanticAnalyzer extends Ba
posn++;
}
+ boolean subQuery = qb.getParseInfo().getIsSubQ();
boolean isInTransform = (selExprList.getChild(posn).getChild(0).getType() ==
HiveParser.TOK_TRANSFORM);
if (isInTransform) {
@@ -2463,6 +2464,10 @@ public class SemanticAnalyzer extends Ba
unparseTranslator.addIdentifierTranslation((ASTNode) udtfExpr
.getChild(0));
}
+ if (isUDTF && (selectStar = udtfExprType == HiveParser.TOK_FUNCTIONSTAR)) {
+ genColListRegex(".*", null, (ASTNode) udtfExpr.getChild(0),
+ col_list, inputRR, pos, out_rwsch, qb.getAliases(), subQuery);
+ }
}
if (isUDTF) {
@@ -2567,7 +2572,6 @@ public class SemanticAnalyzer extends Ba
}
- boolean subQuery = qb.getParseInfo().getIsSubQ();
if (expr.getType() == HiveParser.TOK_ALLCOLREF) {
pos = genColListRegex(".*", expr.getChildCount() == 0 ? null
: getUnescapedName((ASTNode) expr.getChild(0)).toLowerCase(),
Modified: hive/trunk/ql/src/test/queries/clientpositive/allcolref_in_udf.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/allcolref_in_udf.q?rev=1471553&r1=1471552&r2=1471553&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/allcolref_in_udf.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/allcolref_in_udf.q Wed Apr 24 17:36:39 2013
@@ -14,3 +14,8 @@ select stack(2, *) as (e1,e2,e3) from (
select stack(2, *) as (e1,e2,e3) from (
select concat(*), concat(a.*), concat(b.*), concat(a.*, b.key), concat(a.key, b.*)
from src a join src b on a.key+1=b.key where a.key < 100) x limit 10;
+
+-- HIVE-4181 TOK_FUNCTIONSTAR for UDTF
+create table allcolref as select array(key, value) from src;
+explain select explode(*) as x from allcolref limit 10;
+select explode(*) as x from allcolref limit 10;
Modified: hive/trunk/ql/src/test/results/clientpositive/allcolref_in_udf.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/allcolref_in_udf.q.out?rev=1471553&r1=1471552&r2=1471553&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/allcolref_in_udf.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/allcolref_in_udf.q.out Wed Apr 24 17:36:39 2013
@@ -186,3 +186,68 @@ POSTHOOK: Input: default@src
8val_89 NULL 9val_9
9val_910val_10 9val_9 10val_10
9val_910 NULL 10val_10
+PREHOOK: query: -- HIVE-4181 TOK_FUNCTIONSTAR for UDTF
+create table allcolref as select array(key, value) from src
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@src
+POSTHOOK: query: -- HIVE-4181 TOK_FUNCTIONSTAR for UDTF
+create table allcolref as select array(key, value) from src
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@allcolref
+PREHOOK: query: explain select explode(*) as x from allcolref limit 10
+PREHOOK: type: QUERY
+POSTHOOK: query: explain select explode(*) as x from allcolref limit 10
+POSTHOOK: type: QUERY
+ABSTRACT SYNTAX TREE:
+ (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME allcolref))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTIONSTAR explode) x)) (TOK_LIMIT 10)))
+
+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:
+ allcolref
+ TableScan
+ alias: allcolref
+ Select Operator
+ expressions:
+ expr: _c0
+ type: array<string>
+ outputColumnNames: _col0
+ UDTF Operator
+ function name: explode
+ Limit
+ File Output Operator
+ compressed: false
+ GlobalTableId: 0
+ table:
+ input format: org.apache.hadoop.mapred.TextInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: 10
+
+
+PREHOOK: query: select explode(*) as x from allcolref limit 10
+PREHOOK: type: QUERY
+PREHOOK: Input: default@allcolref
+#### A masked pattern was here ####
+POSTHOOK: query: select explode(*) as x from allcolref limit 10
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@allcolref
+#### A masked pattern was here ####
+238
+val_238
+86
+val_86
+311
+val_311
+27
+val_27
+165
+val_165