Repository: hive
Updated Branches:
  refs/heads/master 0808741c6 -> 8f9644658


HIVE-12213 Investigating the test failure 
TestHCatClient.testTableSchemaPropagation (Aleksei Statkevich via Aihua Xu)


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

Branch: refs/heads/master
Commit: 8f9644658fd141fd5ea7395d3e97a093f98870bb
Parents: 0808741
Author: Aihua Xu <a...@cloudera.com>
Authored: Mon Oct 26 12:49:11 2015 -0400
Committer: aihuaxu <aihu...@apache.org>
Committed: Mon Oct 26 13:03:48 2015 -0400

----------------------------------------------------------------------
 .../hive/hcatalog/api/TestHCatClient.java       | 39 +++++++++-----------
 .../hadoop/hive/metastore/MetaStoreUtils.java   | 10 +++--
 2 files changed, 24 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/8f964465/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
----------------------------------------------------------------------
diff --git 
a/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
 
b/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
index 8992d552c..891322a 100644
--- 
a/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
+++ 
b/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
@@ -90,7 +90,6 @@ public class TestHCatClient {
   private static HiveConf replicationTargetHCatConf;
   private static SecurityManager securityManager;
   private static boolean useExternalMS = false;
-  private static boolean useExternalMSForReplication = false;
 
   public static class RunMS implements Runnable {
 
@@ -1056,14 +1055,14 @@ public class TestHCatClient {
       HCatTable targetTable = targetMetaStore.deserializeTable(tableStringRep);
 
       assertEquals("Table after deserialization should have been identical to 
sourceTable.",
-          sourceTable.diff(targetTable), HCatTable.NO_DIFF);
+          HCatTable.NO_DIFF, sourceTable.diff(targetTable));
 
       // Create table on Target.
       
targetMetaStore.createTable(HCatCreateTableDesc.create(targetTable).build());
       // Verify that the created table is identical to sourceTable.
       targetTable = targetMetaStore.getTable(dbName, tableName);
       assertEquals("Table after deserialization should have been identical to 
sourceTable.",
-          sourceTable.diff(targetTable), HCatTable.NO_DIFF);
+          HCatTable.NO_DIFF, sourceTable.diff(targetTable));
 
       // Modify sourceTable.
       List<HCatFieldSchema> newColumnSchema = new 
ArrayList<HCatFieldSchema>(columnSchema);
@@ -1098,7 +1097,7 @@ public class TestHCatClient {
       targetTable = targetMetaStore.getTable(dbName, tableName);
 
       assertEquals("After propagating schema changes, source and target tables 
should have been equivalent.",
-          targetTable.diff(sourceTable), HCatTable.NO_DIFF);
+          HCatTable.NO_DIFF, targetTable.diff(sourceTable));
 
     }
     catch (Exception unexpected) {
@@ -1157,14 +1156,14 @@ public class TestHCatClient {
 
       
sourceMetaStore.addPartition(HCatAddPartitionDesc.create(sourcePartition_1).build());
       assertEquals("Unexpected number of partitions. ",
-                   sourceMetaStore.getPartitions(dbName, tableName).size(), 1);
+                   1, sourceMetaStore.getPartitions(dbName, tableName).size());
       // Verify that partition_1 was added correctly, and properties were 
inherited from the HCatTable.
       HCatPartition addedPartition_1 = sourceMetaStore.getPartition(dbName, 
tableName, partitionSpec_1);
-      assertEquals("Column schema doesn't match.", 
addedPartition_1.getColumns(), sourceTable.getCols());
-      assertEquals("InputFormat doesn't match.", 
addedPartition_1.getInputFormat(), sourceTable.getInputFileFormat());
-      assertEquals("OutputFormat doesn't match.", 
addedPartition_1.getOutputFormat(), sourceTable.getOutputFileFormat());
-      assertEquals("SerDe doesn't match.", addedPartition_1.getSerDe(), 
sourceTable.getSerdeLib());
-      assertEquals("SerDe params don't match.", 
addedPartition_1.getSerdeParams(), sourceTable.getSerdeParams());
+      assertEquals("Column schema doesn't match.", sourceTable.getCols(), 
addedPartition_1.getColumns());
+      assertEquals("InputFormat doesn't match.", 
sourceTable.getInputFileFormat(), addedPartition_1.getInputFormat());
+      assertEquals("OutputFormat doesn't match.", 
sourceTable.getOutputFileFormat(), addedPartition_1.getOutputFormat());
+      assertEquals("SerDe doesn't match.", sourceTable.getSerdeLib(), 
addedPartition_1.getSerDe());
+      assertEquals("SerDe params don't match.", sourceTable.getSerdeParams(), 
addedPartition_1.getSerdeParams());
 
       // Replicate table definition.
 
@@ -1177,8 +1176,7 @@ public class TestHCatClient {
       
targetMetaStore.createTable(HCatCreateTableDesc.create(targetTable).build());
       targetTable = targetMetaStore.getTable(dbName, tableName);
 
-      assertEquals("Created table doesn't match the source.",
-                  targetTable.diff(sourceTable), HCatTable.NO_DIFF);
+      assertEquals("Created table doesn't match the source.", 
HCatTable.NO_DIFF, targetTable.diff(sourceTable));
 
       // Modify Table schema at the source.
       List<HCatFieldSchema> newColumnSchema = new 
ArrayList<HCatFieldSchema>(columnSchema);
@@ -1215,7 +1213,7 @@ public class TestHCatClient {
 
       List<HCatPartition> targetPartitions = 
targetMetaStore.getPartitions(dbName, tableName);
 
-      assertEquals("Expected the same number of partitions. ", 
targetPartitions.size(), sourcePartitions.size());
+      assertEquals("Expected the same number of partitions. ", 
sourcePartitions.size(), targetPartitions.size());
 
       for (int i=0; i<targetPartitions.size(); ++i) {
         HCatPartition sourcePartition = sourcePartitions.get(i),
@@ -1286,14 +1284,14 @@ public class TestHCatClient {
 
       
sourceMetaStore.addPartition(HCatAddPartitionDesc.create(sourcePartition_1).build());
       assertEquals("Unexpected number of partitions. ",
-          sourceMetaStore.getPartitions(dbName, tableName).size(), 1);
+          1, sourceMetaStore.getPartitions(dbName, tableName).size());
       // Verify that partition_1 was added correctly, and properties were 
inherited from the HCatTable.
       HCatPartition addedPartition_1 = sourceMetaStore.getPartition(dbName, 
tableName, partitionSpec_1);
-      assertEquals("Column schema doesn't match.", 
addedPartition_1.getColumns(), sourceTable.getCols());
-      assertEquals("InputFormat doesn't match.", 
addedPartition_1.getInputFormat(), sourceTable.getInputFileFormat());
-      assertEquals("OutputFormat doesn't match.", 
addedPartition_1.getOutputFormat(), sourceTable.getOutputFileFormat());
-      assertEquals("SerDe doesn't match.", addedPartition_1.getSerDe(), 
sourceTable.getSerdeLib());
-      assertEquals("SerDe params don't match.", 
addedPartition_1.getSerdeParams(), sourceTable.getSerdeParams());
+      assertEquals("Column schema doesn't match.", sourceTable.getCols(), 
addedPartition_1.getColumns());
+      assertEquals("InputFormat doesn't match.", 
sourceTable.getInputFileFormat(), addedPartition_1.getInputFormat());
+      assertEquals("OutputFormat doesn't match.", 
sourceTable.getOutputFileFormat(), addedPartition_1.getOutputFormat());
+      assertEquals("SerDe doesn't match.", sourceTable.getSerdeLib(), 
addedPartition_1.getSerDe());
+      assertEquals("SerDe params don't match.", sourceTable.getSerdeParams(), 
addedPartition_1.getSerdeParams());
 
       // Replicate table definition.
 
@@ -1306,8 +1304,7 @@ public class TestHCatClient {
       
targetMetaStore.createTable(HCatCreateTableDesc.create(targetTable).build());
       targetTable = targetMetaStore.getTable(dbName, tableName);
 
-      assertEquals("Created table doesn't match the source.",
-          targetTable.diff(sourceTable), HCatTable.NO_DIFF);
+      assertEquals("Created table doesn't match the source.", 
HCatTable.NO_DIFF, targetTable.diff(sourceTable));
 
       // Modify Table schema at the source.
       List<HCatFieldSchema> newColumnSchema = new 
ArrayList<HCatFieldSchema>(columnSchema);

http://git-wip-us.apache.org/repos/asf/hive/blob/8f964465/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java 
b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
index 12f3f16..3fde18e 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
@@ -185,11 +185,13 @@ public class MetaStoreUtils {
 
   public static boolean updateTableStatsFast(Database db, Table tbl, Warehouse 
wh,
       boolean madeDir, boolean forceRecompute) throws MetaException {
-    FileStatus[] fileStatuses = {};
-    if (tbl.getPartitionKeysSize() == 0) { // Update stats only when 
unpartitioned
-      fileStatuses = wh.getFileStatusesForUnpartitionedTable(db, tbl);
+    if (tbl.getPartitionKeysSize() == 0) {
+      // Update stats only when unpartitioned
+      FileStatus[] fileStatuses = wh.getFileStatusesForUnpartitionedTable(db, 
tbl);
+      return updateTableStatsFast(tbl, fileStatuses, madeDir, forceRecompute);
+    } else {
+      return false;
     }
-    return updateTableStatsFast(tbl, fileStatuses, madeDir, forceRecompute);
   }
 
   /**

Reply via email to