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

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

commit 0e2d974e90529ec207212a2b90656d4121b8d31d
Author: shuwenwei <[email protected]>
AuthorDate: Fri Oct 9 11:49:58 2026 +0800

    [Storage] Pass table model explicitly to remaining callers
---
 .../query/TsFileInsertionEventQueryParser.java     |  3 ++-
 ...ileInsertionEventQueryParserTabletIterator.java |  2 +-
 .../scan/TsFileInsertionEventScanParser.java       | 10 ++++++---
 ...ileInsertionEventTableParserTabletIterator.java |  7 ++++---
 .../tsfile/parser/util/ModsOperationUtil.java      | 24 ++++++++++++++--------
 .../analyze/cache/partition/PartitionCache.java    | 13 ++++++------
 .../analyze/load/LoadTsFileTableSchemaCache.java   |  2 +-
 .../analyze/load/LoadTsFileTreeSchemaCache.java    |  6 ++++--
 .../utils/TreeDiskUsageStatisticUtil.java          |  2 +-
 9 files changed, 42 insertions(+), 27 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParser.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParser.java
index c26910b426f..e48fb71de7b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParser.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParser.java
@@ -320,7 +320,8 @@ public class TsFileInsertionEventQueryParser extends 
TsFileInsertionEventParser
                       measurement,
                       meta.getStatistics().getStartTime(),
                       meta.getStatistics().getEndTime(),
-                      currentModifications);
+                      currentModifications,
+                      false);
                 } catch (IOException e) {
                   LOGGER.warn(
                       
DataNodePipeMessages.FAILED_TO_READ_METADATA_FOR_DEVICEID_MEASUREMENT,
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParserTabletIterator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParserTabletIterator.java
index 281247e1529..ee27eda4a53 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParserTabletIterator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/query/TsFileInsertionEventQueryParserTabletIterator.java
@@ -115,7 +115,7 @@ public class TsFileInsertionEventQueryParserTabletIterator 
implements Iterator<T
 
     this.measurementModsList =
         ModsOperationUtil.initializeMeasurementMods(
-            deviceId, this.measurements, currentModifications);
+            deviceId, this.measurements, currentModifications, false);
   }
 
   private QueryDataSet buildQueryDataSet() throws IOException {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
index aab44bc6882..23fcd571356 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
@@ -691,7 +691,10 @@ public class TsFileInsertionEventScanParser extends 
TsFileInsertionEventParser {
                     chunkHeader.getCompressionType()));
             modsInfos.addAll(
                 ModsOperationUtil.initializeMeasurementMods(
-                    currentDevice, Collections.singletonList(measurementID), 
currentModifications));
+                    currentDevice,
+                    Collections.singletonList(measurementID),
+                    currentModifications,
+                    false));
             return;
           }
         case MetaMarker.VALUE_CHUNK_HEADER:
@@ -830,7 +833,8 @@ public class TsFileInsertionEventScanParser extends 
TsFileInsertionEventParser {
               chunkHeader.getMeasurementID(),
               statistics.getStartTime(),
               statistics.getEndTime(),
-              currentModifications)) {
+              currentModifications,
+              false)) {
         tsFileSequenceReader.position(nextMarkerOffset);
         return true;
       }
@@ -999,7 +1003,7 @@ public class TsFileInsertionEventScanParser extends 
TsFileInsertionEventParser {
             chunkHeader.getCompressionType()));
     pendingAlignedChunkGroup.modsInfos.addAll(
         ModsOperationUtil.initializeMeasurementMods(
-            currentDevice, Collections.singletonList(measurementID), 
currentModifications));
+            currentDevice, Collections.singletonList(measurementID), 
currentModifications, false));
   }
 
   private PendingAlignedChunkGroup getOrCreatePendingAlignedChunkGroup(final 
int timeChunkIndex) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
index 142fbaa88d8..91b613d7987 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/table/TsFileInsertionEventTableParserTabletIterator.java
@@ -466,7 +466,7 @@ public class TsFileInsertionEventTableParserTabletIterator 
implements Iterator<T
 
     this.chunkReader = new TableChunkReader(timeChunk, valueChunkList, null);
     this.modsInfoList =
