You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2014/08/18 07:42:21 UTC

svn commit: r1618540 - in /hive/trunk: metastore/src/java/org/apache/hadoop/hive/metastore/ ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/

Author: navis
Date: Mon Aug 18 05:42:21 2014
New Revision: 1618540

URL: http://svn.apache.org/r1618540
Log:
HIVE-7710 : Rename table across database might fail (Chun Chen via Navis)

Modified:
    hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
    hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
    hive/trunk/ql/src/test/queries/clientpositive/alter_rename_table.q
    hive/trunk/ql/src/test/results/clientpositive/alter_rename_table.q.out

Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java?rev=1618540&r1=1618539&r2=1618540&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java Mon Aug 18 05:42:21 2014
@@ -222,10 +222,10 @@ public class HiveAlterHandler implements
       if (success && moveData) {
         // change the file name in hdfs
         // check that src exists otherwise there is no need to copy the data
+        // rename the src to destination
         try {
-          if (srcFs.exists(srcPath)) {
-            // rename the src to destination
-            srcFs.rename(srcPath, destPath);
+          if (srcFs.exists(srcPath) && !srcFs.rename(srcPath, destPath)) {
+            throw new IOException("Renaming " + srcPath + " to " + destPath + " is failed");
           }
         } catch (IOException e) {
           boolean revertMetaDataTransaction = false;

Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1618540&r1=1618539&r2=1618540&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java Mon Aug 18 05:42:21 2014
@@ -2564,13 +2564,13 @@ public class ObjectStore implements RawS
       }
 
       // For now only alter name, owner, paramters, cols, bucketcols are allowed
+      oldt.setDatabase(newt.getDatabase());
       oldt.setTableName(newt.getTableName().toLowerCase());
       oldt.setParameters(newt.getParameters());
       oldt.setOwner(newt.getOwner());
       // Fully copy over the contents of the new SD into the old SD,
       // so we don't create an extra SD in the metastore db that has no references.
       copyMSD(newt.getSd(), oldt.getSd());
-      oldt.setDatabase(newt.getDatabase());
       oldt.setRetention(newt.getRetention());
       oldt.setPartitionKeys(newt.getPartitionKeys());
       oldt.setTableType(newt.getTableType());

Modified: hive/trunk/ql/src/test/queries/clientpositive/alter_rename_table.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/alter_rename_table.q?rev=1618540&r1=1618539&r2=1618540&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/alter_rename_table.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/alter_rename_table.q Mon Aug 18 05:42:21 2014
@@ -26,3 +26,10 @@ ALTER TABLE source.srcpart RENAME TO tar
 ALTER TABLE source.srcpart RENAME TO target.srcpart;
 
 select * from target.srcpart tablesample (10 rows);
+
+create table source.src like default.src;
+create table source.src1 like default.src;
+load data local inpath '../../data/files/kv1.txt' overwrite into table source.src;
+
+ALTER TABLE source.src RENAME TO target.src1;
+select * from target.src1 tablesample (10 rows);
\ No newline at end of file

Modified: hive/trunk/ql/src/test/results/clientpositive/alter_rename_table.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/alter_rename_table.q.out?rev=1618540&r1=1618539&r2=1618540&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/alter_rename_table.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/alter_rename_table.q.out Mon Aug 18 05:42:21 2014
@@ -212,3 +212,56 @@ POSTHOOK: Input: target@srcpart@ds=2008-
 278	val_278	2008-04-08	11
 98	val_98	2008-04-08	11
 484	val_484	2008-04-08	11
+PREHOOK: query: create table source.src like default.src
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:source
+PREHOOK: Output: source@source.src
+POSTHOOK: query: create table source.src like default.src
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:source
+POSTHOOK: Output: source@source.src
+POSTHOOK: Output: source@src
+PREHOOK: query: create table source.src1 like default.src
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:source
+PREHOOK: Output: source@source.src1
+POSTHOOK: query: create table source.src1 like default.src
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:source
+POSTHOOK: Output: source@source.src1
+POSTHOOK: Output: source@src1
+PREHOOK: query: load data local inpath '../../data/files/kv1.txt' overwrite into table source.src
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: source@src
+POSTHOOK: query: load data local inpath '../../data/files/kv1.txt' overwrite into table source.src
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: source@src
+PREHOOK: query: ALTER TABLE source.src RENAME TO target.src1
+PREHOOK: type: ALTERTABLE_RENAME
+PREHOOK: Input: source@src
+PREHOOK: Output: source@src
+POSTHOOK: query: ALTER TABLE source.src RENAME TO target.src1
+POSTHOOK: type: ALTERTABLE_RENAME
+POSTHOOK: Input: source@src
+POSTHOOK: Output: source@src
+POSTHOOK: Output: target@src1
+PREHOOK: query: select * from target.src1 tablesample (10 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: target@src1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from target.src1 tablesample (10 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: target@src1
+#### A masked pattern was here ####
+238	val_238
+86	val_86
+311	val_311
+27	val_27
+165	val_165
+409	val_409
+255	val_255
+278	val_278
+98	val_98
+484	val_484