From 4df03a63dbdc969a743344c3177fc75790a240f9 Mon Sep 17 00:00:00 2001 From: yangfang Date: Thu, 16 Feb 2017 17:41:53 +0800 Subject: [PATCH 1/1] 'Hive-15911' --- .../org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java | 5 +++++ .../queries/clientpositive/alter_view_as_select_view.q | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ql/src/test/queries/clientpositive/alter_view_as_select_view.q 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 f053093..3d945f1 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 @@ -11075,6 +11075,11 @@ void analyzeInternal(ASTNode ast, PlannerContext plannerCtx) throws SemanticExce // validate the create view statement at this point, the createVwDesc gets // all the information for semanticcheck validateCreateView(); + + // set ColumnAccessInfo for view column authorization + if (pCtx.getColumnAccessInfo() != null) { + setColumnAccessInfo(pCtx.getColumnAccessInfo()); + } if (!createVwDesc.isMaterialized()) { // Since we're only creating a view (not executing it), we don't need to diff --git a/ql/src/test/queries/clientpositive/alter_view_as_select_view.q b/ql/src/test/queries/clientpositive/alter_view_as_select_view.q new file mode 100644 index 0000000..f481c71 --- /dev/null +++ b/ql/src/test/queries/clientpositive/alter_view_as_select_view.q @@ -0,0 +1,15 @@ +CREATE DATABASE tv; +CREATE VIEW tv.testView1 as SELECT * FROM srcpart; +CREATE VIEW tv.testView_View as SELECT * FROM tv.testView1; +DESCRIBE FORMATTED tv.testView_View; + +CREATE VIEW tv.testView2 AS SELECT value FROM src WHERE key=86; + + +ALTER VIEW tv.testView_View AS SELECT * FROM tv.testView2; +DESCRIBE FORMATTED tv.testView_View; + +DROP VIEW tv.testView_View; +DROP VIEW tv.testView1; +DROP VIEW tv.testView2; +DROP DATABASE tv; -- 2.6.0.windows.1