if (table == null) {
throw new NoSuchObjectException("Table " + tableName +
" for which stats is gathered doesn't exist.");
}
MTableColumnStatistics mColStats = new MTableColumnStatistics();
mColStats.setTable(table);
mColStats.setDbName(statsDesc.getDbName());
mColStats.setTableName(statsDesc.getTableName());
mColStats.setLastAnalyzed(statsDesc.getLastAnalyzed());
mColStats.setColName(statsObj.getColName());
mColStats.setColType(statsObj.getColType());
if (statsObj.getStatsData().isSetBooleanStats()) {
BooleanColumnStatsData boolStats = statsObj.getStatsData().getBooleanStats();
mColStats.setBooleanStats(boolStats.getNumTrues(), boolStats.getNumFalses(),
boolStats.getNumNulls());
} else if (statsObj.getStatsData().isSetLongStats()) {
LongColumnStatsData longStats = statsObj.getStatsData().getLongStats();
mColStats.setLongStats(longStats.getNumNulls(), longStats.getNumDVs(),
longStats.getLowValue(), longStats.getHighValue());
} else if (statsObj.getStatsData().isSetDoubleStats()) {
DoubleColumnStatsData doubleStats = statsObj.getStatsData().getDoubleStats();
mColStats.setDoubleStats(doubleStats.getNumNulls(), doubleStats.getNumDVs(),
doubleStats.getLowValue(), doubleStats.getHighValue());
} else if (statsObj.getStatsData().isSetStringStats()) {
StringColumnStatsData stringStats = statsObj.getStatsData().getStringStats();
mColStats.setStringStats(stringStats.getNumNulls(), stringStats.getNumDVs(),
stringStats.getMaxColLen(), stringStats.getAvgColLen());
} else if (statsObj.getStatsData().isSetBinaryStats()) {
BinaryColumnStatsData binaryStats = statsObj.getStatsData().getBinaryStats();
mColStats.setBinaryStats(binaryStats.getNumNulls(), binaryStats.getMaxColLen(),
binaryStats.getAvgColLen());
}
return mColStats;
}