本文整理了Java中io.prestosql.spi.predicate.Range.intersect
方法的一些代码示例,展示了Range.intersect
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Range.intersect
方法的具体详情如下:
包路径:io.prestosql.spi.predicate.Range
类名称: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));
}
内容来源于网络,如有侵权,请联系作者删除!