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
