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

jackietien 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 e37d2b9b0db Fix NPE of empty data aggregation query when there is no 
push-down optimize in TableModel
e37d2b9b0db is described below

commit e37d2b9b0dbfa1286cda2cac753ed1dae57c24a0
Author: Weihao Li <[email protected]>
AuthorDate: Wed Nov 20 20:49:35 2024 +0800

    Fix NPE of empty data aggregation query when there is no push-down optimize 
in TableModel
---
 .../it/db/it/IoTDBMultiIDsWithAttributesTableIT.java           |  7 ++++++-
 .../planner/distribute/TableDistributedPlanGenerator.java      | 10 ++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
index 1b4f100bb44..1f414e41e0c 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
@@ -1027,11 +1027,16 @@ public class IoTDBMultiIDsWithAttributesTableIT {
     retArray = new String[] {"0,0,null,"};
     tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
 
-    // no data in given time range
+    // no data in given time range (push-down)
     sql = "select count(*), count(num), sum(num) from table0 where 
time>2100-04-26T18:01:40.000";
     retArray = new String[] {"0,0,null,"};
     tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
 
+    // no data in given time range (no push-down)
+    sql = "select count(*), count(num+1), sum(num) from table0 where 
time>2100-04-26T18:01:40.000";
+    retArray = new String[] {"0,0,null,"};
+    tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
+
     // only one device has data in queried time
     expectedHeader = buildHeaders(2);
     sql = "select count(num),sum(num) from table1 where time=0";
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
index 0776fea9bca..05a36435310 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java
@@ -455,12 +455,10 @@ public class TableDistributedPlanGenerator
 
     for (DeviceEntry deviceEntry : node.getDeviceEntries()) {
       List<TRegionReplicaSet> regionReplicaSets =
-          analysis
-              .getDataPartitionInfo()
-              .getDataRegionReplicaSetWithTimeFilter(
-                  node.getQualifiedObjectName().getDatabaseName(),
-                  deviceEntry.getDeviceID(),
-                  node.getTimeFilter());
+          analysis.getDataRegionReplicaSetWithTimeFilter(
+              node.getQualifiedObjectName().getDatabaseName(),
+              deviceEntry.getDeviceID(),
+              node.getTimeFilter());
 
       for (TRegionReplicaSet regionReplicaSet : regionReplicaSets) {
         TableScanNode tableScanNode =

Reply via email to