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 =