You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by vg...@apache.org on 2017/11/17 18:44:36 UTC

hive git commit: HIVE-16828 : With CBO enabled, Query on partitioned views throws IndexOutOfBoundException (Vineet Garg, reviewed by Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master 6558a68ec -> 7a24defc9


HIVE-16828 : With CBO enabled, Query on partitioned views throws IndexOutOfBoundException (Vineet Garg, reviewed by Ashutosh Chauhan)


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

Branch: refs/heads/master
Commit: 7a24defc95b161418fd2bcb38fafee4f27875e56
Parents: 6558a68
Author: Vineet Garg <vg...@apache.com>
Authored: Fri Nov 17 10:43:46 2017 -0800
Committer: Vineet Garg <vg...@apache.com>
Committed: Fri Nov 17 10:43:46 2017 -0800

----------------------------------------------------------------------
 .../calcite/rules/HiveRelFieldTrimmer.java      |  2 +-
 .../clientpositive/create_view_partitioned.q    | 12 ++++++
 .../create_view_partitioned.q.out               | 45 ++++++++++++++++++++
 3 files changed, 58 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/7a24defc/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java
----------------------------------------------------------------------
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 68d9057..37f95a8 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 class HiveRelFieldTrimmer extends RelFieldTrimmer {
         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());
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/hive/blob/7a24defc/ql/src/test/queries/clientpositive/create_view_partitioned.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/create_view_partitioned.q b/ql/src/test/queries/clientpositive/create_view_partitioned.q
index 5e30f91..4374985 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

http://git-wip-us.apache.org/repos/asf/hive/blob/7a24defc/ql/src/test/results/clientpositive/create_view_partitioned.q.out
----------------------------------------------------------------------
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 fc90317..3a38757 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