This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new fb1ce11c04f Adaptation of Filter generated by FreeMarker in TsFile
fb1ce11c04f is described below

commit fb1ce11c04f9278f86a2e984e2508d8c3c121a1f
Author: yuyong <[email protected]>
AuthorDate: Mon Aug 12 20:20:41 2024 +0800

    Adaptation of Filter generated by FreeMarker in TsFile
---
 .../queryengine/plan/execution/QueryExecution.java |  6 +++
 .../predicate/ConvertPredicateToFilterVisitor.java | 59 ++++++++++++----------
 .../predicate/ConvertPredicateToFilterVisitor.java | 41 ++++++++-------
 .../reader/chunk/AlignedMemPageReaderTest.java     | 38 +++++++++-----
 .../read/reader/chunk/MemPageReaderTest.java       |  6 ++-
 .../AlignedSeriesScanPredicatePushDownTest.java    |  4 +-
 .../series/SeriesScanPredicatePushDownTest.java    | 27 ++++++++--
 pom.xml                                            |  2 +-
 8 files changed, 117 insertions(+), 66 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
index caa7b046507..d7cfc4bc240 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java
@@ -150,6 +150,7 @@ public class QueryExecution implements IQueryExecution {
     T get() throws IoTDBException;
   }
 
+  @Override
   public void start() {
     final long startTime = System.nanoTime();
     if (skipExecute()) {
@@ -330,6 +331,7 @@ public class QueryExecution implements IQueryExecution {
   }
 
   // Stop the workers for this query
+  @Override
   public void stop(Throwable t) {
     // only stop once
     if (stopped.compareAndSet(false, true) && this.scheduler != null) {
@@ -338,6 +340,7 @@ public class QueryExecution implements IQueryExecution {
   }
 
   // Stop the query and clean up all the resources this query occupied
+  @Override
   public void stopAndCleanup() {
     stop(null);
     releaseResource();
@@ -384,6 +387,7 @@ public class QueryExecution implements IQueryExecution {
   }
 
   // Stop the query and clean up all the resources this query occupied
+  @Override
   public void stopAndCleanup(Throwable t) {
     stop(t);
     releaseResource(t);
@@ -524,6 +528,7 @@ public class QueryExecution implements IQueryExecution {
    *
    * @return ExecutionStatus. Contains the QueryId and the TSStatus.
    */
+  @Override
   public ExecutionResult getStatus() {
     // Although we monitor the state to transition to RUNNING, the future will 
return if any
     // Terminated state is triggered
@@ -676,6 +681,7 @@ public class QueryExecution implements IQueryExecution {
     return context;
   }
 
+  @Override
   public String toString() {
     return String.format("QueryExecution[%s]", context.getQueryId());
   }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java
index 9e011500f62..126313a46f0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/predicate/ConvertPredicateToFilterVisitor.java
@@ -49,7 +49,6 @@ import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.read.filter.basic.Filter;
 import org.apache.tsfile.read.filter.factory.FilterFactory;
 import org.apache.tsfile.read.filter.factory.ValueFilterApi;
-import org.apache.tsfile.read.filter.operator.ValueFilterOperators;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.write.schema.IMeasurementSchema;
 
@@ -106,18 +105,20 @@ public class ConvertPredicateToFilterVisitor
     }
   }
 
-  private <T extends Comparable<T>> ValueFilterOperators.ValueNotIn<T> 
constructNotInFilter(
+  private <T extends Comparable<T>> Filter constructNotInFilter(
       PartialPath path, Set<String> stringValues, Context context) {
     int measurementIndex = context.getMeasurementIndex(path.getMeasurement());
-    Set<T> values = constructInSet(stringValues, context.getType(path));
-    return ValueFilterApi.notIn(measurementIndex, values);
+    TSDataType dataType = context.getType(path);
+    Set<T> values = constructInSet(stringValues, dataType);
+    return ValueFilterApi.notIn(measurementIndex, values, dataType);
   }
 
-  private <T extends Comparable<T>> ValueFilterOperators.ValueIn<T> 
constructInFilter(
+  private <T extends Comparable<T>> Filter constructInFilter(
       PartialPath path, Set<String> stringValues, Context context) {
     int measurementIndex = context.getMeasurementIndex(path.getMeasurement());
-    Set<T> values = constructInSet(stringValues, context.getType(path));
-    return ValueFilterApi.in(measurementIndex, values);
+    TSDataType dataType = context.getType(path);
+    Set<T> values = constructInSet(stringValues, dataType);
+    return ValueFilterApi.in(measurementIndex, values, dataType);
   }
 
   private <T extends Comparable<T>> Set<T> constructInSet(
@@ -141,8 +142,9 @@ public class ConvertPredicateToFilterVisitor
     }
 
     
checkArgument(operand.getExpressionType().equals(ExpressionType.TIMESERIES));
-    int measurementIndex =
-        context.getMeasurementIndex(((TimeSeriesOperand) 
operand).getPath().getMeasurement());
+    PartialPath path = ((TimeSeriesOperand) operand).getPath();
+    int measurementIndex = context.getMeasurementIndex(path.getMeasurement());
+    TSDataType dataType = context.getType(path);
     return ValueFilterApi.isNotNull(measurementIndex);
   }
 
@@ -154,12 +156,13 @@ public class ConvertPredicateToFilterVisitor
     }
 
     
checkArgument(operand.getExpressionType().equals(ExpressionType.TIMESERIES));
-    int measurementIndex =
-        context.getMeasurementIndex(((TimeSeriesOperand) 
operand).getPath().getMeasurement());
+    PartialPath path = ((TimeSeriesOperand) operand).getPath();
+    int measurementIndex = context.getMeasurementIndex(path.getMeasurement());
+    TSDataType dataType = context.getType(path);
     if (likeExpression.isNot()) {
-      return ValueFilterApi.notLike(measurementIndex, 
likeExpression.getPattern());
+      return ValueFilterApi.notLike(measurementIndex, 
likeExpression.getPattern(), dataType);
     } else {
-      return ValueFilterApi.like(measurementIndex, 
likeExpression.getPattern());
+      return ValueFilterApi.like(measurementIndex, 
likeExpression.getPattern(), dataType);
     }
   }
 
@@ -173,10 +176,12 @@ public class ConvertPredicateToFilterVisitor
     
checkArgument(operand.getExpressionType().equals(ExpressionType.TIMESERIES));
     int measurementIndex =
         context.getMeasurementIndex(((TimeSeriesOperand) 
operand).getPath().getMeasurement());
+    PartialPath path = ((TimeSeriesOperand) operand).getPath();
+    TSDataType dataType = context.getType(path);
     if (regularExpression.isNot()) {
-      return ValueFilterApi.notRegexp(measurementIndex, 
regularExpression.getPattern());
+      return ValueFilterApi.notRegexp(measurementIndex, 
regularExpression.getPattern(), dataType);
     } else {
-      return ValueFilterApi.regexp(measurementIndex, 
regularExpression.getPattern());
+      return ValueFilterApi.regexp(measurementIndex, 
regularExpression.getPattern(), dataType);
     }
   }
 
@@ -255,21 +260,21 @@ public class ConvertPredicateToFilterVisitor
       Context context) {
     PartialPath path = ((TimeSeriesOperand) timeseriesOperand).getPath();
     int measurementIndex = context.getMeasurementIndex(path.getMeasurement());
-    T value = getValue(((ConstantOperand) constantOperand).getValueString(), 
context.getType(path));
-
+    TSDataType dataType = context.getType(path);
+    T value = getValue(((ConstantOperand) constantOperand).getValueString(), 
dataType);
     switch (expressionType) {
       case EQUAL_TO:
-        return ValueFilterApi.eq(measurementIndex, value);
+        return ValueFilterApi.eq(measurementIndex, value, dataType);
       case NON_EQUAL:
-        return ValueFilterApi.notEq(measurementIndex, value);
+        return ValueFilterApi.notEq(measurementIndex, value, dataType);
       case GREATER_THAN:
-        return ValueFilterApi.gt(measurementIndex, value);
+        return ValueFilterApi.gt(measurementIndex, value, dataType);
       case GREATER_EQUAL:
-        return ValueFilterApi.gtEq(measurementIndex, value);
+        return ValueFilterApi.gtEq(measurementIndex, value, dataType);
       case LESS_THAN:
-        return ValueFilterApi.lt(measurementIndex, value);
+        return ValueFilterApi.lt(measurementIndex, value, dataType);
       case LESS_EQUAL:
-        return ValueFilterApi.ltEq(measurementIndex, value);
+        return ValueFilterApi.ltEq(measurementIndex, value, dataType);
       default:
         throw new UnsupportedOperationException(
             String.format("Unsupported expression type %s", expressionType));
@@ -326,12 +331,12 @@ public class ConvertPredicateToFilterVisitor
 
     if (minValue == maxValue) {
       return isNot
-          ? ValueFilterApi.notEq(measurementIndex, minValue)
-          : ValueFilterApi.eq(measurementIndex, minValue);
+          ? ValueFilterApi.notEq(measurementIndex, minValue, dataType)
+          : ValueFilterApi.eq(measurementIndex, minValue, dataType);
     }
     return isNot
-        ? ValueFilterApi.notBetween(measurementIndex, minValue, maxValue)
-        : ValueFilterApi.between(measurementIndex, minValue, maxValue);
+        ? ValueFilterApi.notBetween(measurementIndex, minValue, maxValue, 
dataType)
+        : ValueFilterApi.between(measurementIndex, minValue, maxValue, 
dataType);
   }
 
   @SuppressWarnings("unchecked")
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java
index 1480601a070..d6ba6c8b8a3 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/ConvertPredicateToFilterVisitor.java
@@ -43,13 +43,14 @@ import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SearchedCaseExpre
 import 
org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SimpleCaseExpression;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.StringLiteral;
 import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference;
+import 
org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
 
 import org.apache.tsfile.common.conf.TSFileConfig;
+import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.read.common.type.Type;
 import org.apache.tsfile.read.filter.basic.Filter;
 import org.apache.tsfile.read.filter.factory.FilterFactory;
 import org.apache.tsfile.read.filter.factory.ValueFilterApi;
-import org.apache.tsfile.read.filter.operator.ValueFilterOperators;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.utils.DateUtils;
 
@@ -102,11 +103,13 @@ public class ConvertPredicateToFilterVisitor
         context);
   }
 
-  private <T extends Comparable<T>> ValueFilterOperators.ValueIn<T> 
constructInFilter(
+  private <T extends Comparable<T>> Filter constructInFilter(
       SymbolReference operand, List<Literal> values, Context context) {
     int measurementIndex = context.getMeasurementIndex((operand).getName());
-    Set<T> inSet = constructInSet(values, 
context.getType(Symbol.from(operand)));
-    return ValueFilterApi.in(measurementIndex, inSet);
+    Type type = context.getType(Symbol.from(operand));
+    TSDataType dataType = InternalTypeManager.getTSDataType(type);
+    Set<T> inSet = constructInSet(values, type);
+    return ValueFilterApi.in(measurementIndex, inSet, dataType);
   }
 
   private <T extends Comparable<T>> Set<T> constructInSet(List<Literal> 
literals, Type dataType) {
@@ -130,22 +133,22 @@ public class ConvertPredicateToFilterVisitor
 
     int measurementIndex = 
context.getMeasurementIndex(symbolReference.getName());
     Type type = context.getType(Symbol.from(symbolReference));
-
     T value = getValue(literal, type);
+    TSDataType dataType = InternalTypeManager.getTSDataType(type);
 
     switch (operator) {
       case EQUAL:
-        return ValueFilterApi.eq(measurementIndex, value);
+        return ValueFilterApi.eq(measurementIndex, value, dataType);
       case NOT_EQUAL:
-        return ValueFilterApi.notEq(measurementIndex, value);
+        return ValueFilterApi.notEq(measurementIndex, value, dataType);
       case GREATER_THAN:
-        return ValueFilterApi.gt(measurementIndex, value);
+        return ValueFilterApi.gt(measurementIndex, value, dataType);
       case GREATER_THAN_OR_EQUAL:
-        return ValueFilterApi.gtEq(measurementIndex, value);
+        return ValueFilterApi.gtEq(measurementIndex, value, dataType);
       case LESS_THAN:
-        return ValueFilterApi.lt(measurementIndex, value);
+        return ValueFilterApi.lt(measurementIndex, value, dataType);
       case LESS_THAN_OR_EQUAL:
-        return ValueFilterApi.ltEq(measurementIndex, value);
+        return ValueFilterApi.ltEq(measurementIndex, value, dataType);
       default:
         throw new IllegalArgumentException(
             String.format("Unsupported comparison operator %s", operator));
@@ -205,7 +208,9 @@ public class ConvertPredicateToFilterVisitor
     checkArgument(context.isMeasurementColumn(operand));
     int measurementIndex = context.getMeasurementIndex(operand.getName());
     Expression pattern = node.getPattern();
-    return ValueFilterApi.like(measurementIndex, getStringValue(pattern));
+    Type type = context.getType(Symbol.from(operand));
+    TSDataType dataType = InternalTypeManager.getTSDataType(type);
+    return ValueFilterApi.like(measurementIndex, getStringValue(pattern), 
dataType);
   }
 
   @Override
@@ -317,17 +322,17 @@ public class ConvertPredicateToFilterVisitor
       Expression maxValue,
       ConvertPredicateToFilterVisitor.Context context) {
     int measurementIndex = 
context.getMeasurementIndex(measurementReference.getName());
-    Type dataType = context.getType(Symbol.from(measurementReference));
-
+    Type type = context.getType(Symbol.from(measurementReference));
+    TSDataType dataType = InternalTypeManager.getTSDataType(type);
     checkArgument(isLiteral(minValue) && isLiteral(maxValue));
 
-    T min = getValue((Literal) minValue, dataType);
-    T max = getValue((Literal) maxValue, dataType);
+    T min = getValue((Literal) minValue, type);
+    T max = getValue((Literal) maxValue, type);
 
     if (min.compareTo(max) == 0) {
-      return ValueFilterApi.eq(measurementIndex, min);
+      return ValueFilterApi.eq(measurementIndex, min, dataType);
     }
-    return ValueFilterApi.between(measurementIndex, min, max);
+    return ValueFilterApi.between(measurementIndex, min, max, dataType);
   }
 
   public static double getDoubleValue(Expression expression) {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/AlignedMemPageReaderTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/AlignedMemPageReaderTest.java
index 7f1af66ad05..28c78226417 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/AlignedMemPageReaderTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/AlignedMemPageReaderTest.java
@@ -38,6 +38,8 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
 
+import static 
org.apache.tsfile.read.filter.factory.ValueFilterApi.DEFAULT_MEASUREMENT_INDEX;
+
 public class AlignedMemPageReaderTest {
 
   private static final TsBlock tsBlock1;
@@ -138,13 +140,15 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(0L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.gtEq(50));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 50, TSDataType.INT32));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(50, tsBlock1.getPositionCount());
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.gtEq(50));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 50, TSDataType.INT32));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(40, tsBlock2.getPositionCount());
   }
