Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.apache.tsfile.read.filter.factory.ValueFilterApi;
import org.apache.tsfile.read.filter.operator.And;
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators;
import org.apache.tsfile.read.filter.operator.ExtractValueFilterOperators;
import org.apache.tsfile.read.filter.operator.GroupByFilter;
import org.apache.tsfile.read.filter.operator.GroupByMonthFilter;
import org.apache.tsfile.read.filter.operator.Not;
Expand Down Expand Up @@ -258,6 +259,18 @@ public static Filter deserialize(ByteBuffer buffer) {
return new ExtractTimeFilterOperators.ExtractTimeLt(buffer);
case EXTRACT_TIME_LTEQ:
return new ExtractTimeFilterOperators.ExtractTimeLtEq(buffer);
case EXTRACT_VALUE_EQ:
return new ExtractValueFilterOperators.ExtractValueEq(buffer);
case EXTRACT_VALUE_NEQ:
return new ExtractValueFilterOperators.ExtractValueNotEq(buffer);
case EXTRACT_VALUE_GT:
return new ExtractValueFilterOperators.ExtractValueGt(buffer);
case EXTRACT_VALUE_GTEQ:
return new ExtractValueFilterOperators.ExtractValueGtEq(buffer);
case EXTRACT_VALUE_LT:
return new ExtractValueFilterOperators.ExtractValueLt(buffer);
case EXTRACT_VALUE_LTEQ:
return new ExtractValueFilterOperators.ExtractValueLtEq(buffer);
default:
throw new UnsupportedOperationException("Unsupported operator type:" + type);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,13 @@ public enum OperatorType {
EXTRACT_TIME_GT(">"),
EXTRACT_TIME_GTEQ(">="),
EXTRACT_TIME_LT("<"),
EXTRACT_TIME_LTEQ("<=");
EXTRACT_TIME_LTEQ("<="),
EXTRACT_VALUE_EQ("="),
EXTRACT_VALUE_NEQ("!="),
EXTRACT_VALUE_GT(">"),
EXTRACT_VALUE_GTEQ(">="),
EXTRACT_VALUE_LT("<"),
EXTRACT_VALUE_LTEQ("<=");

private final String symbol;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public boolean[] satisfyTsBlock(boolean[] selection, TsBlock tsBlock) {
return satisfyInfo;
}

protected abstract boolean timeSatisfy(long time);
public abstract boolean timeSatisfy(long time);

@Override
public boolean canSkip(IMetadata metadata) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import org.apache.tsfile.read.filter.operator.BinaryFilterOperators;
import org.apache.tsfile.read.filter.operator.BooleanFilterOperators;
import org.apache.tsfile.read.filter.operator.DoubleFilterOperators;
import org.apache.tsfile.read.filter.operator.ExtractTimeFilterOperators;
import org.apache.tsfile.read.filter.operator.ExtractValueFilterOperators;
import org.apache.tsfile.read.filter.operator.FloatFilterOperators;
import org.apache.tsfile.read.filter.operator.IntegerFilterOperators;
import org.apache.tsfile.read.filter.operator.LongFilterOperators;
Expand All @@ -33,8 +35,10 @@
import org.apache.tsfile.read.filter.operator.ValueIsNullOperator;
import org.apache.tsfile.utils.Binary;

import java.time.ZoneId;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;

public class ValueFilterApi {
Expand Down Expand Up @@ -435,4 +439,64 @@ public static <T extends Comparable<T>> Filter notIn(
throw new UnsupportedOperationException("Unsupported data type: " + type);
}
}

public static Filter extractValueGt(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueGt(
measurementIndex, value, field, zoneId, currPrecision);
}

public static Filter extractValueGtEq(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueGtEq(
measurementIndex, value, field, zoneId, currPrecision);
}

public static Filter extractValueLt(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueLt(
measurementIndex, value, field, zoneId, currPrecision);
}

public static Filter extractValueLtEq(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueLtEq(
measurementIndex, value, field, zoneId, currPrecision);
}

public static Filter extractValueEq(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueEq(
measurementIndex, value, field, zoneId, currPrecision);
}

public static Filter extractValueNotEq(
int measurementIndex,
long value,
ExtractTimeFilterOperators.Field field,
ZoneId zoneId,
TimeUnit currPrecision) {
return new ExtractValueFilterOperators.ExtractValueNotEq(
measurementIndex, value, field, zoneId, currPrecision);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,22 @@ protected ExtractTimeCompareFilter(ByteBuffer buffer) {
TimeUnit.values()[ReadWriteIOUtils.readInt(buffer)]);
}

public long getConstant() {
return constant;
}

public Field getField() {
return field;
}

public TimeUnit getCurrPrecision() {
return currPrecision;
}

public ZoneId getZoneId() {
return zoneId;
}

@Override
public void serialize(DataOutputStream outputStream) throws IOException {
super.serialize(outputStream);
Expand Down
Loading
Loading