diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java index bff1688a2bf8e8413b5b6a9ba8855bd3810f5daf..75179ab85bda8a612b74b64da1e336b3865b872e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java @@ -213,9 +213,15 @@ public Path getPartitionPath() { public Path getDataLocation() { if (table.isPartitioned()) { - return new Path(tPartition.getSd().getLocation()); + if (tPartition.getSd() == null) + return null; + else + return new Path(tPartition.getSd().getLocation()); } else { - return new Path(table.getTTable().getSd().getLocation()); + if (table.getTTable() == null || table.getTTable().getSd() == null) + return null; + else + return new Path(table.getTTable().getSd().getLocation()); } } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java index 77bc12c091b3d31822bce3231991a975d7b81a18..7601267e784a05b99fa155924f6d962f08e8ffb1 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java @@ -2934,7 +2934,9 @@ private void analyzeAlterTableAddParts(String[] qualified, CommonTree ast, boole } cmd.append(")"); } - Driver driver = new Driver(conf); + SessionState ss = SessionState.get(); + String uName = (ss == null? null: ss.getUserName()); + Driver driver = new Driver(conf, uName); int rc = driver.compile(cmd.toString(), false); if (rc != 0) { throw new SemanticException(ErrorMsg.NO_VALID_PARTN.getMsg());