diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java index e2f696eea7b472d4e417629eedd33406b41caf98..3414e9a525a06df8150e75800d559fa2ba939018 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java @@ -267,7 +267,7 @@ private void unpackStructObject(ObjectInspector oi, Object o, String fName, private List constructColumnStatsFromPackedRows() throws HiveException, MetaException, IOException { - String dbName = SessionState.get().getCurrentDatabase(); + String currentDb = SessionState.get().getCurrentDatabase(); String tableName = work.getColStats().getTableName(); String partName = null; List colName = work.getColStats().getColName(); @@ -286,7 +286,7 @@ private void unpackStructObject(ObjectInspector oi, Object o, String fName, List fields = soi.getAllStructFieldRefs(); List list = soi.getStructFieldsDataAsList(packedRow.o); - Table tbl = db.getTable(dbName,tableName); + Table tbl = db.getTable(currentDb,tableName); List partColSchema = tbl.getPartCols(); // Partition columns are appended at end, we only care about stats column int numOfStatCols = isTblLevel ? fields.size() : fields.size() - partColSchema.size(); @@ -313,8 +313,8 @@ private void unpackStructObject(ObjectInspector oi, Object o, String fName, } partName = Warehouse.makePartName(partColSchema, partVals); } - - ColumnStatisticsDesc statsDesc = getColumnStatsDesc(dbName, tableName, partName, isTblLevel); + String [] names = Utilities.getDbTableName(currentDb, tableName); + ColumnStatisticsDesc statsDesc = getColumnStatsDesc(names[0], names[1], partName, isTblLevel); ColumnStatistics colStats = new ColumnStatistics(); colStats.setStatsDesc(statsDesc); colStats.setStatsObj(statsObjs); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java index 28c17b75356eb4ffaac2193a80b27bdd67d98009..b85282c2472a8fda7f3f6b62b0af4de3ee7fb4a8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java @@ -238,8 +238,8 @@ private ColumnStatistics constructColumnStatsFromInput() } else { throw new SemanticException("Unsupported type"); } - - ColumnStatisticsDesc statsDesc = getColumnStatsDesc(dbName, tableName, + String [] names = Utilities.getDbTableName(dbName, tableName); + ColumnStatisticsDesc statsDesc = getColumnStatsDesc(names[0], names[1], partName, partName == null); ColumnStatistics colStat = new ColumnStatistics(); colStat.setStatsDesc(statsDesc); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java index c83523e507f1003eff1a821c216a7f6904f293ed..b84ea46c09259cea5ef5ebee0f8553a8fae5ae93 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.metadata.InvalidTableException; import org.apache.hadoop.hive.ql.metadata.Table; +import org.apache.hadoop.hive.ql.session.SessionState; /** * ColumnStatsSemanticAnalyzer. @@ -94,13 +95,9 @@ private boolean isPartitionLevelStats(ASTNode tree) { private Table getTable(ASTNode tree) throws SemanticException { String tableName = getUnescapedName((ASTNode) tree.getChild(0).getChild(0)); - try { - return db.getTable(tableName); - } catch (InvalidTableException e) { - throw new SemanticException(ErrorMsg.INVALID_TABLE.getMsg(tableName), e); - } catch (HiveException e) { - throw new SemanticException(e.getMessage(), e); - } + String currentDb = SessionState.get().getCurrentDatabase(); + String [] names = Utilities.getDbTableName(currentDb, tableName); + return getTable(names[0], names[1], true); } private Map getPartKeyValuePairsFromAST(ASTNode tree) { @@ -315,6 +312,8 @@ private String genRewrittenQuery(List colNames, int numBitVectors, Map