Repository: hive
Updated Branches:
  refs/heads/branch-3.1 15eca868a -> 840aa360b


HIVE-20010: Fix create view over literals (Zoltan Haindrich, reviewed by 
Ashutosh Chauhan, Daniel Dai)

(cherry picked from commit 26c5749eb73d0cc9966e78331e3c490fc2754c49)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/840aa360
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/840aa360
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/840aa360

Branch: refs/heads/branch-3.1
Commit: 840aa360bd93fee5286d0c4c39b45a0693e6199e
Parents: 15eca86
Author: Daniel Dai <dai...@gmail.com>
Authored: Thu Jun 28 13:02:12 2018 -0700
Committer: Zoltan Haindrich <k...@rxd.hu>
Committed: Wed Dec 12 11:59:53 2018 +0100

----------------------------------------------------------------------
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  3 +
 .../test/queries/clientpositive/create_view.q   |  9 +++
 .../results/clientpositive/create_view.q.out    | 60 ++++++++++++++++++++
 3 files changed, 72 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/840aa360/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 
b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index 5044480..ce810c6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -13446,6 +13446,9 @@ public class SemanticAnalyzer extends 
BaseSemanticAnalyzer {
       Set<String> tableAliases = qb.getTabAliases();
       for (String alias : tableAliases) {
         try {
+          if (DUMMY_TABLE.equals(alias)) {
+            continue;
+          }
           Table table = 
this.getTableObjectByName(qb.getTabNameForAlias(alias));
           if (table.isTemporary()) {
             throw new SemanticException("View definition references temporary 
table " + alias);

http://git-wip-us.apache.org/repos/asf/hive/blob/840aa360/ql/src/test/queries/clientpositive/create_view.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/create_view.q 
b/ql/src/test/queries/clientpositive/create_view.q
index 8ac4ae4..cd1e822 100644
--- a/ql/src/test/queries/clientpositive/create_view.q
+++ b/ql/src/test/queries/clientpositive/create_view.q
@@ -227,6 +227,13 @@ DESCRIBE table1_n4;
 -- dependencies for implementing RESTRICT
 
 
+-- create view over literals
+create view view17 as select 1 as v;
+select * from view17;
+create view view18 as select v+1 from (select 1 as v) t;
+select * from view18;
+
+
 DROP VIEW view1;
 DROP VIEW view2;
 DROP VIEW view3;
@@ -243,6 +250,8 @@ DROP VIEW view13;
 DROP VIEW view14;
 DROP VIEW view15;
 DROP VIEW view16;
+DROP VIEW view17;
+DROP VIEW view18;
 DROP TEMPORARY FUNCTION test_translate;
 DROP TEMPORARY FUNCTION test_max;
 DROP TEMPORARY FUNCTION test_explode;

http://git-wip-us.apache.org/repos/asf/hive/blob/840aa360/ql/src/test/results/clientpositive/create_view.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_view.q.out 
b/ql/src/test/results/clientpositive/create_view.q.out
index 02fec1c..d2b8dc1 100644
--- a/ql/src/test/results/clientpositive/create_view.q.out
+++ b/ql/src/test/results/clientpositive/create_view.q.out
@@ -1581,6 +1581,50 @@ POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@table1_n4
 key                    int                                         
 value                  string                                      
+PREHOOK: query: create view view17 as select 1 as v
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: database:default
+PREHOOK: Output: default@view17
+POSTHOOK: query: create view view17 as select 1 as v
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@view17
+POSTHOOK: Lineage: view17.v SIMPLE []
+PREHOOK: query: select * from view17
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Input: default@view17
+#### A masked pattern was here ####
+POSTHOOK: query: select * from view17
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Input: default@view17
+#### A masked pattern was here ####
+1
+PREHOOK: query: create view view18 as select v+1 from (select 1 as v) t
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: database:default
+PREHOOK: Output: default@view18
+POSTHOOK: query: create view view18 as select v+1 from (select 1 as v) t
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@view18
+POSTHOOK: Lineage: view18._c0 SIMPLE []
+PREHOOK: query: select * from view18
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Input: default@view18
+#### A masked pattern was here ####
+POSTHOOK: query: select * from view18
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Input: default@view18
+#### A masked pattern was here ####
+2
 PREHOOK: query: DROP VIEW view1
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@view1
@@ -1709,6 +1753,22 @@ POSTHOOK: query: DROP VIEW view16
 POSTHOOK: type: DROPVIEW
 POSTHOOK: Input: default@view16
 POSTHOOK: Output: default@view16
+PREHOOK: query: DROP VIEW view17
+PREHOOK: type: DROPVIEW
+PREHOOK: Input: default@view17
+PREHOOK: Output: default@view17
+POSTHOOK: query: DROP VIEW view17
+POSTHOOK: type: DROPVIEW
+POSTHOOK: Input: default@view17
+POSTHOOK: Output: default@view17
+PREHOOK: query: DROP VIEW view18
+PREHOOK: type: DROPVIEW
+PREHOOK: Input: default@view18
+PREHOOK: Output: default@view18
+POSTHOOK: query: DROP VIEW view18
+POSTHOOK: type: DROPVIEW
+POSTHOOK: Input: default@view18
+POSTHOOK: Output: default@view18
 PREHOOK: query: DROP TEMPORARY FUNCTION test_translate
 PREHOOK: type: DROPFUNCTION
 PREHOOK: Output: test_translate

Reply via email to