io.prestosql.spi.predicate.Range.intersect()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.0k)|赞(0)|评价(0)|浏览(96)

本文整理了Java中io.prestosql.spi.predicate.Range.intersect方法的一些代码示例,展示了Range.intersect的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Range.intersect方法的具体详情如下:
包路径:io.prestosql.spi.predicate.Range
类名称:Range
方法名:intersect

Range.intersect介绍

暂无

代码示例

代码示例来源:origin: prestosql/presto

@Override
public SortedRangeSet intersect(ValueSet other)
{
  SortedRangeSet otherRangeSet = checkCompatibility(other);
  Builder builder = new Builder(type);
  Iterator<Range> iterator1 = getOrderedRanges().iterator();
  Iterator<Range> iterator2 = otherRangeSet.getOrderedRanges().iterator();
  if (iterator1.hasNext() && iterator2.hasNext()) {
    Range range1 = iterator1.next();
    Range range2 = iterator2.next();
    while (true) {
      if (range1.overlaps(range2)) {
        builder.add(range1.intersect(range2));
      }
      if (range1.getHigh().compareTo(range2.getHigh()) <= 0) {
        if (!iterator1.hasNext()) {
          break;
        }
        range1 = iterator1.next();
      }
      else {
        if (!iterator2.hasNext()) {
          break;
        }
        range2 = iterator2.next();
      }
    }
  }
  return builder.build();
}

代码示例来源:origin: io.prestosql/presto-spi

@Test
public void testExceptionalIntersect()
{
  try {
    Range.greaterThan(BIGINT, 2L).intersect(Range.lessThan(BIGINT, 2L));
    fail();
  }
  catch (IllegalArgumentException e) {
  }
  try {
    Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.range(BIGINT, 3L, true, 10L, false));
    fail();
  }
  catch (IllegalArgumentException e) {
  }
}

代码示例来源:origin: prestosql/presto

@Test
public void testExceptionalIntersect()
{
  try {
    Range.greaterThan(BIGINT, 2L).intersect(Range.lessThan(BIGINT, 2L));
    fail();
  }
  catch (IllegalArgumentException e) {
  }
  try {
    Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.range(BIGINT, 3L, true, 10L, false));
    fail();
  }
  catch (IllegalArgumentException e) {
  }
}

代码示例来源:origin: prestosql/presto

@Test
public void testIntersect()
{
  assertEquals(Range.greaterThan(BIGINT, 1L).intersect(Range.lessThanOrEqual(BIGINT, 2L)), Range.range(BIGINT, 1L, false, 2L, true));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.equal(BIGINT, 2L)), Range.equal(BIGINT, 2L));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.range(BIGINT, 2L, false, 10L, false)), Range.range(BIGINT, 2L, false, 3L, false));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, true).intersect(Range.range(BIGINT, 3L, true, 10L, false)), Range.equal(BIGINT, 3L));
  assertEquals(Range.all(BIGINT).intersect(Range.equal(BIGINT, Long.MAX_VALUE)), Range.equal(BIGINT, Long.MAX_VALUE));
}

代码示例来源:origin: io.prestosql/presto-spi

@Test
public void testIntersect()
{
  assertEquals(Range.greaterThan(BIGINT, 1L).intersect(Range.lessThanOrEqual(BIGINT, 2L)), Range.range(BIGINT, 1L, false, 2L, true));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.equal(BIGINT, 2L)), Range.equal(BIGINT, 2L));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, false).intersect(Range.range(BIGINT, 2L, false, 10L, false)), Range.range(BIGINT, 2L, false, 3L, false));
  assertEquals(Range.range(BIGINT, 1L, true, 3L, true).intersect(Range.range(BIGINT, 3L, true, 10L, false)), Range.equal(BIGINT, 3L));
  assertEquals(Range.all(BIGINT).intersect(Range.equal(BIGINT, Long.MAX_VALUE)), Range.equal(BIGINT, Long.MAX_VALUE));
}

相关文章