@Override public BooleanStatistics copy() { return new BooleanStatistics(this); } }
@Override public void mergeStatisticsMinMax(Statistics stats) { BooleanStatistics boolStats = (BooleanStatistics)stats; if (!this.hasNonNullValue()) { initializeStats(boolStats.getMin(), boolStats.getMax()); } else { updateStats(boolStats.getMin(), boolStats.getMax()); } }
private BooleanStatistics(BooleanStatistics other) { super(other.type()); if (other.hasNonNullValue()) { initializeStats(other.min, other.max); } setNumNulls(other.getNumNulls()); }
@Override public void updateStats(boolean value) { if (!this.hasNonNullValue()) { initializeStats(value, value); } else { updateStats(value, value); } }
/** * IS FALSE predicate. */ private static LogicalExpression createIsFalsePredicate(LogicalExpression expr) { return new ParquetIsPredicate<Boolean>(expr, (exprStat, evaluator) -> { if (isAllNulls(exprStat, evaluator.getRowCount())) { return RowsMatch.NONE; } if (!exprStat.hasNonNullValue()) { return RowsMatch.SOME; } if (((BooleanStatistics) exprStat).getMin()) { return RowsMatch.NONE; } return ((BooleanStatistics) exprStat).getMax() ? RowsMatch.SOME : checkNull(exprStat); }); }
private static BooleanStatistics booleanColumnStats(boolean minimum, boolean maximum) { BooleanStatistics statistics = new BooleanStatistics(); statistics.setMinMax(minimum, maximum); return statistics; }
public void initializeStats(boolean min_value, boolean max_value) { min = min_value; max = max_value; this.markAsNotEmpty(); }
public void updateStats(boolean min_value, boolean max_value) { if (comparator().compare(min, min_value) > 0) { min = min_value; } if (comparator().compare(max, max_value) < 0) { max = max_value; } }
@SuppressWarnings("unchecked") private Statistics<T> getStatistics(boolean min, boolean max) { Statistics<T> statistics = Statistics.getStatsBasedOnType(PrimitiveType.PrimitiveTypeName.BOOLEAN); ((BooleanStatistics) statistics).setMinMax(min, max); return statistics; }
@Override public boolean isSmallerThan(long size) { return !hasNonNullValue() || (2 < size); }
/** * IS NOT FALSE predicate. */ private static LogicalExpression createIsNotFalsePredicate(LogicalExpression expr) { return new ParquetIsPredicate<Boolean>(expr, (exprStat, evaluator) -> { if (isAllNulls(exprStat, evaluator.getRowCount())) { return RowsMatch.ALL; } if (!exprStat.hasNonNullValue()) { return RowsMatch.SOME; } if (!((BooleanStatistics) exprStat).getMax()) { return hasNoNulls(exprStat) ? RowsMatch.NONE : RowsMatch.SOME; } return ((BooleanStatistics) exprStat).getMin() ? RowsMatch.ALL : RowsMatch.SOME; }); }
@Override public void updateStats(boolean value) { if (!this.hasNonNullValue()) { initializeStats(value, value); } else { updateStats(value, value); } }
public void setMinMax(boolean min, boolean max) { this.max = max; this.min = min; this.markAsNotEmpty(); }
public void updateStats(boolean min_value, boolean max_value) { if (comparator().compare(min, min_value) > 0) { min = min_value; } if (comparator().compare(max, max_value) < 0) { max = max_value; } }
break; case BIT: ((BooleanStatistics) stat).setMinMax(Boolean.parseBoolean(min.toString()), Boolean.parseBoolean(max.toString())); break; case VARCHAR:
@Override public boolean isSmallerThan(long size) { return !hasNonNullValue() || (2 < size); }
@Override public void mergeStatisticsMinMax(Statistics stats) { BooleanStatistics boolStats = (BooleanStatistics)stats; if (!this.hasNonNullValue()) { initializeStats(boolStats.getMin(), boolStats.getMax()); } else { updateStats(boolStats.getMin(), boolStats.getMax()); } }
/** * IS TRUE predicate. */ private static LogicalExpression createIsTruePredicate(LogicalExpression expr) { return new ParquetIsPredicate<Boolean>(expr, (exprStat, evaluator) -> { if (isAllNulls(exprStat, evaluator.getRowCount())) { return RowsMatch.NONE; } if (!exprStat.hasNonNullValue()) { return RowsMatch.SOME; } if (!((BooleanStatistics) exprStat).getMax()) { return RowsMatch.NONE; } return ((BooleanStatistics) exprStat).getMin() ? checkNull(exprStat) : RowsMatch.SOME; }); }
@Override public BooleanStatistics copy() { return new BooleanStatistics(this); } }
private BooleanStatistics(BooleanStatistics other) { super(other.type()); if (other.hasNonNullValue()) { initializeStats(other.min, other.max); } setNumNulls(other.getNumNulls()); }