This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch force_ci/support_schema_evolution in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5e680e087d0660faaa8a80c0caa4af92a73a1410 Author: Tian Jiang <[email protected]> AuthorDate: Wed Dec 24 14:55:59 2025 +0800 Evolve schema in FileLoaderUtils --- .../execution/operator/source/FileLoaderUtils.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java index 35d8a1705ab..cf128e33f18 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.queryengine.execution.operator.source; +import java.util.concurrent.LinkedBlockingDeque; import org.apache.iotdb.commons.path.AlignedFullPath; import org.apache.iotdb.commons.path.NonAlignedFullPath; import org.apache.iotdb.db.queryengine.execution.fragment.FragmentInstanceContext; @@ -34,6 +35,7 @@ import org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk.metadata.D import org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk.metadata.MemAlignedChunkMetadataLoader; import org.apache.iotdb.db.storageengine.dataregion.read.reader.chunk.metadata.MemChunkMetadataLoader; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.evolution.EvolvedSchema; import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.ITimeIndex; import org.apache.iotdb.db.utils.ModificationUtils; @@ -93,14 +95,18 @@ public class FileLoaderUtils { if (resource.isClosed()) { // when resource.getTimeIndexType() == 1, TsFileResource.timeIndexType is deviceTimeIndex // we should not ignore the non-exist of device in TsFileMetadata + EvolvedSchema evolvedSchema = resource.getMergedEvolvedSchema(); + IDeviceID deviceId = seriesPath.getDeviceId(); + String measurement = seriesPath.getMeasurement(); + timeSeriesMetadata = TimeSeriesMetadataCache.getInstance() .get( resource.getTsFilePath(), new TimeSeriesMetadataCache.TimeSeriesMetadataCacheKey( resource.getTsFileID(), - seriesPath.getDeviceId(), - seriesPath.getMeasurement()), + deviceId, + measurement), allSensors, context.ignoreNotExistsDevice() || resource.getTimeIndexType() == ITimeIndex.FILE_TIME_INDEX_TYPE, @@ -110,7 +116,7 @@ public class FileLoaderUtils { long t2 = System.nanoTime(); List<ModEntry> pathModifications = context.getPathModifications( - resource, seriesPath.getDeviceId(), seriesPath.getMeasurement()); + resource, deviceId, measurement); timeSeriesMetadata.setModified(!pathModifications.isEmpty()); timeSeriesMetadata.setChunkMetadataLoader( new DiskChunkMetadataLoader(resource, context, globalTimeFilter, pathModifications));
