private ColumnStatisticsDesc getColumnStatsDesc(String dbName, String tableName, String partName, boolean isTblLevel) { ColumnStatisticsDesc statsDesc = new ColumnStatisticsDesc(); statsDesc.setDbName(dbName); statsDesc.setTableName(tableName); statsDesc.setIsTblLevel(isTblLevel); if (!isTblLevel) { statsDesc.setPartName(partName); } else { statsDesc.setPartName(null); } return statsDesc; }
List<ColumnStatisticsObj> statsObjs = colStats.getStatsObj(); ColumnStatisticsDesc statsDesc = colStats.getStatsDesc(); String catName = statsDesc.isSetCatName() ? statsDesc.getCatName() : getDefaultCatalog(conf); Table table = ensureGetTable(catName, statsDesc.getDbName(), statsDesc.getTableName()); Partition partition = convertToPart(getMPartition( catName, statsDesc.getDbName(), statsDesc.getTableName(), partVals)); List<String> colNames = new ArrayList<>(); .getPartName(), colNames); catName, statsDesc.getDbName(), statsDesc.getTableName(), partVals); if (partition == null) { throw new NoSuchObjectException("Partition for which stats is gathered doesn't exist."); + statsDesc.getDbName() + "." + statsDesc.getTableName() + "." + statsDesc.getPartName());
case IS_TBL_LEVEL: if (value == null) { unsetIsTblLevel(); } else { setIsTblLevel((Boolean)value); unsetDbName(); } else { setDbName((String)value); unsetTableName(); } else { setTableName((String)value); unsetPartName(); } else { setPartName((String)value); unsetLastAnalyzed(); } else { setLastAnalyzed((Long)value); unsetCatName(); } else { setCatName((String)value);
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(); }
dbName = statsDesc.getDbName().toLowerCase(); tableName = statsDesc.getTableName().toLowerCase(); partName = lowerCaseConvertPartName(statsDesc.getPartName()); statsDesc.setDbName(dbName); statsDesc.setTableName(tableName); statsDesc.setPartName(partName); statsDesc.setLastAnalyzed(time);
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()); }
String colName = null; ColumnStatisticsDesc statsDesc = colStats.getStatsDesc(); dbName = statsDesc.getDbName().toLowerCase(); tableName = statsDesc.getTableName().toLowerCase(); statsDesc.setDbName(dbName); statsDesc.setTableName(tableName); long time = System.currentTimeMillis() / 1000; statsDesc.setLastAnalyzed(time);
@Override public void setPartitionColumnStatistics(String databaseName, String tableName, String partitionName, List<ColumnStatisticsObj> statistics) throws TException { ColumnStatisticsDesc statisticsDescription = new ColumnStatisticsDesc(false, databaseName, tableName); statisticsDescription.setPartName(partitionName); ColumnStatistics request = new ColumnStatistics(statisticsDescription, statistics); client.update_partition_column_statistics(request); }
ColumnStatisticsDesc desc = new ColumnStatisticsDesc(); desc.setCatName(tbl1.getCatName()); desc.setDbName(tbl1.getDbName()); desc.setTableName(tbl1.getTableName()); desc.setPartName("test_part_col=a" + i); stats.setStatsDesc(desc);
/** {@inheritDoc} */ @Override public boolean setPartitionColumnStatistics(SetPartitionsStatsRequest request) throws NoSuchObjectException, InvalidObjectException, MetaException, TException, InvalidInputException { if (request.getColStatsSize() == 1) { ColumnStatistics colStats = request.getColStatsIterator().next(); ColumnStatisticsDesc desc = colStats.getStatsDesc(); String dbName = desc.getDbName().toLowerCase(); String tableName = desc.getTableName().toLowerCase(); if (getTempTable(dbName, tableName) != null) { return updateTempTableColumnStats(dbName, tableName, colStats); } } return super.setPartitionColumnStatistics(request); }
private ColumnStatistics buildStatsForOneTableOrPartition(String catName, String dbName, String tableName, String partName, Collection<Column> cols) { ColumnStatisticsDesc desc = new ColumnStatisticsDesc(partName == null, dbName, tableName); if (!NO_CAT.equals(catName)) desc.setCatName(catName); if (partName != null) desc.setPartName(partName); List<ColumnStatisticsObj> objs = new ArrayList<>(cols.size()); for (Column col : cols) objs.add(col.generate()); return new ColumnStatistics(desc, objs); }
@Override public List<Task<? extends Serializable>> handle(Context context) throws SemanticException { UpdatePartitionColumnStatMessage upcsm = deserializer.getUpdatePartitionColumnStatMessage(context.dmd.getPayload()); // Update tablename and database name in the statistics object ColumnStatistics colStats = upcsm.getColumnStatistics(); ColumnStatisticsDesc colStatsDesc = colStats.getStatsDesc(); if (!context.isTableNameEmpty()) { colStatsDesc.setTableName(context.tableName); } if (!context.isDbNameEmpty()) { colStatsDesc.setDbName(context.dbName); updatedMetadata.set(context.dmd.getEventTo().toString(), context.dbName, context.tableName, null); } return Collections.singletonList(TaskFactory.get(new ColumnStatsUpdateWork(colStats), context.hiveConf)); } }
String dbName = statsDesc.getDbName(); String tableName = statsDesc.getTableName(); MTable table = getMTable(dbName, tableName); mColStats.setDbName(statsDesc.getDbName()); mColStats.setTableName(statsDesc.getTableName()); mColStats.setLastAnalyzed(statsDesc.getLastAnalyzed()); mColStats.setColName(statsObj.getColName()); mColStats.setColType(statsObj.getColType());
ColumnStatisticsDesc colStatsDesc = new ColumnStatisticsDesc(colStats.getStatsDesc()); colStatsDesc.setTableName(tblDesc.getTableName()); colStatsDesc.setDbName(tblDesc.getDatabaseName()); partDesc.setColStats(new ColumnStatistics(colStatsDesc, colStats.getStatsObj()));
store.addPartition(part); ColumnStatistics cs = new ColumnStatistics(); ColumnStatisticsDesc desc = new ColumnStatisticsDesc(false, dbName, tableName); desc.setLastAnalyzed(now); desc.setPartName("ds=" + String.valueOf(i)); cs.setStatsDesc(desc); ColumnStatisticsObj obj = new ColumnStatisticsObj();
ColumnStatisticsDesc colStatsDesc = new ColumnStatisticsDesc(colStats.getStatsDesc()); colStatsDesc.setCatName(tbl.getCatName()); colStatsDesc.setDbName(getTableName()); colStatsDesc.setDbName(getDatabaseName()); tbl.getTTable().setColStats(new ColumnStatistics(colStatsDesc, colStats.getStatsObj()));
public ColumnStatisticsDesc deepCopy() { return new ColumnStatisticsDesc(this); }
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; }
return null; ColumnStatisticsDesc csd = new ColumnStatisticsDesc(true, dbName, tableName); csd.setCatName(catName); ColumnStatistics result = makeColumnStats(list, csd, 0); b.closeAllQueries();
colStats.getStatsDesc().getCatName(), colStats.getStatsDesc().getDbName(), colStats.getStatsDesc().getTableName())); parameters = getMS().updateTableColumnStatistics(colStats, validWriteIds, writeId); if (parameters != null) { Table tableObj = getMS().getTable(colStats.getStatsDesc().getCatName(), colStats.getStatsDesc().getDbName(), colStats.getStatsDesc().getTableName(), validWriteIds); if (transactionalListeners != null && !transactionalListeners.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(transactionalListeners, colStats.getStatsDesc().getTableName());