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