Skip to content

Commit 8ffa9dd

Browse files
committed
implement
1 parent 3929106 commit 8ffa9dd

File tree

5 files changed

+947
-1
lines changed

5 files changed

+947
-1
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.apache.tsfile.read.filter.factory.TimeFilterApi;
2727
import org.apache.tsfile.read.filter.factory.ValueFilterApi;
2828
import org.apache.tsfile.read.filter.operator.And;
29+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators;
2930
import org.apache.tsfile.read.filter.operator.GroupByFilter;
3031
import org.apache.tsfile.read.filter.operator.GroupByMonthFilter;
3132
import org.apache.tsfile.read.filter.operator.Not;
@@ -245,6 +246,18 @@ public static Filter deserialize(ByteBuffer buffer) {
245246
return new Or(buffer);
246247
case NOT:
247248
return new Not(buffer);
249+
case EXTRACT_TIME_EQ:
250+
return new ExtractTimeFilterOperators.ExtractTimeEq(buffer);
251+
case EXTRACT_TIME_NEQ:
252+
return new ExtractTimeFilterOperators.ExtractTimeNotEq(buffer);
253+
case EXTRACT_TIME_GT:
254+
return new ExtractTimeFilterOperators.ExtractTimeGt(buffer);
255+
case EXTRACT_TIME_GTEQ:
256+
return new ExtractTimeFilterOperators.ExtractTimeGtEq(buffer);
257+
case EXTRACT_TIME_LT:
258+
return new ExtractTimeFilterOperators.ExtractTimeLt(buffer);
259+
case EXTRACT_TIME_LTEQ:
260+
return new ExtractTimeFilterOperators.ExtractTimeLtEq(buffer);
248261
default:
249262
throw new UnsupportedOperationException("Unsupported operator type:" + type);
250263
}

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,15 @@ public enum OperatorType {
6565

6666
// is null
6767
VALUE_IS_NULL("IS NULL"),
68-
VALUE_IS_NOT_NULL("IS NOT NULL");
68+
VALUE_IS_NOT_NULL("IS NOT NULL"),
69+
70+
// extract comparison
71+
EXTRACT_TIME_EQ("="),
72+
EXTRACT_TIME_NEQ("!="),
73+
EXTRACT_TIME_GT(">"),
74+
EXTRACT_TIME_GTEQ(">="),
75+
EXTRACT_TIME_LT("<"),
76+
EXTRACT_TIME_LTEQ("<=");
6977

7078
private final String symbol;
7179

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@
1919

2020
package org.apache.tsfile.read.filter.factory;
2121

22+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeEq;
23+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeGt;
24+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeGtEq;
25+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeLt;
26+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeLtEq;
27+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.ExtractTimeNotEq;
28+
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators.Field;
2229
import org.apache.tsfile.read.filter.operator.GroupByFilter;
2330
import org.apache.tsfile.read.filter.operator.GroupByMonthFilter;
2431
import org.apache.tsfile.read.filter.operator.TimeFilterOperators.TimeBetweenAnd;
@@ -33,6 +40,7 @@
3340
import org.apache.tsfile.read.filter.operator.TimeFilterOperators.TimeNotIn;
3441
import org.apache.tsfile.utils.TimeDuration;
3542

43+
import java.time.ZoneId;
3644
import java.util.Set;
3745
import java.util.TimeZone;
3846
import java.util.concurrent.TimeUnit;
@@ -98,4 +106,34 @@ public static GroupByMonthFilter groupByMonth(
98106
return new GroupByMonthFilter(
99107
startTime, endTime, interval, slidingStep, timeZone, currPrecision);
100108
}
109+
110+
public static ExtractTimeGt extractTimeGt(
111+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
112+
return new ExtractTimeGt(value, field, zoneId, currPrecision);
113+
}
114+
115+
public static ExtractTimeGtEq extractTimeGtEq(
116+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
117+
return new ExtractTimeGtEq(value, field, zoneId, currPrecision);
118+
}
119+
120+
public static ExtractTimeLt extractTimeLt(
121+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
122+
return new ExtractTimeLt(value, field, zoneId, currPrecision);
123+
}
124+
125+
public static ExtractTimeLtEq extractTimeLtEq(
126+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
127+
return new ExtractTimeLtEq(value, field, zoneId, currPrecision);
128+
}
129+
130+
public static ExtractTimeEq extractTimeEq(
131+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
132+
return new ExtractTimeEq(value, field, zoneId, currPrecision);
133+
}
134+
135+
public static ExtractTimeNotEq extractTimeNotEq(
136+
long value, Field field, ZoneId zoneId, TimeUnit currPrecision) {
137+
return new ExtractTimeNotEq(value, field, zoneId, currPrecision);
138+
}
101139
}

0 commit comments

Comments
 (0)