public static void getMergableCols(ColumnStatistics csNew, Map<String, String> parameters) { List<ColumnStatisticsObj> list = new ArrayList<>(); for (int index = 0; index < csNew.getStatsObj().size(); index++) { ColumnStatisticsObj statsObjNew = csNew.getStatsObj().get(index); // canColumnStatsMerge guarantees that it is accurate before we do merge if (StatsSetupConst.canColumnStatsMerge(parameters, statsObjNew.getColName())) { list.add(statsObjNew); } // in all the other cases, we can not merge } csNew.setStatsObj(list); }
ColumnStatistics colStats = new ColumnStatistics(); colStats.setStatsDesc(statsDesc); colStats.setStatsObj(statsObjs); stats.add(colStats);
private ColumnStatistics makeColumnStats( List<Object[]> list, ColumnStatisticsDesc csd, int offset) throws MetaException { ColumnStatistics result = new ColumnStatistics(); result.setStatsDesc(csd); List<ColumnStatisticsObj> csos = new ArrayList<ColumnStatisticsObj>(list.size()); for (Object[] row : list) { // LastAnalyzed is stored per column but thrift has it per several; // get the lowest for now as nobody actually uses this field. Object laObj = row[offset + 15]; if (laObj != null && (!csd.isSetLastAnalyzed() || csd.getLastAnalyzed() > MetastoreDirectSqlUtils .extractSqlLong(laObj))) { csd.setLastAnalyzed(MetastoreDirectSqlUtils.extractSqlLong(laObj)); } csos.add(prepareCSObj(row, offset)); Deadline.checkTimeout(); } result.setStatsObj(csos); return result; }
csNew.setStatsObj(list);
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()); }
public void setFieldValue(_Fields field, Object value) { switch (field) { case STATS_DESC: if (value == null) { unsetStatsDesc(); } else { setStatsDesc((ColumnStatisticsDesc)value); } break; case STATS_OBJ: if (value == null) { unsetStatsObj(); } else { setStatsObj((List<ColumnStatisticsObj>)value); } break; case IS_STATS_COMPLIANT: if (value == null) { unsetIsStatsCompliant(); } else { setIsStatsCompliant((Boolean)value); } break; } }
if (isInvalidTxnStats) { csNew.setStatsObj(Lists.newArrayList()); } else {
ColumnStatistics colStats = new ColumnStatistics(); colStats.setStatsDesc(statsDesc); colStats.setStatsObj(statsObjs); stats.add(colStats);
partColStats.setStatsObj(newStatsObjs); newPartsColStats = partColStats;
statsDesc.setDbName(newDbName); statsDesc.setTableName(newTableName); colStats.setStatsObj(newStatsObjs); msdb.updateTableColumnStatistics(colStats, validWriteIds, newTable.getWriteId());
if (isInvalidTxnStats) { firstColStats.setStatsObj(Lists.newArrayList()); } else { Table t = getTable(catName, dbName, tableName);
stats.setStatsObj(colStatObjs);
stats.setStatsObj(colStatObjs);
stats.setStatsObj(colStatObjs);
stats.setStatsObj(colStatObjs);
colStats.setStatsObj(statsObjs); colStats.setStatsObj(statsObjs); colStats.setStatsObj(statsObjs);
stats.setStatsObj(statsObjList);
public static void getMergableCols(ColumnStatistics csNew, Map<String, String> parameters) { List<ColumnStatisticsObj> list = new ArrayList<>(); for (int index = 0; index < csNew.getStatsObj().size(); index++) { ColumnStatisticsObj statsObjNew = csNew.getStatsObj().get(index); // canColumnStatsMerge guarantees that it is accurate before we do merge if (StatsSetupConst.canColumnStatsMerge(parameters, statsObjNew.getColName())) { list.add(statsObjNew); } // in all the other cases, we can not merge } csNew.setStatsObj(list); }
private ColumnStatistics convertToTableColumnStatistics(MTableColumnStatistics mStatsObj) throws MetaException { if (mStatsObj == null) { return null; } ColumnStatisticsDesc statsDesc = getTableColumnStatisticsDesc(mStatsObj); ColumnStatisticsObj statsObj = getTableColumnStatisticsObj(mStatsObj); List<ColumnStatisticsObj> statsObjs = new ArrayList<ColumnStatisticsObj>(); statsObjs.add(statsObj); ColumnStatistics colStats = new ColumnStatistics(); colStats.setStatsDesc(statsDesc); colStats.setStatsObj(statsObjs); return colStats; }
private ColumnStatistics convertToPartColumnStatistics(MPartitionColumnStatistics mStatsObj) { if (mStatsObj == null) { return null; } ColumnStatisticsDesc statsDesc = getPartitionColumnStatisticsDesc(mStatsObj); ColumnStatisticsObj statsObj = getPartitionColumnStatisticsObj(mStatsObj); List<ColumnStatisticsObj> statsObjs = new ArrayList<ColumnStatisticsObj>(); statsObjs.add(statsObj); ColumnStatistics colStats = new ColumnStatistics(); colStats.setStatsDesc(statsDesc); colStats.setStatsObj(statsObjs); return colStats; }