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/12 21:44:19 UTC
svn commit: r1541226 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/ParseDriver.java
test/queries/clientpositive/create_view_translate.q
test/results/clientpositive/create_view_translate.q.out
Author: hashutosh
Date: Tue Nov 12 20:44:18 2013
New Revision: 1541226
URL: http://svn.apache.org/r1541226
Log:
HIVE-4116 : Can't use views using map datatype. (Navis via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java
hive/trunk/ql/src/test/queries/clientpositive/create_view_translate.q
hive/trunk/ql/src/test/results/clientpositive/create_view_translate.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java?rev=1541226&r1=1541225&r2=1541226&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java Tue Nov 12 20:44:18 2013
@@ -201,7 +201,9 @@ public class ParseDriver {
throw new ParseException(parser.errors);
}
- return (ASTNode) r.getTree();
+ ASTNode tree = (ASTNode) r.getTree();
+ tree.setUnknownTokenBoundaries();
+ return tree;
}
Modified: hive/trunk/ql/src/test/queries/clientpositive/create_view_translate.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/create_view_translate.q?rev=1541226&r1=1541225&r2=1541226&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/create_view_translate.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/create_view_translate.q Tue Nov 12 20:44:18 2013
@@ -11,3 +11,14 @@ describe formatted w;
drop view v;
drop view w;
+
+
+-- HIVE-4116 Can't use views using map datatype.
+
+CREATE TABLE items (id INT, name STRING, info MAP<STRING,STRING>);
+
+explain
+CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items;
+CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items;
+
+select * from priceview;
Modified: hive/trunk/ql/src/test/results/clientpositive/create_view_translate.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/create_view_translate.q.out?rev=1541226&r1=1541225&r2=1541226&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/create_view_translate.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/create_view_translate.q.out Tue Nov 12 20:44:18 2013
@@ -99,3 +99,52 @@ POSTHOOK: query: drop view w
POSTHOOK: type: DROPVIEW
POSTHOOK: Input: default@w
POSTHOOK: Output: default@w
+PREHOOK: query: -- HIVE-4116 Can't use views using map datatype.
+
+CREATE TABLE items (id INT, name STRING, info MAP<STRING,STRING>)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: -- HIVE-4116 Can't use views using map datatype.
+
+CREATE TABLE items (id INT, name STRING, info MAP<STRING,STRING>)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@items
+PREHOOK: query: explain
+CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items
+PREHOOK: type: CREATEVIEW
+POSTHOOK: query: explain
+CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items
+POSTHOOK: type: CREATEVIEW
+ABSTRACT SYNTAX TREE:
+ (TOK_CREATEVIEW (TOK_TABNAME priceview) (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME items))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL items) id)) (TOK_SELEXPR ([ (. (TOK_TABLE_OR_COL items) info) 'price'))))))
+
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Create View Operator:
+ Create View
+ if not exists: false
+ is alter view as select: false
+ or replace: false
+ columns: id int, _c1 string
+ expanded text: SELECT `items`.`id`, `items`.`info`['price'] FROM `default`.`items`
+ name: priceview
+ original text: SELECT items.id, items.info['price'] FROM items
+
+
+PREHOOK: query: CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items
+PREHOOK: type: CREATEVIEW
+POSTHOOK: query: CREATE VIEW priceview AS SELECT items.id, items.info['price'] FROM items
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Output: default@priceview
+PREHOOK: query: select * from priceview
+PREHOOK: type: QUERY
+PREHOOK: Input: default@items
+PREHOOK: Input: default@priceview
+#### A masked pattern was here ####
+POSTHOOK: query: select * from priceview
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@items
+POSTHOOK: Input: default@priceview
+#### A masked pattern was here ####