@@ -154,7 +158,8 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(0L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.gtEq(50));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 50, TSDataType.INT32));
     alignedPageReader1.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock1.getPositionCount());
@@ -163,7 +168,8 @@ public class AlignedMemPageReaderTest {
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.gtEq(50));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 50, TSDataType.INT32));
     alignedPageReader2.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock2.getPositionCount());
@@ -176,13 +182,15 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(50L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.gtEq(0));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 0, TSDataType.INT32));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(50, tsBlock1.getPositionCount());
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.gtEq(0));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 0, TSDataType.INT32));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(40, tsBlock2.getPositionCount());
   }
@@ -192,7 +200,8 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(50L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.gtEq(0));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 0, TSDataType.INT32));
     alignedPageReader1.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock1.getPositionCount());
@@ -201,7 +210,8 @@ public class AlignedMemPageReaderTest {
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.gtEq(0));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 0, TSDataType.INT32));
     alignedPageReader2.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock2.getPositionCount());
@@ -214,13 +224,15 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(30L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.lt(80));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 80, TSDataType.INT32));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(50, tsBlock1.getPositionCount());
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.lt(80));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 80, TSDataType.INT32));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(50, tsBlock2.getPositionCount());
   }
@@ -230,7 +242,8 @@ public class AlignedMemPageReaderTest {
     Filter globalTimeFilter = TimeFilterApi.gtEq(50L);
     MemAlignedPageReader alignedPageReader1 = generateAlignedPageReader();
     alignedPageReader1.addRecordFilter(globalTimeFilter);
-    alignedPageReader1.addRecordFilter(ValueFilterApi.lt(80));
+    alignedPageReader1.addRecordFilter(
+        ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 80, TSDataType.INT32));
     alignedPageReader1.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock1 = alignedPageReader1.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock1.getPositionCount());
