private static BooleanStatistics toBooleanStatistics(OrcProto.BucketStatistics bucketStatistics) { if (bucketStatistics.getCountCount() == 0) { return null; } return new BooleanStatistics(bucketStatistics.getCount(0)); }
@Override protected boolean chunkMatchesStats(List<Boolean> chunk, ColumnStatistics columnStatistics) { assertNull(columnStatistics.getIntegerStatistics()); assertNull(columnStatistics.getDoubleStatistics()); assertNull(columnStatistics.getStringStatistics()); assertNull(columnStatistics.getDateStatistics()); // check basic statistics if (!super.chunkMatchesStats(chunk, columnStatistics)) { return false; } // statistics can be missing for any reason if (columnStatistics.getBooleanStatistics() != null) { if (columnStatistics.getBooleanStatistics().getTrueValueCount() != Iterables.size(filter(chunk, equalTo(Boolean.TRUE)))) { return false; } } return true; } }
BooleanStatistics booleanStatistics = columnStatistics.getBooleanStatistics(); boolean hasTrueValues = (booleanStatistics.getTrueValueCount() != 0); boolean hasFalseValues = (columnStatistics.getNumberOfValues() != booleanStatistics.getTrueValueCount()); if (hasTrueValues && hasFalseValues) { return Domain.all(BOOLEAN);
private static BooleanStatistics toBooleanStatistics(OrcProto.BucketStatistics bucketStatistics) { if (bucketStatistics.getCountCount() == 0) { return null; } return new BooleanStatistics(bucketStatistics.getCount(0)); }
private static ColumnStatistics booleanColumnStats(Long numberOfValues, Long trueValueCount) { BooleanStatistics booleanStatistics = null; if (trueValueCount != null) { booleanStatistics = new BooleanStatistics(trueValueCount); } return new ColumnStatistics(numberOfValues, booleanStatistics, null, null, null, null); }