List<ColumnStatisticsObj> objs = css.getStatsObj(); for (ColumnStatisticsObj obj : objs) { String partName = css.getStatsDesc().getPartName(); if (aliasToAggregator.get(obj.getColName()) == null) { aliasToAggregator.put(obj.getColName(),
public Object getFieldValue(_Fields field) { switch (field) { case IS_TBL_LEVEL: return isIsTblLevel(); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case PART_NAME: return getPartName(); case LAST_ANALYZED: return getLastAnalyzed(); case CAT_NAME: return getCatName(); } throw new IllegalStateException(); }
partVal = Warehouse.makeValsFromName(cs.getStatsDesc().getPartName(), null); List<ColumnStatisticsObj> colStatsObjs = cs.getStatsObj(); for (ColumnStatisticsObj colStatObj : colStatsObjs) {
oldStatsMap.put(csOld.getStatsDesc().getPartName(), csOld); } else { LOG.debug("All the column stats " + csNew.getStatsDesc().getPartName() + " are not accurate to merge.");
map.put(stat.getStatsDesc().getPartName(), stat.getStatsObj());
private void normalizeColStatsInput(ColumnStatistics colStats) throws MetaException { // TODO: is this really needed? this code is propagated from HIVE-1362 but most of it is useless. ColumnStatisticsDesc statsDesc = colStats.getStatsDesc(); statsDesc.setCatName(statsDesc.isSetCatName() ? statsDesc.getCatName().toLowerCase() : getDefaultCatalog(conf)); statsDesc.setDbName(statsDesc.getDbName().toLowerCase()); statsDesc.setTableName(statsDesc.getTableName().toLowerCase()); statsDesc.setPartName(lowerCaseConvertPartName(statsDesc.getPartName())); long time = System.currentTimeMillis() / 1000; statsDesc.setLastAnalyzed(time); for (ColumnStatisticsObj statsObj : colStats.getStatsObj()) { statsObj.setColName(statsObj.getColName().toLowerCase()); statsObj.setColType(statsObj.getColType().toLowerCase()); } colStats.setStatsDesc(statsDesc); colStats.setStatsObj(colStats.getStatsObj()); }
if (updateColumnStats) { msdb.deletePartitionColumnStatistics(catName, dbname, tblname, partColStats.getStatsDesc().getPartName(), partVals, statsObj.getColName()); } else { deletedCols.add(statsObj.getColName()); msdb.deletePartitionColumnStatistics(catName, dbname, tblname, partColStats.getStatsDesc().getPartName(), partVals, statsObj.getColName());
Warehouse.getPartValuesFromPartName(cs.getStatsDesc().getPartName())); if (mpart == null || !isCurrentStatsValidForTheQuery(mpart, writeIdList, false)) {
List<String> partVal; try { partVal = Warehouse.makeValsFromName(cs.getStatsDesc().getPartName(), null); List<ColumnStatisticsObj> colStats = cs.getStatsObj(); if (!tblWrapper.updatePartitionColStats(partVal, colStats)) {
String partName = csNew.getStatsDesc().getPartName(); if (newStatsMap.containsKey(partName)) { MetaStoreServerUtils.mergeColStats(csNew, newStatsMap.get(partName));
String catName = csd.getCatName(), dbName = csd.getDbName(), tableName = csd.getTableName(); startFunction("write_partition_column_statistics", ": db=" + dbName + " table=" + tableName + " part=" + csd.getPartName()); tbl = getTable(catName, dbName, tableName); partVals = getPartValsFromName(tbl, csd.getPartName()); parameters = getMS().updatePartitionColumnStatistics(colStats, partVals, validWriteIds, writeId); if (parameters != null) {
.getPartName(), colNames); + statsDesc.getDbName() + "." + statsDesc.getTableName() + "." + statsDesc.getPartName());
assertEquals(colStats.getStatsDesc().getPartName(), partName); assertEquals(colStats2.getColName(), colName[1]); assertEquals(colStats2.getStatsData().getStringStats().getMaxColLen(), maxColLen);
mColStats.setDbName(statsDesc.getDbName()); mColStats.setTableName(statsDesc.getTableName()); mColStats.setPartitionName(statsDesc.getPartName()); mColStats.setLastAnalyzed(statsDesc.getLastAnalyzed()); mColStats.setColName(statsObj.getColName());
public Object getFieldValue(_Fields field) { switch (field) { case IS_TBL_LEVEL: return Boolean.valueOf(isIsTblLevel()); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case PART_NAME: return getPartName(); case LAST_ANALYZED: return Long.valueOf(getLastAnalyzed()); } throw new IllegalStateException(); }
public Object getFieldValue(_Fields field) { switch (field) { case IS_TBL_LEVEL: return Boolean.valueOf(isIsTblLevel()); case DB_NAME: return getDbName(); case TABLE_NAME: return getTableName(); case PART_NAME: return getPartName(); case LAST_ANALYZED: return Long.valueOf(getLastAnalyzed()); } throw new IllegalStateException(); }
@Override public PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request) throws MetaException, NoSuchObjectException, TException { String dbName = request.getDbName().toLowerCase(); String tblName = request.getTblName().toLowerCase(); startFunction("get_partitions_statistics_req: db=" + dbName + " table=" + tblName); PartitionsStatsResult result = null; List<String> lowerCaseColNames = new ArrayList<String>(request.getColNames().size()); for (String colName : request.getColNames()) { lowerCaseColNames.add(colName.toLowerCase()); } List<String> lowerCasePartNames = new ArrayList<String>(request.getPartNames().size()); for (String partName : request.getPartNames()) { lowerCasePartNames.add(lowerCaseConvertPartName(partName)); } try { List<ColumnStatistics> stats = getMS().getPartitionColumnStatistics( dbName, tblName, lowerCasePartNames, lowerCaseColNames); Map<String, List<ColumnStatisticsObj>> map = new HashMap<String, List<ColumnStatisticsObj>>(); for (ColumnStatistics stat : stats) { map.put(stat.getStatsDesc().getPartName(), stat.getStatsObj()); } result = new PartitionsStatsResult(map); } finally { endFunction("get_partitions_statistics_req: ", result == null, null, tblName); } return result; }
@Override public PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request) throws MetaException, NoSuchObjectException, TException { String dbName = request.getDbName().toLowerCase(); String tblName = request.getTblName().toLowerCase(); startFunction("get_partitions_statistics_req: db=" + dbName + " table=" + tblName); PartitionsStatsResult result = null; List<String> lowerCaseColNames = new ArrayList<String>(request.getColNames().size()); for (String colName : request.getColNames()) { lowerCaseColNames.add(colName.toLowerCase()); } List<String> lowerCasePartNames = new ArrayList<String>(request.getPartNames().size()); for (String partName : request.getPartNames()) { lowerCasePartNames.add(lowerCaseConvertPartName(partName)); } try { List<ColumnStatistics> stats = getMS().getPartitionColumnStatistics( dbName, tblName, lowerCasePartNames, lowerCaseColNames); Map<String, List<ColumnStatisticsObj>> map = new HashMap<String, List<ColumnStatisticsObj>>(); for (ColumnStatistics stat : stats) { map.put(stat.getStatsDesc().getPartName(), stat.getStatsObj()); } result = new PartitionsStatsResult(map); } finally { endFunction("get_partitions_statistics_req: ", result == null, null, tblName); } return result; }
@Override public PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request) throws TException { String catName = request.isSetCatName() ? request.getCatName().toLowerCase() : getDefaultCatalog(conf); String dbName = request.getDbName().toLowerCase(); String tblName = request.getTblName().toLowerCase(); startFunction("get_partitions_statistics_req", ": table=" + getCatalogQualifiedTableName(catName, dbName, tblName)); PartitionsStatsResult result = null; List<String> lowerCaseColNames = new ArrayList<>(request.getColNames().size()); for (String colName : request.getColNames()) { lowerCaseColNames.add(colName.toLowerCase()); } List<String> lowerCasePartNames = new ArrayList<>(request.getPartNames().size()); for (String partName : request.getPartNames()) { lowerCasePartNames.add(lowerCaseConvertPartName(partName)); } try { List<ColumnStatistics> stats = getMS().getPartitionColumnStatistics( catName, dbName, tblName, lowerCasePartNames, lowerCaseColNames); Map<String, List<ColumnStatisticsObj>> map = new HashMap<>(); for (ColumnStatistics stat : stats) { map.put(stat.getStatsDesc().getPartName(), stat.getStatsObj()); } result = new PartitionsStatsResult(map); } finally { endFunction("get_partitions_statistics_req", result == null, null, tblName); } return result; }
dbName = statsDesc.getDbName().toLowerCase(); tableName = statsDesc.getTableName().toLowerCase(); partName = lowerCaseConvertPartName(statsDesc.getPartName());