in java/tsfile/src/main/java/org/apache/tsfile/read/common/TimeRange.java [176:197]
public boolean intersects(TimeRange r) {
if ((!leftClose || !r.rightClose) && (r.max < min)) {
// e.g., [1,3] does not intersect with (4,5].
return false;
} else if (!leftClose && !r.rightClose && r.max <= min) {
// e.g.,[1,3) does not intersect with (3,5]
return false;
} else if (leftClose && r.rightClose && r.max <= min - 2) {
// e.g.,[1,3] does not intersect with [5,6].
// take care of overflow. e.g., Long.MIN_VALUE
return false;
} else if ((!rightClose || !r.leftClose) && (r.min > max)) {
return false;
} else if (!rightClose && !r.leftClose && r.min >= max) {
return false;
} else if (rightClose && r.leftClose && r.min >= max + 2) {
// take care of overflow. e.g., Long.MAX_VALUE
return false;
} else {
return true;
}
}