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 cc3c442a1e2 Return empty result set for non aligned series when no 
filed columns can be obtained from view
cc3c442a1e2 is described below

commit cc3c442a1e21bff51bd362378fa0401a788d14fe
Author: shuwenwei <[email protected]>
AuthorDate: Tue Jun 17 14:25:03 2025 +0800

    Return empty result set for non aligned series when no filed columns can be 
obtained from view
---
 .../db/queryengine/plan/planner/TableOperatorGenerator.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
index 15866d0e6e8..2132df0af1d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
@@ -451,9 +451,22 @@ public class TableOperatorGenerator extends 
PlanVisitor<Operator, LocalExecution
                       TypeFactory.getType(columnSchema.getDataType()),
                       false,
                       columnSchema.getColumnCategory()));
+          containsFieldColumn = true;
         }
       }
     }
+    // For non-aligned series, scan cannot be performed when no field columns
+    // can be obtained, so an empty result set is returned.
+    if (!containsFieldColumn || node.getDeviceEntries().isEmpty()) {
+      OperatorContext operatorContext =
+          context
+              .getDriverContext()
+              .addOperatorContext(
+                  context.getNextOperatorId(),
+                  node.getPlanNodeId(),
+                  EmptyDataOperator.class.getSimpleName());
+      return new EmptyDataOperator(operatorContext);
+    }
     String treePrefixPath = DataNodeTreeViewSchemaUtils.getPrefixPath(tsTable);
     IDeviceID.TreeDeviceIdColumnValueExtractor extractor =
         
TableOperatorGenerator.createTreeDeviceIdColumnValueExtractor(treePrefixPath);

Reply via email to