-        ModsOperationUtil.initializeMeasurementMods(deviceID, measurementList, 
modifications);
+        ModsOperationUtil.initializeMeasurementMods(deviceID, measurementList, 
modifications, true);
   }
 
   private boolean areAllFieldsDeletedByMods(
@@ -481,7 +481,8 @@ public class TsFileInsertionEventTableParserTabletIterator 
implements Iterator<T
           internMeasurementName(schema),
           alignedChunkMetadata.getStartTime(),
           alignedChunkMetadata.getEndTime(),
-          modifications)) {
+          modifications,
+          true)) {
         return false;
       }
     }
@@ -492,7 +493,7 @@ public class TsFileInsertionEventTableParserTabletIterator 
implements Iterator<T
       final String measurementID, final long startTime, final long endTime) {
     return !modifications.isEmpty()
         && ModsOperationUtil.isAllDeletedByMods(
-            deviceID, measurementID, startTime, endTime, modifications);
+            deviceID, measurementID, startTime, endTime, modifications, true);
   }
 
   private String internMeasurementName(final IMeasurementSchema schema) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/util/ModsOperationUtil.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/util/ModsOperationUtil.java
index 38487b693e9..bca697be9d2 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/util/ModsOperationUtil.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/util/ModsOperationUtil.java
@@ -80,6 +80,7 @@ public class ModsOperationUtil {
    * @param startTime start time
    * @param endTime end time
    * @param modifications modification records
+   * @param isTableModel whether the device belongs to table model
    * @return true if data is completely deleted, false otherwise
    */
   public static boolean isAllDeletedByMods(
@@ -87,18 +88,20 @@ public class ModsOperationUtil {
       String measurementID,
       long startTime,
       long endTime,
-      PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications) {
+      PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications,
+      boolean isTableModel) {
     if (modifications == null) {
       return false;
     }
 
-    final List<ModEntry> mods = getOverlappedMods(deviceID, measurementID, 
modifications);
+    final List<ModEntry> mods =
+        getOverlappedMods(deviceID, measurementID, modifications, 
isTableModel);
     if (mods == null || mods.isEmpty()) {
       return false;
     }
 
     // Different logic for tree model and table model
-    if (deviceID.isTableModel()) {
+    if (isTableModel) {
       // For table model: check if any modification affects the device and 
covers the time range
       return mods.stream()
           .anyMatch(
@@ -119,17 +122,20 @@ public class ModsOperationUtil {
    * @param deviceID device ID
    * @param measurements measurement list
    * @param modifications modification records
+   * @param isTableModel whether the device belongs to table model
    * @return mapping from measurement ID to mods list and index
    */
   public static List<ModsInfo> initializeMeasurementMods(
       IDeviceID deviceID,
       List<String> measurements,
-      PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications) {
+      PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications,
+      boolean isTableModel) {
 
     List<ModsInfo> modsInfos = new ArrayList<>(measurements.size());
 
     for (final String measurement : measurements) {
-      final List<ModEntry> mods = getOverlappedMods(deviceID, measurement, 
modifications);
+      final List<ModEntry> mods =
+          getOverlappedMods(deviceID, measurement, modifications, 
isTableModel);
       if (mods == null || mods.isEmpty()) {
         // No mods, use empty list and index 0
         modsInfos.add(new ModsInfo(Collections.emptyList(), 0));
@@ -139,7 +145,7 @@ public class ModsOperationUtil {
       // Sort by time range for efficient lookup
       // Different filtering logic for tree model and table model
       final List<ModEntry> filteredMods;
-      if (deviceID.isTableModel()) {
+      if (isTableModel) {
         // For table model: filter modifications that affect the device
         filteredMods =
             mods.stream()
@@ -161,9 +167,11 @@ public class ModsOperationUtil {
   private static List<ModEntry> getOverlappedMods(
       final IDeviceID deviceID,
       final String measurement,
-      final PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications) {
+      final PatternTreeMap<ModEntry, PatternTreeMapFactory.ModsSerializer> 
modifications,
+      final boolean isTableModel) {
     try {
-      return modifications.getOverlapped(CompactionPathUtils.getPath(deviceID, 
measurement));
+      return modifications.getOverlapped(
+          CompactionPathUtils.getPath(deviceID, measurement, isTableModel));
     } catch (final IllegalPathException e) {
       throw new PipeException(e.getMessage(), e);
     }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
index 0b8dfbed002..03f2d809c0e 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/partition/PartitionCache.java
@@ -180,7 +180,7 @@ public class PartitionCache {
             map.computeIfAbsent(databaseName, k -> new 
ArrayList<>()).add(device);
           }
         };
-    getDatabaseCacheResult(result, deviceIDs, tryToFetch, isAutoCreate, 
userName);
+    getDatabaseCacheResult(result, deviceIDs, tryToFetch, isAutoCreate, 
userName, false);
     return result.getMap();
   }
 
@@ -205,7 +205,7 @@ public class PartitionCache {
             map.put(device, databaseName);
           }
         };
-    getDatabaseCacheResult(result, deviceIDs, tryToFetch, isAutoCreate, 
userName);
+    getDatabaseCacheResult(result, deviceIDs, tryToFetch, isAutoCreate, 
userName, false);
     return result.getMap();
   }
 
@@ -502,7 +502,8 @@ public class PartitionCache {
       final List<IDeviceID> deviceIDs,
       final boolean tryToFetch,
       final boolean isAutoCreate,
-      final String userName) {
+      final String userName,
+      final boolean isTableModel) {
     if (!isAutoCreate) {
       // TODO: avoid IDeviceID contains "*"
       // miss when deviceId contains *
@@ -530,13 +531,11 @@ public class PartitionCache {
           } else {
             // check if it is to auto create the system or audit database
             for (IDeviceID deviceID : deviceIDs) {
-              if (!deviceID.isTableModel()
-                  && deviceID.startWith("root." + 
SystemConstant.SYSTEM_PREFIX_KEY)) {
+              if (!isTableModel && deviceID.startWith("root." + 
SystemConstant.SYSTEM_PREFIX_KEY)) {
                 createDatabaseAndUpdateCache(result, 
Collections.singletonList(deviceID), userName);
                 break;
               }
-              if (!deviceID.isTableModel()
-                  && deviceID.startWith("root." + 
SystemConstant.AUDIT_PREFIX_KEY)) {
+              if (!isTableModel && deviceID.startWith("root." + 
SystemConstant.AUDIT_PREFIX_KEY)) {
                 createDatabaseAndUpdateCache(result, 
Collections.singletonList(deviceID), userName);
                 break;
               }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java
index 322a86acfd3..63a8adcaea9 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTableSchemaCache.java
@@ -171,7 +171,7 @@ public class LoadTsFileTableSchemaCache {
   public boolean isDeviceDeletedByMods(final IDeviceID device) {
     try {
       return ModificationUtils.isDeviceDeletedByMods(
-          currentModifications, currentTimeIndex, device);
+          currentModifications, currentTimeIndex, device, true);
     } catch (final IllegalPathException e) {
       LOGGER.warn(
           DataNodeQueryMessages
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTreeSchemaCache.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTreeSchemaCache.java
index 87375b5dfd4..b2ffa01590b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTreeSchemaCache.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/load/LoadTsFileTreeSchemaCache.java
@@ -196,7 +196,8 @@ public class LoadTsFileTreeSchemaCache {
   }
 
   public boolean isDeviceDeletedByMods(IDeviceID device) throws 
IllegalPathException {
-    return ModificationUtils.isDeviceDeletedByMods(currentModifications, 
currentTimeIndex, device);
+    return ModificationUtils.isDeviceDeletedByMods(
+        currentModifications, currentTimeIndex, device, false);
   }
 
   public boolean isTimeSeriesDeletedByMods(IDeviceID device, 
TimeseriesMetadata timeseriesMetadata)
@@ -206,7 +207,8 @@ public class LoadTsFileTreeSchemaCache {
         device,
         timeseriesMetadata.getMeasurementId(),
         timeseriesMetadata.getStatistics().getStartTime(),
-        timeseriesMetadata.getStatistics().getEndTime());
+        timeseriesMetadata.getStatistics().getEndTime(),
+        false);
   }
 
   public void addAlreadySetDatabase(PartialPath database) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/TreeDiskUsageStatisticUtil.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/TreeDiskUsageStatisticUtil.java
index ec4d8f03d86..5317f8628d8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/TreeDiskUsageStatisticUtil.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/utils/TreeDiskUsageStatisticUtil.java
@@ -165,6 +165,6 @@ public class TreeDiskUsageStatisticUtil extends 
DiskUsageStatisticUtil {
   }
 
   private boolean matchPathPattern(IDeviceID deviceID) throws 
IllegalPathException {
-    return pathPattern.matchFullPath(CompactionPathUtils.getPath(deviceID));
+    return pathPattern.matchFullPath(CompactionPathUtils.getPath(deviceID, 
false));
   }
 }

Reply via email to