You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sh...@apache.org on 2025/08/12 08:33:38 UTC

(iotdb) 01/02: fix bug

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

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

commit c7cedf051f581d036e5ac15cdf155b74b28c8931
Author: shuwenwei <s1...@gmail.com>
AuthorDate: Tue Aug 12 12:33:00 2025 +0800

    fix bug
---
 .../queryengine/execution/fragment/FragmentInstanceContext.java  | 9 +++++++--
 .../iotdb/db/queryengine/execution/fragment/QueryContext.java    | 4 ++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
index e0944b17fc6..0126879d612 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
@@ -93,6 +93,8 @@ public class FragmentInstanceContext extends QueryContext {
   // it will only be used once, after sharedQueryDataSource being inited, it will be set to null
   private List<IFullPath> sourcePaths;
 
+  private boolean singleSourcePath = false;
+
   // Used for region scan, relating methods are to be added.
   private Map<IDeviceID, DeviceContext> devicePathsToContext;
 
@@ -485,6 +487,9 @@ public class FragmentInstanceContext extends QueryContext {
 
   public void setSourcePaths(List<IFullPath> sourcePaths) {
     this.sourcePaths = sourcePaths;
+    if (sourcePaths != null && sourcePaths.size() == 1) {
+      singleSourcePath = true;
+    }
   }
 
   public void setDevicePathsToContext(Map<IDeviceID, DeviceContext> devicePathsToContext) {
@@ -969,7 +974,7 @@ public class FragmentInstanceContext extends QueryContext {
     return ignoreNotExistsDevice;
   }
 
-  public List<IFullPath> getSourcePaths() {
-    return sourcePaths;
+  public boolean isSingleSourcePath() {
+    return singleSourcePath;
   }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryContext.java
index 52233a52789..4769ebed197 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryContext.java
@@ -108,7 +108,7 @@ public class QueryContext {
           resource.getTsFileID(), k -> loadAllModificationsFromDisk(resource));
     }
     FragmentInstanceContext fragmentInstanceContext = (FragmentInstanceContext) this;
-    if (fragmentInstanceContext.getSourcePaths().size() == 1) {
+    if (fragmentInstanceContext.isSingleSourcePath()) {
       return loadAllModificationsFromDisk(resource);
     }
 
@@ -199,7 +199,7 @@ public class QueryContext {
     if (fileModEntries == null) {
       return Collections.emptyList();
     }
-    List<ModEntry> modEntries = fileModEntries.getOverlapped(new PartialPath(deviceID));
+    List<ModEntry> modEntries = fileModEntries.getDeviceOverlapped(new PartialPath(deviceID));
     if (deviceID.isTableModel()) {
       // the pattern tree has false-positive for table model deletion, so we do a further
       //     filtering