Ian Bertolacci created CALCITE-5722: ---------------------------------------
Summary: Sarg.isComplementedPoints fails with anti-points which are equal under `compareTo` but not `equals` Key: CALCITE-5722 URL: https://issues.apache.org/jira/browse/CALCITE-5722 Project: Calcite Issue Type: Bug Affects Versions: 1.34.0 Reporter: Ian Bertolacci Example: {code:java} final Sarg<BigDecimal> badComplimentPointsSarg = Sarg.of( RexUnknownAs.UNKNOWN, TreeRangeSet.create( Arrays.asList( // Create anti-point around 1, with different scales Range.lessThan(new BigDecimal("1")), Range.greaterThan(new BigDecimal("1.00000000000")) ) ) ); assertThat(badComplimentPointsSarg.isComplementedPoints(), is(true)); {code} will fail. This is because [RangeSets.isPoints uses direct equality and not `Comparable.compareTo` equality|https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/util/RangeSets.java#LL132C1-L133C1] The values {{`1`}} and {{`1.00000000000`}} are not equal under `BigDecimal.equals` but are equal under `BigDecimal.compareTo`. -- This message was sent by Atlassian Jira (v8.20.10#820010)