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

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

commit cda89958c39a2e8cbb1bcf2a51eafe9fad0db84d
Author: Tian Jiang <[email protected]>
AuthorDate: Sat Oct 11 14:25:51 2025 +0800

    bump tsfile version
---
 .../IoTDBPipeTypeConversionISessionIT.java         | 114 ++++++++++++---------
 .../manual/IoTDBPipeTypeConversionISessionIT.java  |  91 ++++++++++++----
 .../it/session/IoTDBSessionRelationalIT.java       |  44 +++++---
 .../session/it/IoTDBSessionSchemaTemplateIT.java   |   4 -
 .../read/reader/chunk/MemAlignedPageReader.java    |   3 +
 .../read/reader/chunk/MemPageReader.java           |   3 +
 pom.xml                                            |   2 +-
 7 files changed, 167 insertions(+), 94 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/enhanced/IoTDBPipeTypeConversionISessionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/enhanced/IoTDBPipeTypeConversionISessionIT.java
index f81ea2dd225..46bc9e71607 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/enhanced/IoTDBPipeTypeConversionISessionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/enhanced/IoTDBPipeTypeConversionISessionIT.java
@@ -367,71 +367,83 @@ public class IoTDBPipeTypeConversionISessionIT extends 
AbstractPipeTableModelDua
         switch (sourceType) {
           case INT64:
           case TIMESTAMP:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((long[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((long[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case INT32:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((int[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((int[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case DOUBLE:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((double[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((double[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case FLOAT:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((float[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((float[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case DATE:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i)
-                        ? null
-                        : DateUtils.parseDateExpressionToInt(((LocalDate[]) 
values[j])[i]));
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((LocalDate[]) 
values[j])[i];
+            if (targetType == TSDataType.DATE) {
+              insertRecord.add(value);
+              break;
+            }
+            if (value != null) {
+              value = DateUtils.parseDateExpressionToInt((LocalDate) value);
+            }
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case TEXT:
           case STRING:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((Binary[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
-            break;
           case BLOB:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((Binary[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((Binary[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case BOOLEAN:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    tablet.getBitMaps()[j].isMarked(i) ? null : ((boolean[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((boolean[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
         }
       }
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTypeConversionISessionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTypeConversionISessionIT.java
index b973c2ad06c..d2d3d4ee205 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTypeConversionISessionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTypeConversionISessionIT.java
@@ -434,7 +434,11 @@ public class IoTDBPipeTypeConversionISessionIT extends 
AbstractPipeDualTreeModel
             break;
           case TEXT:
           case STRING:
-            assertEquals(field.getStringValue(), rowValues.get(i));
+            if (rowValues.get(i) instanceof Binary) {
+              assertEquals(field.getStringValue(), 
rowValues.get(i).toString());
+            } else {
+              assertEquals(field.getStringValue(), rowValues.get(i));
+            }
             break;
           case INT32:
             assertEquals(field.getIntV(), (int) rowValues.get(i));
@@ -602,44 +606,87 @@ public class IoTDBPipeTypeConversionISessionIT extends 
AbstractPipeDualTreeModel
         switch (sourceType) {
           case INT64:
           case TIMESTAMP:
-            value = ValueConverter.convert(sourceType, targetType, ((long[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((long[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case INT32:
-            value = ValueConverter.convert(sourceType, targetType, ((int[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((int[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case DOUBLE:
-            value = ValueConverter.convert(sourceType, targetType, ((double[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((double[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case FLOAT:
-            value = ValueConverter.convert(sourceType, targetType, ((float[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((float[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case DATE:
-            value =
-                ValueConverter.convert(
-                    sourceType,
-                    targetType,
-                    DateUtils.parseDateExpressionToInt(((LocalDate[]) 
values[j])[i]));
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((LocalDate[]) 
values[j])[i];
+            if (targetType == TSDataType.DATE) {
+              insertRecord.add(value);
+              break;
+            }
+            if (value != null) {
+              value = DateUtils.parseDateExpressionToInt((LocalDate) value);
+            }
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case TEXT:
           case STRING:
-            value = ValueConverter.convert(sourceType, targetType, ((Binary[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
-            break;
           case BLOB:
-            value = ValueConverter.convert(sourceType, targetType, ((Binary[]) 
values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((Binary[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
           case BOOLEAN:
-            value = ValueConverter.convert(sourceType, targetType, 
((boolean[]) values[j])[i]);
-            insertRecord.add(convert(value, targetType));
+            value = tablet.getBitMaps()[j].isMarked(i) ? null : ((boolean[]) 
values[j])[i];
+            if (targetType.isCompatible(sourceType)) {
+              value = targetType.castFromSingleValue(sourceType, value);
+            } else {
+              value = ValueConverter.convert(sourceType, targetType, value);
+              value = convert(value, targetType);
+            }
+            insertRecord.add(value);
             break;
         }
       }
+      insertRecord.add(tablet.getTimestamp(i));
       insertRecords.add(insertRecord);
     }
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java
index 22e3e0ccd34..8f76adb3be8 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/session/IoTDBSessionRelationalIT.java
@@ -1452,12 +1452,22 @@ public class IoTDBSessionRelationalIT {
         rec = dataSet.next();
         assertEquals(1, rec.getFields().get(0).getLongV());
         assertEquals("d1", rec.getFields().get(1).toString());
-        if (to == TSDataType.BLOB) {
-          assertEquals(genValue(to, 1), rec.getFields().get(2).getBinaryV());
-        } else if (to == TSDataType.DATE) {
-          assertEquals(genValue(to, 1), rec.getFields().get(2).getDateV());
-        } else {
-          assertEquals(genValue(to, 1).toString(), 
rec.getFields().get(2).toString());
+
+        switch (to) {
+          case BLOB:
+            assertEquals(genValue(to, 1), rec.getFields().get(2).getBinaryV());
+            break;
+          case DATE:
+            assertEquals(genValue(to, 1), rec.getFields().get(2).getDateV());
+            break;
+          case FLOAT:
+            assertEquals(genValue(to, 1), rec.getFields().get(2).getFloatV());
+            break;
+          case DOUBLE:
+            assertEquals(genValue(to, 1), rec.getFields().get(2).getDoubleV());
+            break;
+          default:
+            assertEquals(String.valueOf(genValue(from, 1)), 
rec.getFields().get(2).toString());
         }
         assertFalse(dataSet.hasNext());
       } else {
@@ -1621,17 +1631,19 @@ public class IoTDBSessionRelationalIT {
     dataTypes.remove(TSDataType.VECTOR);
     dataTypes.remove(TSDataType.UNKNOWN);
 
-    for (TSDataType from : dataTypes) {
-      for (TSDataType to : dataTypes) {
-        System.out.println("from: " + from + ", to: " + to);
-        testOneCastWithTablet(from, to, testNum, false);
-        System.out.println("partial insert");
-        testOneCastWithTablet(from, to, testNum, true);
+    try {
+      for (TSDataType from : dataTypes) {
+        for (TSDataType to : dataTypes) {
+          System.out.println("from: " + from + ", to: " + to);
+          testOneCastWithTablet(from, to, testNum, false);
+          System.out.println("partial insert");
+          testOneCastWithTablet(from, to, testNum, true);
+        }
+      }
+    } finally {
+      try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
+        session.executeNonQueryStatement("SET CONFIGURATION 
\"enable_partial_insert\"=\"true\"");
       }
-    }
-
-    try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      session.executeNonQueryStatement("SET CONFIGURATION 
\"enable_partial_insert\"=\"true\"");
     }
   }
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSchemaTemplateIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSchemaTemplateIT.java
index 53bb5e1fa76..ef7bffdb9f0 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSchemaTemplateIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSchemaTemplateIT.java
@@ -498,10 +498,6 @@ public class IoTDBSessionSchemaTemplateIT extends 
AbstractSchemaIT {
           e.getMessage()
               .contains(
                   "data type of root.db.v4.d2.b is not consistent, registered 
type FLOAT, inserting type DOUBLE"));
-      Assert.assertTrue(
-          e.getMessage()
-              .contains(
-                  "data type of root.db.v4.d2.c is not consistent, registered 
type TEXT, inserting type INT32"));
     }
   }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
index 3586aface40..7ee43a93aea 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedPageReader.java
@@ -210,6 +210,9 @@ public class MemAlignedPageReader implements IPageReader {
     return false;
   }
 
+  @Override
+  public void setModified(boolean modified) {}
+
   @Override
   public void initTsBlockBuilder(List<TSDataType> dataTypes) {
     builder = new TsBlockBuilder(dataTypes);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReader.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReader.java
index 90231d1bedf..a8680240072 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReader.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemPageReader.java
@@ -225,6 +225,9 @@ public class MemPageReader implements IPageReader {
     return false;
   }
 
+  @Override
+  public void setModified(boolean modified) {}
+
   @Override
   public void initTsBlockBuilder(List<TSDataType> dataTypes) {
     // non-aligned page reader don't need to init TsBlockBuilder at the very 
beginning
diff --git a/pom.xml b/pom.xml
index 8f962181a02..c86df5f482d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,7 +177,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>2.2.0-250825-SNAPSHOT</tsfile.version>
+        <tsfile.version>2.2.0-251010-SNAPSHOT</tsfile.version>
     </properties>
     <!--
     if we claim dependencies in dependencyManagement, then we do not claim

Reply via email to