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 8814a3c9dca41e4b2e65bdc70f6439fdca16e3a2
Author: shuwenwei <[email protected]>
AuthorDate: Fri Oct 9 18:28:40 2026 +0800

    [Storage] Fix table TTL lookup in query time bound
    
    - take the data model from the data region instead of the "root." device 
prefix
    - look up the table TTL with the database name of the data region, because 
the table cache is keyed by database and table
    - spotless formatting for the files touched by the previous commit
---
 .../dataregion/memtable/AlignedWritableMemChunk.java        |  8 +++-----
 .../storageengine/dataregion/memtable/TsFileProcessor.java  | 13 ++++++++-----
 .../AlignedBitmapMemoryAccountingPerformanceTest.java       |  3 +--
 .../dataregion/memtable/WritableMemChunkRegionScanTest.java |  3 +--
 .../test/java/org/apache/iotdb/db/tools/ImportWALTest.java  | 12 ++++--------
 5 files changed, 17 insertions(+), 22 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
index 54b481de66a..df493067eb0 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedWritableMemChunk.java
@@ -106,9 +106,7 @@ public class AlignedWritableMemChunk extends 
AbstractWritableMemChunk {
   }
 
   private AlignedWritableMemChunk(
-      List<IMeasurementSchema> schemaList,
-      AlignedTVList list,
-      EncryptParameter encryptParameter) {
+      List<IMeasurementSchema> schemaList, AlignedTVList list, 
EncryptParameter encryptParameter) {
     this.measurementIndexMap = new LinkedHashMap<>();
     this.schemaList = schemaList;
     for (int i = 0; i < schemaList.size(); i++) {
@@ -1235,8 +1233,8 @@ public class AlignedWritableMemChunk extends 
AbstractWritableMemChunk {
     return chunk;
   }
 
-  public static AlignedWritableMemChunk deserializeSingleTVListMemChunks(
-      DataInputStream stream) throws IOException {
+  public static AlignedWritableMemChunk 
deserializeSingleTVListMemChunks(DataInputStream stream)
+      throws IOException {
     int schemaListSize = stream.readInt();
     List<IMeasurementSchema> schemaList = new ArrayList<>(schemaListSize);
     for (int i = 0; i < schemaListSize; i++) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
index 7a89a07a9af..c22dfcf58d1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
@@ -2644,13 +2644,16 @@ public class TsFileProcessor {
   }
 
   private long getQueryTimeLowerBound(IDeviceID deviceID) {
-    long ttl;
-    if (deviceID.getTableName().startsWith("root.")) {
-      ttl = DataNodeTTLCache.getInstance().getTTLForTree(deviceID);
-    } else {
+    final long ttl;
+    if (isTableModel()) {
+      // The table TTL is cached by the database and the table, both known 
from the data region of
+      // this processor.
       ttl =
           DataNodeTTLCache.getInstance()
-              .getTTLForTable(this.dataRegionName, deviceID.getTableName());
+              .getTTLForTable(
+                  dataRegionInfo.getDataRegion().getDatabaseName(), 
deviceID.getTableName());
+    } else {
+      ttl = DataNodeTTLCache.getInstance().getTTLForTree(deviceID);
     }
     return ttl != Long.MAX_VALUE ? CommonUtils.getTTLLowerBound(ttl) : 
Long.MIN_VALUE;
   }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedBitmapMemoryAccountingPerformanceTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedBitmapMemoryAccountingPerformanceTest.java
index b9b9fd53685..8da57414e4a 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedBitmapMemoryAccountingPerformanceTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/AlignedBitmapMemoryAccountingPerformanceTest.java
@@ -289,8 +289,7 @@ public class AlignedBitmapMemoryAccountingPerformanceTest {
             "0",
             Collections.singletonMap(
                 deviceId,
-                new AlignedWritableMemChunkGroup(
-                    memChunk, new ArrayList<>(scenario.schemas))));
+                new AlignedWritableMemChunkGroup(memChunk, new 
ArrayList<>(scenario.schemas))));
     return new AccountingTarget(memTable, deviceId);
   }
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/WritableMemChunkRegionScanTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/WritableMemChunkRegionScanTest.java
index d22e41c35f5..7a4eedccf74 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/WritableMemChunkRegionScanTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/memtable/WritableMemChunkRegionScanTest.java
@@ -296,8 +296,7 @@ public class WritableMemChunkRegionScanTest {
             new MeasurementSchema("s1", TSDataType.INT32),
             new MeasurementSchema("s2", TSDataType.INT32),
             new MeasurementSchema("s3", TSDataType.INT32));
-    AlignedWritableMemChunk writableMemChunk =
-        new AlignedWritableMemChunk(measurementSchemas);
+    AlignedWritableMemChunk writableMemChunk = new 
AlignedWritableMemChunk(measurementSchemas);
     int size = 100000;
     for (int i = 0; i < size; i++) {
       if (i <= 10000) {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/ImportWALTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/ImportWALTest.java
index bcc5ee2df45..00fb827e2e1 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/ImportWALTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/ImportWALTest.java
@@ -322,8 +322,7 @@ public class ImportWALTest {
         ImportWAL.resolveDirectoryDatabases(files, null, true, null);
     final IllegalArgumentException failure =
         assertThrows(
-            IllegalArgumentException.class,
-            () -> ImportWAL.requireResolvedDatabases(unresolved));
+            IllegalArgumentException.class, () -> 
ImportWAL.requireResolvedDatabases(unresolved));
     // The inferable directory is not reported, the others are listed in 
directory order.
     assertTrue(failure.getMessage().contains("0, root.sg-4"));
     assertTrue(failure.getMessage().contains("-db/--database"));
@@ -1590,8 +1589,7 @@ public class ImportWALTest {
         new Object[] {10, null, 
DateUtils.parseDateExpressionToInt(firstDate)});
     final Session treeSession = mock(Session.class);
 
-    new ImportWAL.WALReplayer(treeSession, null, "root.sg")
-        .replay(new WALInfoEntry(1, memTable));
+    new ImportWAL.WALReplayer(treeSession, null, "root.sg").replay(new 
WALInfoEntry(1, memTable));
 
     final ArgumentCaptor<Tablet> tabletCaptor = 
ArgumentCaptor.forClass(Tablet.class);
     verify(treeSession, times(3)).insertTablet(tabletCaptor.capture());
@@ -1637,8 +1635,7 @@ public class ImportWALTest {
         new Object[] {10, 100L, 
DateUtils.parseDateExpressionToInt(firstDate)});
     final Session treeSession = mock(Session.class);
 
-    new ImportWAL.WALReplayer(treeSession, null, "root.sg")
-        .replay(new WALInfoEntry(1, memTable));
+    new ImportWAL.WALReplayer(treeSession, null, "root.sg").replay(new 
WALInfoEntry(1, memTable));
 
     final ArgumentCaptor<Tablet> tabletCaptor = 
ArgumentCaptor.forClass(Tablet.class);
     verify(treeSession).insertAlignedTablet(tabletCaptor.capture());
@@ -1689,8 +1686,7 @@ public class ImportWALTest {
     }
     final Session treeSession = mock(Session.class);
 
-    new ImportWAL.WALReplayer(treeSession, null, "root.sg")
-        .replay(new WALInfoEntry(1, memTable));
+    new ImportWAL.WALReplayer(treeSession, null, "root.sg").replay(new 
WALInfoEntry(1, memTable));
 
     final ArgumentCaptor<Tablet> tabletCaptor = 
ArgumentCaptor.forClass(Tablet.class);
     verify(treeSession, times(2)).insertTablet(tabletCaptor.capture());

Reply via email to