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