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

rong 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 2cca3c2c145 Load: fix data loss when loading different files with same 
name in the same directory (#15527)
2cca3c2c145 is described below

commit 2cca3c2c145e7ff34f8663210873856c1bf6e7a3
Author: Zikun Ma <[email protected]>
AuthorDate: Mon May 19 16:02:41 2025 +0800

    Load: fix data loss when loading different files with same name in the same 
directory (#15527)
---
 .../plan/analyze/load/LoadTsFileAnalyzer.java            | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java
index 62483a3a3c5..4375d03a019 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileAnalyzer.java
@@ -514,10 +514,10 @@ public class LoadTsFileAnalyzer implements AutoCloseable {
       final Map<IDeviceID, List<TimeseriesMetadata>> device2TimeseriesMetadata 
=
           timeseriesMetadataIterator.next();
 
-      if (!tsFileResource.resourceFileExists()) {
-        TsFileResourceUtils.updateTsFileResource(device2TimeseriesMetadata, 
tsFileResource);
-        
getOrCreateTreeSchemaVerifier().setCurrentTimeIndex(tsFileResource.getTimeIndex());
-      }
+      // Update time index no matter if resource file exists or not, because 
resource file may be
+      // untrusted
+      TsFileResourceUtils.updateTsFileResource(device2TimeseriesMetadata, 
tsFileResource);
+      
getOrCreateTreeSchemaVerifier().setCurrentTimeIndex(tsFileResource.getTimeIndex());
 
       if (isAutoCreateSchemaOrVerifySchemaEnabled) {
         getOrCreateTreeSchemaVerifier().autoCreateAndVerify(reader, 
device2TimeseriesMetadata);
@@ -573,10 +573,10 @@ public class LoadTsFileAnalyzer implements AutoCloseable {
       final Map<IDeviceID, List<TimeseriesMetadata>> device2TimeseriesMetadata 
=
           timeseriesMetadataIterator.next();
 
-      if (!tsFileResource.resourceFileExists()) {
-        TsFileResourceUtils.updateTsFileResource(device2TimeseriesMetadata, 
tsFileResource);
-        
getOrCreateTableSchemaCache().setCurrentTimeIndex(tsFileResource.getTimeIndex());
-      }
+      // Update time index no matter if resource file exists or not, because 
resource file may be
+      // untrusted
+      TsFileResourceUtils.updateTsFileResource(device2TimeseriesMetadata, 
tsFileResource);
+      
getOrCreateTableSchemaCache().setCurrentTimeIndex(tsFileResource.getTimeIndex());
 
       for (IDeviceID deviceId : device2TimeseriesMetadata.keySet()) {
         getOrCreateTableSchemaCache().autoCreateAndVerify(deviceId);

Reply via email to