You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by pv...@apache.org on 2018/03/08 09:18:10 UTC

hive git commit: HIVE-18060: UpdateInputAccessTimeHook fails for non-current database (Oleksiy Sayankin, reviewed by Marta Kuczora and Zoltan Haindrich)

Repository: hive
Updated Branches:
  refs/heads/master 073dc8808 -> 38e0b6acf


HIVE-18060: UpdateInputAccessTimeHook fails for non-current database (Oleksiy Sayankin, reviewed by Marta Kuczora and Zoltan Haindrich)


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

Branch: refs/heads/master
Commit: 38e0b6acf9d88e245c434eac9f7702505f5eb0d9
Parents: 073dc88
Author: Peter Vary <pv...@cloudera.com>
Authored: Thu Mar 8 10:16:53 2018 +0100
Committer: Peter Vary <pv...@cloudera.com>
Committed: Thu Mar 8 10:16:53 2018 +0100

----------------------------------------------------------------------
 .../test/resources/testconfiguration.properties |  1 +
 .../ql/hooks/UpdateInputAccessTimeHook.java     | 14 +++---
 .../update_access_time_non_current_db.q         |  9 ++++
 .../update_access_time_non_current_db.q.out     | 47 ++++++++++++++++++++
 4 files changed, 66 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/38e0b6ac/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index 084d5db..4cf12e4 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -296,6 +296,7 @@ minillaplocal.shared.query.files=alter_merge_2_orc.q,\
   union8.q,\
   union9.q,\
   union_stats.q,\
+  update_access_time_non_current_db.q, \
   update_after_multiple_inserts.q,\
   update_all_non_partitioned.q,\
   update_all_partitioned.q,\

http://git-wip-us.apache.org/repos/asf/hive/blob/38e0b6ac/ql/src/java/org/apache/hadoop/hive/ql/hooks/UpdateInputAccessTimeHook.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/UpdateInputAccessTimeHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/UpdateInputAccessTimeHook.java
index c4856b1..fc56a8b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/UpdateInputAccessTimeHook.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/UpdateInputAccessTimeHook.java
@@ -59,19 +59,23 @@ public class UpdateInputAccessTimeHook {
         // of the object, before it was modified by StatsTask.
         // Get the latest versions of the object
         case TABLE: {
-          Table t = db.getTable(re.getTable().getTableName());
+          String dbName = re.getTable().getDbName();
+          String tblName = re.getTable().getTableName();
+          Table t = db.getTable(dbName, tblName);
           t.setLastAccessTime(lastAccessTime);
-          db.alterTable(t, null);
+          db.alterTable(dbName + "." + tblName, t, null);
           break;
         }
         case PARTITION: {
+          String dbName = re.getTable().getDbName();
+          String tblName = re.getTable().getTableName();
           Partition p = re.getPartition();
-          Table t = db.getTable(p.getTable().getTableName());
+          Table t = db.getTable(dbName, tblName);
           p = db.getPartition(t, p.getSpec(), false);
           p.setLastAccessTime(lastAccessTime);
-          db.alterPartition(t.getTableName(), p, null);
+          db.alterPartition(dbName, tblName, p, null);
           t.setLastAccessTime(lastAccessTime);
-          db.alterTable(t, null);
+          db.alterTable(dbName + "." + tblName, t, null);
           break;
         }
         default:

http://git-wip-us.apache.org/repos/asf/hive/blob/38e0b6ac/ql/src/test/queries/clientpositive/update_access_time_non_current_db.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/update_access_time_non_current_db.q b/ql/src/test/queries/clientpositive/update_access_time_non_current_db.q
new file mode 100644
index 0000000..2fdfd7c
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/update_access_time_non_current_db.q
@@ -0,0 +1,9 @@
+create database temp1;
+use temp1;
+create table test1(id int);
+create database temp2;
+use temp2;
+create table test2(id int);
+set hive.exec.pre.hooks=org.apache.hadoop.hive.ql.hooks.UpdateInputAccessTimeHook$PreExec;
+use temp1;
+desc temp2.test2;

http://git-wip-us.apache.org/repos/asf/hive/blob/38e0b6ac/ql/src/test/results/clientpositive/update_access_time_non_current_db.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/update_access_time_non_current_db.q.out b/ql/src/test/results/clientpositive/update_access_time_non_current_db.q.out
new file mode 100644
index 0000000..7fda3ac
--- /dev/null
+++ b/ql/src/test/results/clientpositive/update_access_time_non_current_db.q.out
@@ -0,0 +1,47 @@
+PREHOOK: query: create database temp1
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:temp1
+POSTHOOK: query: create database temp1
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:temp1
+PREHOOK: query: use temp1
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:temp1
+POSTHOOK: query: use temp1
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:temp1
+PREHOOK: query: create table test1(id int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:temp1
+PREHOOK: Output: temp1@test1
+POSTHOOK: query: create table test1(id int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:temp1
+POSTHOOK: Output: temp1@test1
+PREHOOK: query: create database temp2
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:temp2
+POSTHOOK: query: create database temp2
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:temp2
+PREHOOK: query: use temp2
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:temp2
+POSTHOOK: query: use temp2
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:temp2
+PREHOOK: query: create table test2(id int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:temp2
+PREHOOK: Output: temp2@test2
+POSTHOOK: query: create table test2(id int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:temp2
+POSTHOOK: Output: temp2@test2
+POSTHOOK: query: use temp1
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:temp1
+POSTHOOK: query: desc temp2.test2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: temp2@test2
+id                  	int