use of io.crate.statistics.Stats in project crate by crate.
the class SelectivityFunctionsTest method test_col_is_null_uses_null_fraction_as_selectivity.
@Test
public void test_col_is_null_uses_null_fraction_as_selectivity() {
SqlExpressions expressions = new SqlExpressions(T3.sources(clusterService));
Symbol query = expressions.asSymbol("x is null");
var columnStats = ColumnStats.fromSortedValues(List.of(1, 2), DataTypes.INTEGER, 2, 4);
assertThat(columnStats.nullFraction(), Matchers.is(0.5));
Stats stats = new Stats(100, 16, Map.of(new ColumnIdent("x"), columnStats));
assertThat(SelectivityFunctions.estimateNumRows(stats, query, null), Matchers.is(50L));
}
use of io.crate.statistics.Stats in project crate by crate.
the class SelectivityFunctionsTest method test_eq_null_value_is_always_0.
@Test
public void test_eq_null_value_is_always_0() {
SqlExpressions expressions = new SqlExpressions(T3.sources(clusterService));
Symbol query = expressions.asSymbol("x = null");
var numbers = IntStream.range(1, 50).boxed().collect(Collectors.toList());
var columnStats = ColumnStats.fromSortedValues(numbers, DataTypes.INTEGER, 0, 20_000L);
var statsByColumn = new HashMap<ColumnIdent, ColumnStats>();
statsByColumn.put(new ColumnIdent("x"), columnStats);
Stats stats = new Stats(20_000, 16, statsByColumn);
assertThat(SelectivityFunctions.estimateNumRows(stats, query, null), Matchers.is(0L));
}
Aggregations