@@ -239,7 +252,8 @@ public class AlignedMemPageReaderTest {
 
     MemAlignedPageReader alignedPageReader2 = 
generateSingleColumnAlignedPageReader();
     alignedPageReader2.addRecordFilter(globalTimeFilter);
-    alignedPageReader2.addRecordFilter(ValueFilterApi.lt(80));
+    alignedPageReader2.addRecordFilter(
+        ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 80, TSDataType.INT32));
     alignedPageReader2.setLimitOffset(new PaginationController(10, 10));
     TsBlock tsBlock2 = alignedPageReader2.getAllSatisfiedData();
     Assert.assertEquals(10, tsBlock2.getPositionCount());
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReaderTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReaderTest.java
index ec0a7cebaf7..f9a13a71ad8 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReaderTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReaderTest.java
@@ -36,6 +36,8 @@ import java.io.IOException;
 import java.util.Collections;
 import java.util.Optional;
 
+import static 
org.apache.tsfile.read.filter.factory.ValueFilterApi.DEFAULT_MEASUREMENT_INDEX;
+
 public class MemPageReaderTest {
 
   private static final TsBlock tsBlock;
@@ -110,7 +112,7 @@ public class MemPageReaderTest {
   public void testFilter() throws IOException {
     IPageReader pageReader = generatePageReader();
     pageReader.addRecordFilter(TimeFilterApi.gtEq(50));
-    pageReader.addRecordFilter(ValueFilterApi.lt(80));
+    pageReader.addRecordFilter(ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 
80, TSDataType.INT32));
 
     TsBlock tsBlock = pageReader.getAllSatisfiedData();
 
@@ -121,7 +123,7 @@ public class MemPageReaderTest {
   public void testFilterAndLimitOffset() throws IOException {
     IPageReader pageReader = generatePageReader();
     pageReader.addRecordFilter(TimeFilterApi.gtEq(50));
-    pageReader.addRecordFilter(ValueFilterApi.lt(80));
+    pageReader.addRecordFilter(ValueFilterApi.lt(DEFAULT_MEASUREMENT_INDEX, 
80, TSDataType.INT32));
     pageReader.setLimitOffset(new PaginationController(10, 10));
 
     TsBlock tsBlock = pageReader.getAllSatisfiedData();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/AlignedSeriesScanPredicatePushDownTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/AlignedSeriesScanPredicatePushDownTest.java
index 849ea3f67d5..9a735ab7bec 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/AlignedSeriesScanPredicatePushDownTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/AlignedSeriesScanPredicatePushDownTest.java
@@ -187,7 +187,9 @@ public class AlignedSeriesScanPredicatePushDownTest extends 
AbstractAlignedSerie
     AlignedSeriesScanUtil seriesScanUtil =
         getAlignedSeriesScanUtil(
             TimeFilterApi.gt(10),
-            FilterFactory.and(ValueFilterApi.gtEq(0, 20), ValueFilterApi.lt(1, 
30)));
+            FilterFactory.and(
+                ValueFilterApi.gtEq(0, 20, TSDataType.INT32),
+                ValueFilterApi.lt(1, 30, TSDataType.INT32)));
 
     // File 1 skipped
     // File 2 skipped
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesScanPredicatePushDownTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesScanPredicatePushDownTest.java
index 5fee58ca06f..4b026873d8c 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesScanPredicatePushDownTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesScanPredicatePushDownTest.java
@@ -39,6 +39,8 @@ import org.junit.Test;
 import java.io.IOException;
 import java.util.Collections;
 
+import static 
org.apache.tsfile.read.filter.factory.ValueFilterApi.DEFAULT_MEASUREMENT_INDEX;
+
 public class SeriesScanPredicatePushDownTest extends AbstractSeriesScanTest {
 
   private SeriesScanUtil getSeriesScanUtil(Filter globalTimeFilter, Filter 
pushDownFilter)
@@ -156,7 +158,10 @@ public class SeriesScanPredicatePushDownTest extends 
AbstractSeriesScanTest {
 
   @Test
   public void testSkipFileByPushDownFilter() throws IllegalPathException, 
IOException {
-    SeriesScanUtil seriesScanUtil = getSeriesScanUtil(TimeFilterApi.gt(0), 
ValueFilterApi.gtEq(10));
+    SeriesScanUtil seriesScanUtil =
+        getSeriesScanUtil(
+            TimeFilterApi.gt(0),
+            ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 10, 
TSDataType.INT32));
     checkFile1Skipped(seriesScanUtil);
   }
 
@@ -185,7 +190,10 @@ public class SeriesScanPredicatePushDownTest extends 
AbstractSeriesScanTest {
 
   @Test
   public void testSkipChunkByPushDownFilter() throws IllegalPathException, 
IOException {
-    SeriesScanUtil seriesScanUtil = getSeriesScanUtil(TimeFilterApi.gt(0), 
ValueFilterApi.gtEq(20));
+    SeriesScanUtil seriesScanUtil =
+        getSeriesScanUtil(
+            TimeFilterApi.gt(0),
+            ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 20, 
TSDataType.INT32));
     checkFile2Chunk1Skipped(seriesScanUtil);
   }
 
@@ -224,7 +232,10 @@ public class SeriesScanPredicatePushDownTest extends 
AbstractSeriesScanTest {
 
   @Test
   public void testSkipPageByPushDownFilter() throws IllegalPathException, 
IOException {
-    SeriesScanUtil seriesScanUtil = getSeriesScanUtil(TimeFilterApi.gt(0), 
ValueFilterApi.gtEq(40));
+    SeriesScanUtil seriesScanUtil =
+        getSeriesScanUtil(
+            TimeFilterApi.gt(0),
+            ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 40, 
TSDataType.INT32));
     checkFile1AndFile2Skipped(seriesScanUtil);
 
     // File 3 - Chunk 1 - Page 1 skipped
@@ -262,7 +273,10 @@ public class SeriesScanPredicatePushDownTest extends 
AbstractSeriesScanTest {
 
   @Test
   public void testSkipMergeReaderPointByPushDownFilter() throws 
IllegalPathException, IOException {
-    SeriesScanUtil seriesScanUtil = getSeriesScanUtil(TimeFilterApi.gt(0), 
ValueFilterApi.gtEq(55));
+    SeriesScanUtil seriesScanUtil =
+        getSeriesScanUtil(
+            TimeFilterApi.gt(0),
+            ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 55, 
TSDataType.INT32));
     checkFile1AndFile2AndMergeReaderPointSkipped(seriesScanUtil);
   }
 
@@ -308,7 +322,10 @@ public class SeriesScanPredicatePushDownTest extends 
AbstractSeriesScanTest {
 
   @Test
   public void testSkipMergeReaderByPushDownFilter() throws 
IllegalPathException, IOException {
-    SeriesScanUtil seriesScanUtil = getSeriesScanUtil(TimeFilterApi.gt(0), 
ValueFilterApi.gtEq(60));
+    SeriesScanUtil seriesScanUtil =
+        getSeriesScanUtil(
+            TimeFilterApi.gt(0),
+            ValueFilterApi.gtEq(DEFAULT_MEASUREMENT_INDEX, 60, 
TSDataType.INT32));
 
     checkFile1AndFile2AndFile3Chunk1Skipped(seriesScanUtil);
 
diff --git a/pom.xml b/pom.xml
index ecaeac7d6f0..b05366f7e1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,7 +166,7 @@
         <thrift.version>0.14.1</thrift.version>
         <xz.version>1.9</xz.version>
         <zstd-jni.version>1.5.6-3</zstd-jni.version>
-        <tsfile.version>1.2.0-8aaedb22-SNAPSHOT</tsfile.version>
+        <tsfile.version>1.2.0-b31fb57c-SNAPSHOT</tsfile.version>
     </properties>
     <!--
     if we claim dependencies in dependencyManagement, then we do not claim

Reply via email to