Skip to content

Commit e11bdf0

Browse files
Fix value filter allSatisfy bug
1 parent 250e936 commit e11bdf0

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

tsfile/src/main/java/org/apache/tsfile/read/filter/basic/ValueFilter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ public boolean canSkip(IMetadata metadata) {
8888

8989
@Override
9090
public boolean allSatisfy(IMetadata metadata) {
91+
if (metadata.hasNullValue(measurementIndex)) {
92+
// null not satisfy any filter, except IS NULL
93+
return false;
94+
}
9195
Optional<Statistics<? extends Serializable>> statistics =
9296
metadata.getMeasurementStatistics(measurementIndex);
9397
return statistics.map(this::allSatisfy).orElse(false);

tsfile/src/main/java/org/apache/tsfile/read/filter/factory/ValueFilterApi.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,10 @@ public static ValueRegexp like(int measurementIndex, String likePattern) {
136136
return regexp(measurementIndex, RegexUtils.parseLikePatternToRegex(likePattern));
137137
}
138138

139+
public static ValueRegexp like(int measurementIndex, Pattern pattern) {
140+
return regexp(measurementIndex, pattern);
141+
}
142+
139143
public static ValueNotRegexp notLike(String likePattern) {
140144
return notRegexp(DEFAULT_MEASUREMENT_INDEX, RegexUtils.parseLikePatternToRegex(likePattern));
141145
}
@@ -144,6 +148,10 @@ public static ValueNotRegexp notLike(int measurementIndex, String likePattern) {
144148
return notRegexp(measurementIndex, RegexUtils.parseLikePatternToRegex(likePattern));
145149
}
146150

151+
public static ValueNotRegexp notLike(int measurementIndex, Pattern pattern) {
152+
return notRegexp(measurementIndex, pattern);
153+
}
154+
147155
public static ValueRegexp regexp(String regex) {
148156
return new ValueRegexp(DEFAULT_MEASUREMENT_INDEX, RegexUtils.compileRegex(regex));
149157
}

0 commit comments

Comments
 (0)