You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/06/28 22:48:44 UTC
[48/52] [abbrv] hive git commit: HIVE-20010: Fix create view over
literals (Zoltan Haindrich, reviewed by Ashutosh Chauhan, Daniel Dai)
HIVE-20010: Fix create view over literals (Zoltan Haindrich, reviewed by Ashutosh Chauhan, Daniel Dai)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/1b3ac733
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/1b3ac733
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/1b3ac733
Branch: refs/heads/master-txnstats
Commit: 1b3ac733f53598636870f4f7af09d2938fe0b09f
Parents: 777d62c
Author: Daniel Dai <da...@gmail.com>
Authored: Thu Jun 28 13:03:29 2018 -0700
Committer: Daniel Dai <da...@gmail.com>
Committed: Thu Jun 28 13:03:29 2018 -0700
----------------------------------------------------------------------
.../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/1b3ac733/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 52cf237..b389a9b 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
@@ -13441,6 +13441,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/1b3ac733/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 b3534e2..3d66cbc 100644
--- a/ql/src/test/queries/clientpositive/create_view.q
+++ b/ql/src/test/queries/clientpositive/create_view.q
@@ -230,6 +230,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;
@@ -246,6 +253,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/1b3ac733/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 fa3fb95..b5b7bfb 100644
--- a/ql/src/test/results/clientpositive/create_view.q.out
+++ b/ql/src/test/results/clientpositive/create_view.q.out
@@ -1570,6 +1570,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
@@ -1698,6 +1742,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