Skip to content

Commit

Permalink
[FLINK-31362][table] FlinkRelMdPopulationSizeTest
Browse files Browse the repository at this point in the history
  • Loading branch information
snuyanzin committed Aug 30, 2024
1 parent 85e27a7 commit 9ffecc0
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -613,22 +613,22 @@ class FlinkRelMdDistinctRowCountTest extends FlinkRelMdHandlerTestBase {
2.0e7,
mq.getDistinctRowCount(logicalInnerJoinNotOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalInnerJoinNotOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)

assertEquals(
2.0e7,
mq.getDistinctRowCount(logicalLeftJoinOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalLeftJoinOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)
assertEquals(
2.0e7,
mq.getDistinctRowCount(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)

Expand All @@ -644,22 +644,22 @@ class FlinkRelMdDistinctRowCountTest extends FlinkRelMdHandlerTestBase {
2.0e7,
mq.getDistinctRowCount(logicalRightJoinNotOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalRightJoinNotOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)

assertEquals(
2.0e7,
mq.getDistinctRowCount(logicalFullJoinOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalFullJoinOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)
assertEquals(
2.0e7,
mq.getDistinctRowCount(logicalFullJoinNotOnUniqueKeys, ImmutableBitSet.of(0), null))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getDistinctRowCount(logicalFullJoinNotOnUniqueKeys, ImmutableBitSet.of(1), null),
1e-2)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -334,15 +334,15 @@ class FlinkRelMdPopulationSizeTest extends FlinkRelMdHandlerTestBase {
assertEquals(1.0, mq.getPopulationSize(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of()))
assertEquals(2.0e7, mq.getPopulationSize(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(0)))
assertEquals(
5.0569644545e8,
5.0569644724678594e8,
mq.getPopulationSize(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(1)),
1e-2)
assertEquals(
8.0e8,
7.999999791508117e8,
mq.getPopulationSize(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(1, 5)),
1e-2)
assertEquals(
7.9377199253e8,
7.937727457918736e8,
mq.getPopulationSize(logicalLeftJoinNotOnUniqueKeys, ImmutableBitSet.of(0, 6)),
1e-2)

Expand All @@ -352,23 +352,23 @@ class FlinkRelMdPopulationSizeTest extends FlinkRelMdHandlerTestBase {
mq.getPopulationSize(logicalRightJoinOnLHSUniqueKeys, ImmutableBitSet.of(0)),
1e-2)
assertEquals(
1.975207027e7,
1.9752070389525224e7,
mq.getPopulationSize(logicalRightJoinOnLHSUniqueKeys, ImmutableBitSet.of(1)),
1e-2)
assertEquals(
2.0e7,
1.999999987845058e7,
mq.getPopulationSize(logicalRightJoinOnLHSUniqueKeys, ImmutableBitSet.of(1, 5)),
1e-2)
assertEquals(
1.999606902e7,
1.9996088147299763e7,
mq.getPopulationSize(logicalRightJoinOnLHSUniqueKeys, ImmutableBitSet.of(0, 6)),
1e-2)

assertEquals(1.0, mq.getPopulationSize(logicalFullJoinWithoutEquiCond, ImmutableBitSet.of()))
assertEquals(2.0e7, mq.getPopulationSize(logicalFullJoinWithoutEquiCond, ImmutableBitSet.of(0)))
assertEquals(8.0e8, mq.getPopulationSize(logicalFullJoinWithoutEquiCond, ImmutableBitSet.of(1)))
assertEquals(
8.0e15,
6.295509444597865e15,
mq.getPopulationSize(logicalFullJoinWithoutEquiCond, ImmutableBitSet.of(1, 5)))
assertEquals(
5.112e10,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,11 @@ class FlinkRelMdUtilTest {
Assertions.assertEquals(
BigDecimal(0.31606027941427883),
BigDecimal.valueOf(FlinkRelMdUtil.numDistinctVals(0.5, 0.5)))

// This case should be removed once CALCITE-4351 is fixed.
Assertions.assertEquals(Double.NaN, RelMdUtil.numDistinctVals(0.5, 0.5))
}

@Test
def testNumDistinctValsWithLargeInputs(): Unit = {
Assertions.assertNotEquals(0.0, FlinkRelMdUtil.numDistinctVals(1e18, 1e10))
Assertions.assertEquals(9.99999993922529e9, FlinkRelMdUtil.numDistinctVals(1e18, 1e10), 1d)
// this test will fail once CALCITE-4351 is fixed
// in that case FlinkRelMdUtil#numDistinctVals should be removed
// see FLINK-19780
Assertions.assertEquals(0.0, RelMdUtil.numDistinctVals(1e18, 1e10))
}
}

0 comments on commit 9ffecc0

Please sign in to comment.