diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 987f25daeb92f6ff1393790efab4668c87eb9d3b..1678e2c26a6ff1d54041ab24fb7f6bf2b2d6f2ed 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -2068,7 +2068,12 @@ private void getMetaData(QB qb, ReadEntity parentInput) Path location; try { Warehouse wh = new Warehouse(conf); - location = wh.getDatabasePath(db.getDatabase(names[0])); + //Use destination table's db location. + String destTableDb = qb.getTableDesc() != null? qb.getTableDesc().getDatabaseName(): null; + if (destTableDb == null) { + destTableDb = names[0]; + } + location = wh.getDatabasePath(db.getDatabase(destTableDb)); } catch (MetaException e) { throw new SemanticException(e); }