diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java index 68d9057a89..37f95a81f6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java @@ -266,7 +266,7 @@ public TrimResult trimFields(Project project, ImmutableBitSet fieldsUsed, if (this.columnAccessInfo != null && this.viewProjectToTableSchema != null && this.viewProjectToTableSchema.containsKey(project)) { Table tab = this.viewProjectToTableSchema.get(project); - this.columnAccessInfo.add(tab.getCompleteName(), tab.getCols().get(ord.i).getName()); + this.columnAccessInfo.add(tab.getCompleteName(), tab.getAllCols().get(ord.i).getName()); } } } diff --git a/ql/src/test/queries/clientpositive/create_view_partitioned.q b/ql/src/test/queries/clientpositive/create_view_partitioned.q index 5e30f91f4e..437498501c 100644 --- a/ql/src/test/queries/clientpositive/create_view_partitioned.q +++ b/ql/src/test/queries/clientpositive/create_view_partitioned.q @@ -81,3 +81,15 @@ ADD PARTITION (v='val_86'); DROP VIEW vp1; DROP VIEW vp2; DROP VIEW vp3; + + +-- HIVE-16828 +set hive.security.authorization.enabled=true; +CREATE TABLE table1 (id int) PARTITIONED BY (year int); +-- create partitioned view +CREATE VIEW view1 partitioned on (year) as select id, year from table1; + +select year from view1; + +Drop view view1; +drop table table1; \ No newline at end of file diff --git a/ql/src/test/results/clientpositive/create_view_partitioned.q.out b/ql/src/test/results/clientpositive/create_view_partitioned.q.out index fc9031781d..3a387573f2 100644 --- a/ql/src/test/results/clientpositive/create_view_partitioned.q.out +++ b/ql/src/test/results/clientpositive/create_view_partitioned.q.out @@ -444,3 +444,48 @@ POSTHOOK: query: DROP VIEW vp3 POSTHOOK: type: DROPVIEW POSTHOOK: Input: default@vp3 POSTHOOK: Output: default@vp3 +PREHOOK: query: CREATE TABLE table1 (id int) PARTITIONED BY (year int) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@table1 +POSTHOOK: query: CREATE TABLE table1 (id int) PARTITIONED BY (year int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@table1 +PREHOOK: query: CREATE VIEW view1 partitioned on (year) as select id, year from table1 +PREHOOK: type: CREATEVIEW +PREHOOK: Input: default@table1 +PREHOOK: Output: database:default +PREHOOK: Output: default@view1 +POSTHOOK: query: CREATE VIEW view1 partitioned on (year) as select id, year from table1 +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: default@table1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@view1 +POSTHOOK: Lineage: view1.id SIMPLE [(table1)table1.FieldSchema(name:id, type:int, comment:null), ] +PREHOOK: query: select year from view1 +PREHOOK: type: QUERY +PREHOOK: Input: default@table1 +PREHOOK: Input: default@view1 +#### A masked pattern was here #### +POSTHOOK: query: select year from view1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@table1 +POSTHOOK: Input: default@view1 +#### A masked pattern was here #### +PREHOOK: query: Drop view view1 +PREHOOK: type: DROPVIEW +PREHOOK: Input: default@view1 +PREHOOK: Output: default@view1 +POSTHOOK: query: Drop view view1 +POSTHOOK: type: DROPVIEW +POSTHOOK: Input: default@view1 +POSTHOOK: Output: default@view1 +PREHOOK: query: drop table table1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@table1 +PREHOOK: Output: default@table1 +POSTHOOK: query: drop table table1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@table1 +POSTHOOK: Output: default@table1