nrg4878 commented on a change in pull request #2094:
URL: https://github.com/apache/hive/pull/2094#discussion_r600816065



##########
File path: 
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDefaultTransformer.java
##########
@@ -695,7 +695,8 @@ public Database transformDatabase(Database db, List<String> 
processorCapabilitie
     if (!isTenantBasedStorage) {
       Path locationPath = Path.getPathWithoutSchemeAndAuthority(new 
Path(db.getLocationUri()));
       Path whRootPath = 
Path.getPathWithoutSchemeAndAuthority(hmsHandler.getWh().getWhRoot());
-      if (FileUtils.isSubdirectory(whRootPath.toString(), 
locationPath.toString())) { // legacy path
+      LOG.debug("Comparing DB and warehouse paths warehouse={} 
db.getLocationUri={}", whRootPath.toString(), locationPath.toString());
+      if (FileUtils.isSubdirectory(whRootPath.toString(), 
locationPath.toString()) || locationPath.equals(whRootPath)) { // legacy path

Review comment:
       so prior to the introduction of managedlocation for db, while the exact 
semantics are unclear, the location was meant to be for managed tables. 
Although there is no code that enforces this strictly. So a legacy db object 
could have a location that could point anywhere. 
   This fix it for backward compatibility. When a location is set to a managed 
location, we are ensuring that that location now becomes the managedlocation.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to