use of org.apache.hadoop.hive.metastore.api.LongColumnStatsData in project hive by apache.
the class StatObjectConverter method setFieldsIntoOldStats.
/**
* Set field values in oldStatObj from newStatObj
* @param oldStatObj
* @param newStatObj
*/
public static void setFieldsIntoOldStats(ColumnStatisticsObj oldStatObj, ColumnStatisticsObj newStatObj) {
_Fields typeNew = newStatObj.getStatsData().getSetField();
_Fields typeOld = oldStatObj.getStatsData().getSetField();
typeNew = typeNew == typeOld ? typeNew : null;
switch(typeNew) {
case BOOLEAN_STATS:
BooleanColumnStatsData oldBooleanStatsData = oldStatObj.getStatsData().getBooleanStats();
BooleanColumnStatsData newBooleanStatsData = newStatObj.getStatsData().getBooleanStats();
if (newBooleanStatsData.isSetNumTrues()) {
oldBooleanStatsData.setNumTrues(newBooleanStatsData.getNumTrues());
}
if (newBooleanStatsData.isSetNumFalses()) {
oldBooleanStatsData.setNumFalses(newBooleanStatsData.getNumFalses());
}
if (newBooleanStatsData.isSetNumNulls()) {
oldBooleanStatsData.setNumNulls(newBooleanStatsData.getNumNulls());
}
if (newBooleanStatsData.isSetBitVectors()) {
oldBooleanStatsData.setBitVectors(newBooleanStatsData.getBitVectors());
}
break;
case LONG_STATS:
{
LongColumnStatsData oldLongStatsData = oldStatObj.getStatsData().getLongStats();
LongColumnStatsData newLongStatsData = newStatObj.getStatsData().getLongStats();
if (newLongStatsData.isSetHighValue()) {
oldLongStatsData.setHighValue(newLongStatsData.getHighValue());
}
if (newLongStatsData.isSetLowValue()) {
oldLongStatsData.setLowValue(newLongStatsData.getLowValue());
}
if (newLongStatsData.isSetNumNulls()) {
oldLongStatsData.setNumNulls(newLongStatsData.getNumNulls());
}
if (newLongStatsData.isSetNumDVs()) {
oldLongStatsData.setNumDVs(newLongStatsData.getNumDVs());
}
if (newLongStatsData.isSetBitVectors()) {
oldLongStatsData.setBitVectors(newLongStatsData.getBitVectors());
}
break;
}
case DOUBLE_STATS:
{
DoubleColumnStatsData oldDoubleStatsData = oldStatObj.getStatsData().getDoubleStats();
DoubleColumnStatsData newDoubleStatsData = newStatObj.getStatsData().getDoubleStats();
if (newDoubleStatsData.isSetHighValue()) {
oldDoubleStatsData.setHighValue(newDoubleStatsData.getHighValue());
}
if (newDoubleStatsData.isSetLowValue()) {
oldDoubleStatsData.setLowValue(newDoubleStatsData.getLowValue());
}
if (newDoubleStatsData.isSetNumNulls()) {
oldDoubleStatsData.setNumNulls(newDoubleStatsData.getNumNulls());
}
if (newDoubleStatsData.isSetNumDVs()) {
oldDoubleStatsData.setNumDVs(newDoubleStatsData.getNumDVs());
}
if (newDoubleStatsData.isSetBitVectors()) {
oldDoubleStatsData.setBitVectors(newDoubleStatsData.getBitVectors());
}
break;
}
case STRING_STATS:
{
StringColumnStatsData oldStringStatsData = oldStatObj.getStatsData().getStringStats();
StringColumnStatsData newStringStatsData = newStatObj.getStatsData().getStringStats();
if (newStringStatsData.isSetMaxColLen()) {
oldStringStatsData.setMaxColLen(newStringStatsData.getMaxColLen());
}
if (newStringStatsData.isSetAvgColLen()) {
oldStringStatsData.setAvgColLen(newStringStatsData.getAvgColLen());
}
if (newStringStatsData.isSetNumNulls()) {
oldStringStatsData.setNumNulls(newStringStatsData.getNumNulls());
}
if (newStringStatsData.isSetNumDVs()) {
oldStringStatsData.setNumDVs(newStringStatsData.getNumDVs());
}
if (newStringStatsData.isSetBitVectors()) {
oldStringStatsData.setBitVectors(newStringStatsData.getBitVectors());
}
break;
}
case BINARY_STATS:
BinaryColumnStatsData oldBinaryStatsData = oldStatObj.getStatsData().getBinaryStats();
BinaryColumnStatsData newBinaryStatsData = newStatObj.getStatsData().getBinaryStats();
if (newBinaryStatsData.isSetMaxColLen()) {
oldBinaryStatsData.setMaxColLen(newBinaryStatsData.getMaxColLen());
}
if (newBinaryStatsData.isSetAvgColLen()) {
oldBinaryStatsData.setAvgColLen(newBinaryStatsData.getAvgColLen());
}
if (newBinaryStatsData.isSetNumNulls()) {
oldBinaryStatsData.setNumNulls(newBinaryStatsData.getNumNulls());
}
if (newBinaryStatsData.isSetBitVectors()) {
oldBinaryStatsData.setBitVectors(newBinaryStatsData.getBitVectors());
}
break;
case DECIMAL_STATS:
{
DecimalColumnStatsData oldDecimalStatsData = oldStatObj.getStatsData().getDecimalStats();
DecimalColumnStatsData newDecimalStatsData = newStatObj.getStatsData().getDecimalStats();
if (newDecimalStatsData.isSetHighValue()) {
oldDecimalStatsData.setHighValue(newDecimalStatsData.getHighValue());
}
if (newDecimalStatsData.isSetLowValue()) {
oldDecimalStatsData.setLowValue(newDecimalStatsData.getLowValue());
}
if (newDecimalStatsData.isSetNumNulls()) {
oldDecimalStatsData.setNumNulls(newDecimalStatsData.getNumNulls());
}
if (newDecimalStatsData.isSetNumDVs()) {
oldDecimalStatsData.setNumDVs(newDecimalStatsData.getNumDVs());
}
if (newDecimalStatsData.isSetBitVectors()) {
oldDecimalStatsData.setBitVectors(newDecimalStatsData.getBitVectors());
}
break;
}
case DATE_STATS:
{
DateColumnStatsData oldDateStatsData = oldStatObj.getStatsData().getDateStats();
DateColumnStatsData newDateStatsData = newStatObj.getStatsData().getDateStats();
if (newDateStatsData.isSetHighValue()) {
oldDateStatsData.setHighValue(newDateStatsData.getHighValue());
}
if (newDateStatsData.isSetLowValue()) {
oldDateStatsData.setLowValue(newDateStatsData.getLowValue());
}
if (newDateStatsData.isSetNumNulls()) {
oldDateStatsData.setNumNulls(newDateStatsData.getNumNulls());
}
if (newDateStatsData.isSetNumDVs()) {
oldDateStatsData.setNumDVs(newDateStatsData.getNumDVs());
}
if (newDateStatsData.isSetBitVectors()) {
oldDateStatsData.setBitVectors(newDateStatsData.getBitVectors());
}
break;
}
case TIMESTAMP_STATS:
{
TimestampColumnStatsData oldTimestampStatsData = oldStatObj.getStatsData().getTimestampStats();
TimestampColumnStatsData newTimestampStatsData = newStatObj.getStatsData().getTimestampStats();
if (newTimestampStatsData.isSetHighValue()) {
oldTimestampStatsData.setHighValue(newTimestampStatsData.getHighValue());
}
if (newTimestampStatsData.isSetLowValue()) {
oldTimestampStatsData.setLowValue(newTimestampStatsData.getLowValue());
}
if (newTimestampStatsData.isSetNumNulls()) {
oldTimestampStatsData.setNumNulls(newTimestampStatsData.getNumNulls());
}
if (newTimestampStatsData.isSetNumDVs()) {
oldTimestampStatsData.setNumDVs(newTimestampStatsData.getNumDVs());
}
if (newTimestampStatsData.isSetBitVectors()) {
oldTimestampStatsData.setBitVectors(newTimestampStatsData.getBitVectors());
}
break;
}
default:
throw new IllegalArgumentException("Unknown stats type: " + typeNew.toString());
}
}
use of org.apache.hadoop.hive.metastore.api.LongColumnStatsData in project hive by apache.
the class StatObjectConverter method convertToMPartitionColumnStatistics.
public static MPartitionColumnStatistics convertToMPartitionColumnStatistics(MPartition partition, ColumnStatisticsDesc statsDesc, ColumnStatisticsObj statsObj, String engine) throws MetaException, NoSuchObjectException {
if (statsDesc == null || statsObj == null) {
return null;
}
MPartitionColumnStatistics mColStats = new MPartitionColumnStatistics();
mColStats.setPartition(partition);
mColStats.setCatName(statsDesc.isSetCatName() ? statsDesc.getCatName() : DEFAULT_CATALOG_NAME);
mColStats.setDbName(statsDesc.getDbName());
mColStats.setTableName(statsDesc.getTableName());
mColStats.setPartitionName(statsDesc.getPartName());
mColStats.setLastAnalyzed(statsDesc.getLastAnalyzed());
mColStats.setColName(statsObj.getColName());
mColStats.setColType(statsObj.getColType());
if (statsObj.getStatsData().isSetBooleanStats()) {
BooleanColumnStatsData boolStats = statsObj.getStatsData().getBooleanStats();
mColStats.setBooleanStats(boolStats.isSetNumTrues() ? boolStats.getNumTrues() : null, boolStats.isSetNumFalses() ? boolStats.getNumFalses() : null, boolStats.isSetNumNulls() ? boolStats.getNumNulls() : null);
} else if (statsObj.getStatsData().isSetLongStats()) {
LongColumnStatsData longStats = statsObj.getStatsData().getLongStats();
mColStats.setLongStats(longStats.isSetNumNulls() ? longStats.getNumNulls() : null, longStats.isSetNumDVs() ? longStats.getNumDVs() : null, longStats.isSetBitVectors() ? longStats.getBitVectors() : null, longStats.isSetLowValue() ? longStats.getLowValue() : null, longStats.isSetHighValue() ? longStats.getHighValue() : null);
} else if (statsObj.getStatsData().isSetDoubleStats()) {
DoubleColumnStatsData doubleStats = statsObj.getStatsData().getDoubleStats();
mColStats.setDoubleStats(doubleStats.isSetNumNulls() ? doubleStats.getNumNulls() : null, doubleStats.isSetNumDVs() ? doubleStats.getNumDVs() : null, doubleStats.isSetBitVectors() ? doubleStats.getBitVectors() : null, doubleStats.isSetLowValue() ? doubleStats.getLowValue() : null, doubleStats.isSetHighValue() ? doubleStats.getHighValue() : null);
} else if (statsObj.getStatsData().isSetDecimalStats()) {
DecimalColumnStatsData decimalStats = statsObj.getStatsData().getDecimalStats();
String low = decimalStats.isSetLowValue() ? DecimalUtils.createJdoDecimalString(decimalStats.getLowValue()) : null;
String high = decimalStats.isSetHighValue() ? DecimalUtils.createJdoDecimalString(decimalStats.getHighValue()) : null;
mColStats.setDecimalStats(decimalStats.isSetNumNulls() ? decimalStats.getNumNulls() : null, decimalStats.isSetNumDVs() ? decimalStats.getNumDVs() : null, decimalStats.isSetBitVectors() ? decimalStats.getBitVectors() : null, low, high);
} else if (statsObj.getStatsData().isSetStringStats()) {
StringColumnStatsData stringStats = statsObj.getStatsData().getStringStats();
mColStats.setStringStats(stringStats.isSetNumNulls() ? stringStats.getNumNulls() : null, stringStats.isSetNumDVs() ? stringStats.getNumDVs() : null, stringStats.isSetBitVectors() ? stringStats.getBitVectors() : null, stringStats.isSetMaxColLen() ? stringStats.getMaxColLen() : null, stringStats.isSetAvgColLen() ? stringStats.getAvgColLen() : null);
} else if (statsObj.getStatsData().isSetBinaryStats()) {
BinaryColumnStatsData binaryStats = statsObj.getStatsData().getBinaryStats();
mColStats.setBinaryStats(binaryStats.isSetNumNulls() ? binaryStats.getNumNulls() : null, binaryStats.isSetMaxColLen() ? binaryStats.getMaxColLen() : null, binaryStats.isSetAvgColLen() ? binaryStats.getAvgColLen() : null);
} else if (statsObj.getStatsData().isSetDateStats()) {
DateColumnStatsData dateStats = statsObj.getStatsData().getDateStats();
mColStats.setDateStats(dateStats.isSetNumNulls() ? dateStats.getNumNulls() : null, dateStats.isSetNumDVs() ? dateStats.getNumDVs() : null, dateStats.isSetBitVectors() ? dateStats.getBitVectors() : null, dateStats.isSetLowValue() ? dateStats.getLowValue().getDaysSinceEpoch() : null, dateStats.isSetHighValue() ? dateStats.getHighValue().getDaysSinceEpoch() : null);
} else if (statsObj.getStatsData().isSetTimestampStats()) {
TimestampColumnStatsData timestampStats = statsObj.getStatsData().getTimestampStats();
mColStats.setTimestampStats(timestampStats.isSetNumNulls() ? timestampStats.getNumNulls() : null, timestampStats.isSetNumDVs() ? timestampStats.getNumDVs() : null, timestampStats.isSetBitVectors() ? timestampStats.getBitVectors() : null, timestampStats.isSetLowValue() ? timestampStats.getLowValue().getSecondsSinceEpoch() : null, timestampStats.isSetHighValue() ? timestampStats.getHighValue().getSecondsSinceEpoch() : null);
}
mColStats.setEngine(engine);
return mColStats;
}
use of org.apache.hadoop.hive.metastore.api.LongColumnStatsData in project hive by apache.
the class TestObjectStore method createPartitionedTable.
/**
* Creates DB1 database, TABLE1 table with 3 partitions.
* @param withPrivileges Should we create privileges as well
* @param withStatistics Should we create statitics as well
*/
private void createPartitionedTable(boolean withPrivileges, boolean withStatistics) throws Exception {
Database db1 = new DatabaseBuilder().setName(DB1).setDescription("description").setLocation("locationurl").build(conf);
try (AutoCloseable c = deadline()) {
objectStore.createDatabase(db1);
}
Table tbl1 = new TableBuilder().setDbName(DB1).setTableName(TABLE1).addCol("test_col1", "int").addCol("test_col2", "int").addPartCol("test_part_col", "int").addCol("test_bucket_col", "int", "test bucket col comment").addCol("test_skewed_col", "int", "test skewed col comment").addCol("test_sort_col", "int", "test sort col comment").build(conf);
try (AutoCloseable c = deadline()) {
objectStore.createTable(tbl1);
}
PrivilegeBag privilegeBag = new PrivilegeBag();
// Create partitions for the partitioned table
for (int i = 0; i < 3; i++) {
Partition part = new PartitionBuilder().inTable(tbl1).addValue("a" + i).addSerdeParam("serdeParam", "serdeParamValue").addStorageDescriptorParam("sdParam", "sdParamValue").addBucketCol("test_bucket_col").addSkewedColName("test_skewed_col").addSortCol("test_sort_col", 1).build(conf);
try (AutoCloseable c = deadline()) {
objectStore.addPartition(part);
}
if (withPrivileges) {
HiveObjectRef partitionReference = new HiveObjectRefBuilder().buildPartitionReference(part);
HiveObjectRef partitionColumnReference = new HiveObjectRefBuilder().buildPartitionColumnReference(tbl1, "test_part_col", part.getValues());
PrivilegeGrantInfo privilegeGrantInfo = new PrivilegeGrantInfoBuilder().setPrivilege("a").build();
HiveObjectPrivilege partitionPriv = new HiveObjectPrivilegeBuilder().setHiveObjectRef(partitionReference).setPrincipleName("a").setPrincipalType(PrincipalType.USER).setGrantInfo(privilegeGrantInfo).build();
privilegeBag.addToPrivileges(partitionPriv);
HiveObjectPrivilege partitionColPriv = new HiveObjectPrivilegeBuilder().setHiveObjectRef(partitionColumnReference).setPrincipleName("a").setPrincipalType(PrincipalType.USER).setGrantInfo(privilegeGrantInfo).build();
privilegeBag.addToPrivileges(partitionColPriv);
}
if (withStatistics) {
ColumnStatistics stats = new ColumnStatistics();
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);
List<ColumnStatisticsObj> statsObjList = new ArrayList<>(1);
stats.setStatsObj(statsObjList);
stats.setEngine(ENGINE);
ColumnStatisticsData data = new ColumnStatisticsData();
LongColumnStatsData longStats = new LongColumnStatsData();
longStats.setNumNulls(1);
longStats.setNumDVs(2);
longStats.setLowValue(3);
longStats.setHighValue(4);
data.setLongStats(longStats);
ColumnStatisticsObj partStats = new ColumnStatisticsObj("test_part_col", "int", data);
statsObjList.add(partStats);
try (AutoCloseable c = deadline()) {
objectStore.updatePartitionColumnStatistics(stats, part.getValues(), null, -1);
}
}
}
if (withPrivileges) {
try (AutoCloseable c = deadline()) {
objectStore.grantPrivileges(privilegeBag);
}
}
}
use of org.apache.hadoop.hive.metastore.api.LongColumnStatsData in project hive by apache.
the class TestOldSchema method testPartitionOps.
/**
* Tests partition operations
*/
@Ignore("HIVE-19509: Disable tests that are failing continuously")
@Test
public void testPartitionOps() throws Exception {
String dbName = "default";
String tableName = "snp";
Database db1 = new DatabaseBuilder().setName(dbName).setDescription("description").setLocation("locationurl").build(conf);
store.createDatabase(db1);
long now = System.currentTimeMillis();
List<FieldSchema> cols = new ArrayList<>();
cols.add(new FieldSchema("col1", "long", "nocomment"));
SerDeInfo serde = new SerDeInfo("serde", "seriallib", null);
StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, serde, null, null, Collections.emptyMap());
List<FieldSchema> partCols = new ArrayList<>();
partCols.add(new FieldSchema("ds", "string", ""));
Table table = new Table(tableName, dbName, "me", (int) now, (int) now, 0, sd, partCols, Collections.emptyMap(), null, null, null);
store.createTable(table);
Deadline.startTimer("getPartition");
for (int i = 0; i < 10; i++) {
List<String> partVal = new ArrayList<>();
partVal.add(String.valueOf(i));
StorageDescriptor psd = new StorageDescriptor(sd);
psd.setLocation("file:/tmp/default/hit/ds=" + partVal);
Partition part = new Partition(partVal, dbName, tableName, (int) now, (int) now, psd, Collections.emptyMap());
part.setCatName(DEFAULT_CATALOG_NAME);
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();
obj.setColName("col1");
obj.setColType("bigint");
ColumnStatisticsData data = new ColumnStatisticsData();
LongColumnStatsData dcsd = new LongColumnStatsData();
dcsd.setHighValue(1000 + i);
dcsd.setLowValue(-1000 - i);
dcsd.setNumNulls(i);
dcsd.setNumDVs(10 * i + 1);
dcsd.setBitVectors(bitVectors[0]);
data.setLongStats(dcsd);
obj.setStatsData(data);
cs.addToStatsObj(obj);
cs.setEngine(ENGINE);
store.updatePartitionColumnStatistics(cs, partVal, null, -1);
}
Checker statChecker = new Checker() {
@Override
public void checkStats(AggrStats aggrStats) throws Exception {
Assert.assertEquals(10, aggrStats.getPartsFound());
Assert.assertEquals(1, aggrStats.getColStatsSize());
ColumnStatisticsObj cso = aggrStats.getColStats().get(0);
Assert.assertEquals("col1", cso.getColName());
Assert.assertEquals("bigint", cso.getColType());
LongColumnStatsData lcsd = cso.getStatsData().getLongStats();
Assert.assertEquals(1009, lcsd.getHighValue(), 0.01);
Assert.assertEquals(-1009, lcsd.getLowValue(), 0.01);
Assert.assertEquals(45, lcsd.getNumNulls());
Assert.assertEquals(91, lcsd.getNumDVs());
}
};
List<String> partNames = new ArrayList<>();
for (int i = 0; i < 10; i++) {
partNames.add("ds=" + i);
}
AggrStats aggrStats = store.get_aggr_stats_for(DEFAULT_CATALOG_NAME, dbName, tableName, partNames, Arrays.asList("col1"), ENGINE);
statChecker.checkStats(aggrStats);
}
use of org.apache.hadoop.hive.metastore.api.LongColumnStatsData in project hive by apache.
the class HBaseUtils method statsForOneColumnFromProtoBuf.
private static ColumnStatisticsObj statsForOneColumnFromProtoBuf(ColumnStatistics partitionColumnStats, HbaseMetastoreProto.ColumnStats proto) throws IOException {
ColumnStatisticsObj colStats = new ColumnStatisticsObj();
long lastAnalyzed = proto.getLastAnalyzed();
if (partitionColumnStats != null) {
partitionColumnStats.getStatsDesc().setLastAnalyzed(Math.max(lastAnalyzed, partitionColumnStats.getStatsDesc().getLastAnalyzed()));
}
colStats.setColType(proto.getColumnType());
colStats.setColName(proto.getColumnName());
ColumnStatisticsData colData = new ColumnStatisticsData();
if (proto.hasBoolStats()) {
BooleanColumnStatsData boolData = new BooleanColumnStatsData();
boolData.setNumTrues(proto.getBoolStats().getNumTrues());
boolData.setNumFalses(proto.getBoolStats().getNumFalses());
boolData.setNumNulls(proto.getNumNulls());
colData.setBooleanStats(boolData);
} else if (proto.hasLongStats()) {
LongColumnStatsData longData = new LongColumnStatsData();
if (proto.getLongStats().hasLowValue()) {
longData.setLowValue(proto.getLongStats().getLowValue());
}
if (proto.getLongStats().hasHighValue()) {
longData.setHighValue(proto.getLongStats().getHighValue());
}
longData.setNumNulls(proto.getNumNulls());
longData.setNumDVs(proto.getNumDistinctValues());
longData.setBitVectors(proto.getBitVectors());
colData.setLongStats(longData);
} else if (proto.hasDoubleStats()) {
DoubleColumnStatsData doubleData = new DoubleColumnStatsData();
if (proto.getDoubleStats().hasLowValue()) {
doubleData.setLowValue(proto.getDoubleStats().getLowValue());
}
if (proto.getDoubleStats().hasHighValue()) {
doubleData.setHighValue(proto.getDoubleStats().getHighValue());
}
doubleData.setNumNulls(proto.getNumNulls());
doubleData.setNumDVs(proto.getNumDistinctValues());
doubleData.setBitVectors(proto.getBitVectors());
colData.setDoubleStats(doubleData);
} else if (proto.hasStringStats()) {
StringColumnStatsData stringData = new StringColumnStatsData();
stringData.setMaxColLen(proto.getStringStats().getMaxColLength());
stringData.setAvgColLen(proto.getStringStats().getAvgColLength());
stringData.setNumNulls(proto.getNumNulls());
stringData.setNumDVs(proto.getNumDistinctValues());
stringData.setBitVectors(proto.getBitVectors());
colData.setStringStats(stringData);
} else if (proto.hasBinaryStats()) {
BinaryColumnStatsData binaryData = new BinaryColumnStatsData();
binaryData.setMaxColLen(proto.getBinaryStats().getMaxColLength());
binaryData.setAvgColLen(proto.getBinaryStats().getAvgColLength());
binaryData.setNumNulls(proto.getNumNulls());
colData.setBinaryStats(binaryData);
} else if (proto.hasDecimalStats()) {
DecimalColumnStatsData decimalData = new DecimalColumnStatsData();
if (proto.getDecimalStats().hasHighValue()) {
Decimal hiVal = new Decimal();
hiVal.setUnscaled(proto.getDecimalStats().getHighValue().getUnscaled().toByteArray());
hiVal.setScale((short) proto.getDecimalStats().getHighValue().getScale());
decimalData.setHighValue(hiVal);
}
if (proto.getDecimalStats().hasLowValue()) {
Decimal loVal = new Decimal();
loVal.setUnscaled(proto.getDecimalStats().getLowValue().getUnscaled().toByteArray());
loVal.setScale((short) proto.getDecimalStats().getLowValue().getScale());
decimalData.setLowValue(loVal);
}
decimalData.setNumNulls(proto.getNumNulls());
decimalData.setNumDVs(proto.getNumDistinctValues());
decimalData.setBitVectors(proto.getBitVectors());
colData.setDecimalStats(decimalData);
} else {
throw new RuntimeException("Woh, bad. Unknown stats type!");
}
colStats.setStatsData(colData);
return colStats;
}
Aggregations