public SymbolStatsAssertion unknownRange() { return lowValueUnknown() .highValueUnknown(); }
public PlanNodeStatsAssertion symbolStatsUnknown(Symbol symbol) { return symbolStats(symbol, columnStats -> columnStats .lowValueUnknown() .highValueUnknown() .nullsFractionUnknown() .distinctValuesCountUnknown()); }
@Test public void testVarbinaryConstant() { MetadataManager metadata = createTestMetadataManager(); LiteralEncoder literalEncoder = new LiteralEncoder(metadata.getBlockEncodingSerde()); Expression expression = literalEncoder.toExpression(Slices.utf8Slice("ala ma kota"), VARBINARY); assertCalculate(expression) .distinctValuesCount(1.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(0.0); }
@Test public void testCastUnknown() { assertCalculate(new Cast(new SymbolReference("a"), "bigint"), PlanNodeStatsEstimate.unknown()) .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown() .dataSizeUnknown(); }
@Test public void testFunctionCall() { assertCalculate( new FunctionCall( QualifiedName.of("length"), ImmutableList.of(new Cast(new NullLiteral(), "VARCHAR(10)")))) .distinctValuesCount(0.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(1.0); assertCalculate( new FunctionCall( QualifiedName.of("length"), ImmutableList.of(new SymbolReference("x"))), PlanNodeStatsEstimate.unknown(), TypeProvider.viewOf(ImmutableMap.of(new Symbol("x"), createVarcharType(2)))) .distinctValuesCountUnknown() .lowValueUnknown() .highValueUnknown() .nullsFractionUnknown(); }
.symbolStats("sum", symbolStatsAssertion -> symbolStatsAssertion .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown()) .symbolStats("count", symbolStatsAssertion -> symbolStatsAssertion .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown()) .symbolStats("count_on_x", symbolStatsAssertion -> symbolStatsAssertion .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown()) .symbolStats("x", symbolStatsAssertion -> symbolStatsAssertion .lowValueUnknown() .highValueUnknown() .distinctValuesCountUnknown() .nullsFractionUnknown()));
.distinctValuesCount(1.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(0.0); .distinctValuesCount(0.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(1.0);
.distinctValuesCount(49.0) .lowValue(-15.0) .highValueUnknown() .nullsFraction(0.0); }); .distinctValuesCount(49.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(0.0); }); .distinctValuesCount(49.0) .lowValueUnknown() .highValueUnknown() .nullsFraction(0.0); });
.distinctValuesCount(25.0) //(50% heuristic) .lowValue(0.0) .highValueUnknown() .nullsFraction(0.0); }); .distinctValuesCount(25.0) // (50% heuristic) .lowValue(0.0) .highValueUnknown() .nullsFraction(0.0); });
.symbolStats("o3", assertion -> assertion .lowValueUnknown() .highValueUnknown() .distinctValuesCount(6) .nullsFraction(0.1666667))
.symbolStats("o3", assertion -> assertion .lowValueUnknown() .highValueUnknown() .distinctValuesCount(8.5) .nullsFraction(0.1666667))