You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2023/04/06 08:21:00 UTC

[iotdb] branch master updated: [IOTDB-5756] NPE when where predicate is NotEqualExpression and one of subExpression is not exist

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 7787399aa2 [IOTDB-5756] NPE when where predicate is NotEqualExpression and one of subExpression is not exist
7787399aa2 is described below

commit 7787399aa27a06fafbf2aab454869e9515921c34
Author: Weihao Li <60...@users.noreply.github.com>
AuthorDate: Thu Apr 6 16:20:53 2023 +0800

    [IOTDB-5756] NPE when where predicate is NotEqualExpression and one of subExpression is not exist
---
 .../test/java/org/apache/iotdb/db/it/query/IoTDBNullOperandIT.java    | 3 +++
 .../dag/column/binary/CompareNonEqualColumnTransformer.java           | 2 +-
 .../dag/column/binary/LogicBinaryColumnTransformer.java               | 4 ++--
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullOperandIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullOperandIT.java
index 8889c9c702..375289953c 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullOperandIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBNullOperandIT.java
@@ -254,6 +254,9 @@ public class IoTDBNullOperandIT {
 
     retArray = new String[] {};
     resultSetEqualTest("select s1, s3, s4 from root.** where notExist>0", expectedHeader, retArray);
+    resultSetEqualTest("select s1, s3, s4 from root.** where notExist=0", expectedHeader, retArray);
+    resultSetEqualTest(
+        "select s1, s3, s4 from root.** where notExist!=0", expectedHeader, retArray);
 
     resultSetEqualTest(
         "select s1, s3, s4 from root.** where diff(notExist)>0", expectedHeader, retArray);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java
index 4c58760bce..987fa47c59 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/CompareNonEqualColumnTransformer.java
@@ -30,7 +30,7 @@ public class CompareNonEqualColumnTransformer extends CompareBinaryColumnTransfo
 
   @Override
   protected final void checkType() {
-    if (leftTransformer.getType().getTypeEnum().equals(rightTransformer.getType().getTypeEnum())) {
+    if (typeEquals(leftTransformer, rightTransformer)) {
       return;
     }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/LogicBinaryColumnTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/LogicBinaryColumnTransformer.java
index 42c5d0d200..931570fad1 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/LogicBinaryColumnTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/column/binary/LogicBinaryColumnTransformer.java
@@ -31,8 +31,8 @@ public abstract class LogicBinaryColumnTransformer extends BinaryColumnTransform
 
   @Override
   protected void checkType() {
-    if (!leftTransformer.getType().getTypeEnum().equals(TypeEnum.BOOLEAN)
-        || !rightTransformer.getType().getTypeEnum().equals(TypeEnum.BOOLEAN)) {
+    if (!leftTransformer.typeEquals(TypeEnum.BOOLEAN)
+        || !rightTransformer.typeEquals(TypeEnum.BOOLEAN)) {
       throw new UnsupportedOperationException("Unsupported Type");
     }
   }