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

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


The following commit(s) were added to refs/heads/fix_having by this push:
     new 29f33e499d3 fix it
29f33e499d3 is described below

commit 29f33e499d381f5220510e33f772f98a30b9b677
Author: Beyyes <[email protected]>
AuthorDate: Sun Oct 27 23:36:38 2024 +0800

    fix it
---
 .../org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java    | 2 +-
 .../cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java       | 4 ++--
 .../planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java     | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java
index cc5fdeb5b27..107ee1c137e 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/alignbydevice/IoTDBAlignByDeviceIT.java
@@ -669,7 +669,7 @@ public class IoTDBAlignByDeviceIT {
       try (ResultSet resultSet =
           statement.executeQuery(
               "select count(s0),count(s1),count(s2),count(s3),count(s4) "
-                  + "from root.vehicle.d1,root.vehicle.d0 align by device")) {
+                  + "from root.vehicle.d1,root.vehicle.d0 having count(s0) is 
not null or count(s5) is not null align by device")) {
         ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
         List<Integer> actualIndexToExpectedIndexList =
             checkHeader(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java
index 372c861481a..d5e4d33f087 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/visitor/cartesian/ConcatDeviceAndBindSchemaForPredicateVisitor.java
@@ -26,7 +26,6 @@ import org.apache.iotdb.db.queryengine.common.MPPQueryContext;
 import org.apache.iotdb.db.queryengine.common.schematree.ISchemaTree;
 import org.apache.iotdb.db.queryengine.plan.expression.Expression;
 import org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.queryengine.plan.expression.leaf.NullOperand;
 import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.queryengine.plan.expression.leaf.TimestampOperand;
 import 
org.apache.iotdb.db.queryengine.plan.expression.multi.FunctionExpression;
@@ -40,6 +39,7 @@ import java.util.List;
 import static 
org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.cartesianProduct;
 import static 
org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructFunctionExpressionsWithMemoryCheck;
 import static 
org.apache.iotdb.db.queryengine.plan.analyze.ExpressionUtils.reconstructTimeSeriesOperandsWithMemoryCheck;
+import static 
org.apache.iotdb.db.queryengine.plan.expression.leaf.ConstantOperand.FALSE;
 import static 
org.apache.iotdb.db.queryengine.plan.expression.visitor.cartesian.BindSchemaForExpressionVisitor.transformViewPath;
 
 public class ConcatDeviceAndBindSchemaForPredicateVisitor
@@ -70,7 +70,7 @@ public class ConcatDeviceAndBindSchemaForPredicateVisitor
     List<MeasurementPath> actualPaths =
         context.getSchemaTree().searchMeasurementPaths(concatPath).left;
     if (actualPaths.isEmpty()) {
-      return Collections.singletonList(new NullOperand());
+      return Collections.singletonList(FALSE);
     }
     for (MeasurementPath measurementPath : actualPaths) {
       if (measurementPath.getMeasurementSchema().isLogicalView()) {
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java
index 41712e261b2..f92a8792be4 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AlignByDeviceOrderByLimitOffsetTest.java
@@ -701,7 +701,7 @@ public class AlignByDeviceOrderByLimitOffsetTest {
     // aggregation + order by time + having, has LIMIT
     // SingleDeviceViewNode + MergeSortNode
     sql =
-        "select count(s1) from root.sg.d1,root.sg.d22,root.sg.d333 
having(count(s1) > 1 or count(s_not_exist) > 1) ORDER BY TIME DESC LIMIT 10 
align by device";
+        "select count(s1) from root.sg.d1,root.sg.d22,root.sg.d333 
having(count(s1) > 1 or count(s_not_exist) is not null) ORDER BY TIME DESC 
LIMIT 10 align by device";
     analysis = Util.analyze(sql, context);
     logicalPlanNode = Util.genLogicalPlan(analysis, context);
     planner = new DistributionPlanner(analysis, new LogicalQueryPlan(context, 
logicalPlanNode));

Reply via email to