@Test public void testCastUnknown() { assertCalculate(new Cast(new SymbolReference("a"), "bigint"), PlanNodeStatsEstimate.unknown()) .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown() .dataSizeUnknown(); }
@Test public void testCastDoubleToShortRangeUnknownDistinctValuesCount() { PlanNodeStatsEstimate inputStatistics = PlanNodeStatsEstimate.builder() .addSymbolStatistics(new Symbol("a"), SymbolStatsEstimate.builder() .setNullsFraction(0.3) .setLowValue(1.6) .setHighValue(3.3) .setAverageRowSize(2.0) .build()) .build(); assertCalculate(new Cast(new SymbolReference("a"), "bigint"), inputStatistics) .lowValue(2.0) .highValue(3.0) .distinctValuesCountUnknown() .nullsFraction(0.3) .dataSizeUnknown(); }
@Test public void testCastDoubleToShortRange() { PlanNodeStatsEstimate inputStatistics = PlanNodeStatsEstimate.builder() .addSymbolStatistics(new Symbol("a"), SymbolStatsEstimate.builder() .setNullsFraction(0.3) .setLowValue(1.6) .setHighValue(3.3) .setDistinctValuesCount(10) .setAverageRowSize(2.0) .build()) .build(); assertCalculate(new Cast(new SymbolReference("a"), "bigint"), inputStatistics) .lowValue(2.0) .highValue(3.0) .distinctValuesCount(2) .nullsFraction(0.3) .dataSizeUnknown(); }
@Test public void testCastDoubleToBigint() { PlanNodeStatsEstimate inputStatistics = PlanNodeStatsEstimate.builder() .addSymbolStatistics(new Symbol("a"), SymbolStatsEstimate.builder() .setNullsFraction(0.3) .setLowValue(1.6) .setHighValue(17.3) .setDistinctValuesCount(10) .setAverageRowSize(2.0) .build()) .build(); assertCalculate(new Cast(new SymbolReference("a"), "bigint"), inputStatistics) .lowValue(2.0) .highValue(17.0) .distinctValuesCount(10) .nullsFraction(0.3) .dataSizeUnknown(); }
@Test public void testCastBigintToDouble() { PlanNodeStatsEstimate inputStatistics = PlanNodeStatsEstimate.builder() .addSymbolStatistics(new Symbol("a"), SymbolStatsEstimate.builder() .setNullsFraction(0.3) .setLowValue(2.0) .setHighValue(10.0) .setDistinctValuesCount(4) .setAverageRowSize(2.0) .build()) .build(); assertCalculate(new Cast(new SymbolReference("a"), "double"), inputStatistics) .lowValue(2.0) .highValue(10.0) .distinctValuesCount(4) .nullsFraction(0.3) .dataSizeUnknown(); }
.highValue(5) .distinctValuesCount(1) .dataSizeUnknown() .nullsFraction(0)) .symbolStats("i2", assertion -> assertion .lowValue(0) .highValue(3) .dataSizeUnknown() .distinctValuesCount(2) .nullsFraction(0)) .lowValue(10) .highValue(15) .dataSizeUnknown() .distinctValuesCount(1.9) .nullsFraction(0.05))); .highValue(5) .distinctValuesCount(1) .dataSizeUnknown() .nullsFraction(0)) .symbolStats("i2", assertion -> assertion .lowValue(0) .highValue(3) .dataSizeUnknown() .distinctValuesCount(2) .nullsFraction(0)) .lowValue(10)
.lowValue(1) .highValue(10) .dataSizeUnknown() .distinctValuesCount(5) .nullsFraction(0)) .lowValue(0) .highValue(3) .dataSizeUnknown() .distinctValuesCount(4) .nullsFraction(0)) .lowValue(10) .highValue(15) .dataSizeUnknown() .distinctValuesCount(4) .nullsFraction(0.1)));
.lowValue(1) .highValue(20) .dataSizeUnknown() .nullsFraction(0.3666666)) .symbolStats("o2", assertion -> assertion