diff --git metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java index d165fc8..44c2874 100644 --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -5753,6 +5753,7 @@ public UpdateMDatabaseURIRetVal updateMDatabaseURI(URI oldLoc, URI newLoc, boole Query query = null; Map updateLocations = new HashMap(); List badRecords = new ArrayList(); + int numNullRecords = 0; UpdateMDatabaseURIRetVal retVal = null; try { openTransaction(); @@ -5763,6 +5764,10 @@ public UpdateMDatabaseURIRetVal updateMDatabaseURI(URI oldLoc, URI newLoc, boole for (MDatabase mDB : mDBs) { URI locationURI = null; String location = mDB.getLocationUri(); + if (location == null) { // This can happen for View or Index + numNullRecords++; + continue; + } try { locationURI = new Path(location).toUri(); } catch (IllegalArgumentException e) { @@ -5930,6 +5935,7 @@ public UpdatePropURIRetVal updateMStorageDescriptorTblPropURI(URI oldLoc, URI ne public class UpdateMStorageDescriptorTblURIRetVal { private List badRecords; private Map updateLocations; + private int numNullRecords; UpdateMStorageDescriptorTblURIRetVal(List badRecords, Map updateLocations) { @@ -5952,6 +5958,14 @@ public void setBadRecords(List badRecords) { public void setUpdateLocations(Map updateLocations) { this.updateLocations = updateLocations; } + + public int getNumNullRecords() { + return numNullRecords; + } + + public void setNumNullRecords(int numNullRecords) { + this.numNullRecords = numNullRecords; + } } /** The following APIs diff --git metastore/src/java/org/apache/hadoop/hive/metastore/tools/HiveMetaTool.java metastore/src/java/org/apache/hadoop/hive/metastore/tools/HiveMetaTool.java index 411ac21..e4e9e3a 100644 --- metastore/src/java/org/apache/hadoop/hive/metastore/tools/HiveMetaTool.java +++ metastore/src/java/org/apache/hadoop/hive/metastore/tools/HiveMetaTool.java @@ -222,6 +222,11 @@ private void printTblURIUpdateSummary(ObjectStore.UpdateMStorageDescriptorTblURI System.err.println("bad location URI: " + badRecord); } } + int numNullRecords = retVal.getNumNullRecords(); + if (numNullRecords != 0) { + LOG.debug("Number of NULL location URI: " + numNullRecords + + ". This is expected for View or Index."); + } } }