private static BinaryStatistics stringColumnStats(String minimum, String maximum) { BinaryStatistics statistics = new BinaryStatistics(); statistics.setMinMax(Binary.fromString(minimum), Binary.fromString(maximum)); return statistics; }
@Override public void mergeStatisticsMinMax(Statistics stats) { BinaryStatistics binaryStats = (BinaryStatistics)stats; if (!this.hasNonNullValue()) { initializeStats(binaryStats.getMin(), binaryStats.getMax()); } else { updateStats(binaryStats.getMin(), binaryStats.getMax()); } }
@Override public void updateStats(Binary value) { if (!this.hasNonNullValue()) { initializeStats(value, value); } else { updateStats(value, value); } }
@Override public String toString() { if (this.hasNonNullValue()) return String.format("min: %s, max: %s, num_nulls: %d", min.toStringUsingUTF8(), max.toStringUsingUTF8(), this.getNumNulls()); else if (!this.isEmpty()) return String.format("num_nulls: %d, min/max not defined", this.getNumNulls()); else return "no stats for this column"; }
/** * Returns the typed statistics object based on the passed type parameter * @param type PrimitiveTypeName type of the column * @return instance of a typed statistics class */ public static Statistics getStatsBasedOnType(PrimitiveTypeName type) { switch(type) { case INT32: return new IntStatistics(); case INT64: return new LongStatistics(); case FLOAT: return new FloatStatistics(); case DOUBLE: return new DoubleStatistics(); case BOOLEAN: return new BooleanStatistics(); case BINARY: return new BinaryStatistics(); case INT96: return new BinaryStatistics(); case FIXED_LEN_BYTE_ARRAY: return new BinaryStatistics(); default: throw new UnknownColumnTypeException(type); } }
public void initializeStats(Binary min_value, Binary max_value) { min = min_value; max = max_value; this.markAsNotEmpty(); }
public void setMinMax(Binary min, Binary max) { this.max = max; this.min = min; this.markAsNotEmpty(); } }
private static BinaryStatistics stringColumnStats(String minimum, String maximum) { BinaryStatistics statistics = new BinaryStatistics(); statistics.setMinMax(Binary.fromString(minimum), Binary.fromString(maximum)); return statistics; } }
@Override public void setMinMaxFromBytes(byte[] minBytes, byte[] maxBytes) { max = Binary.fromByteArray(maxBytes); min = Binary.fromByteArray(minBytes); this.markAsNotEmpty(); }
private static BinaryStatistics stringColumnStats(String minimum, String maximum) { BinaryStatistics statistics = new BinaryStatistics(); statistics.setMinMax(Binary.fromString(minimum), Binary.fromString(maximum)); return statistics; }