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

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ebb54afdc3 [fix](null equal) fix coredump of pushing eq_for_null 
(#27341)
1ebb54afdc3 is described below

commit 1ebb54afdc331cdef7d02a66212a2f2b69413268
Author: TengJianPing <[email protected]>
AuthorDate: Tue Nov 21 18:36:33 2023 +0800

    [fix](null equal) fix coredump of pushing eq_for_null (#27341)
---
 be/src/pipeline/exec/scan_operator.cpp                       | 2 +-
 be/src/vec/exec/scan/vscan_node.cpp                          | 2 +-
 regression-test/data/correctness_p0/test_null_equal.out      | 3 +++
 regression-test/suites/correctness_p0/test_null_equal.groovy | 3 +++
 4 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/be/src/pipeline/exec/scan_operator.cpp 
b/be/src/pipeline/exec/scan_operator.cpp
index 85ccf8620ca..fbbf2e05d7f 100644
--- a/be/src/pipeline/exec/scan_operator.cpp
+++ b/be/src/pipeline/exec/scan_operator.cpp
@@ -945,7 +945,7 @@ Status 
ScanLocalState<Derived>::_normalize_noneq_binary_predicate(
         DCHECK(expr->children().size() == 2);
 
         auto noneq_checker = [](const std::string& fn_name) {
-            return fn_name != "ne" && fn_name != "eq";
+            return fn_name != "ne" && fn_name != "eq" && fn_name != 
"eq_for_null";
         };
         StringRef value;
         int slot_ref_child = -1;
diff --git a/be/src/vec/exec/scan/vscan_node.cpp 
b/be/src/vec/exec/scan/vscan_node.cpp
index d711aa43b4a..305bafe10f7 100644
--- a/be/src/vec/exec/scan/vscan_node.cpp
+++ b/be/src/vec/exec/scan/vscan_node.cpp
@@ -970,7 +970,7 @@ Status VScanNode::_normalize_noneq_binary_predicate(VExpr* 
expr, VExprContext* e
         DCHECK(expr->children().size() == 2);
 
         auto noneq_checker = [](const std::string& fn_name) {
-            return fn_name != "ne" && fn_name != "eq";
+            return fn_name != "ne" && fn_name != "eq" && fn_name != 
"eq_for_null";
         };
         StringRef value;
         int slot_ref_child = -1;
diff --git a/regression-test/data/correctness_p0/test_null_equal.out 
b/regression-test/data/correctness_p0/test_null_equal.out
index 39d74087270..2c927e4744b 100644
--- a/regression-test/data/correctness_p0/test_null_equal.out
+++ b/regression-test/data/correctness_p0/test_null_equal.out
@@ -194,3 +194,6 @@ false
 2      2
 3      3
 
+-- !test7 --
+1
+
diff --git a/regression-test/suites/correctness_p0/test_null_equal.groovy 
b/regression-test/suites/correctness_p0/test_null_equal.groovy
index a9c9ea5ca00..653dc59e90f 100644
--- a/regression-test/suites/correctness_p0/test_null_equal.groovy
+++ b/regression-test/suites/correctness_p0/test_null_equal.groovy
@@ -70,5 +70,8 @@ suite("test_null_equal") {
 
     qt_test6 "select * from test_eq_for_null_nullable a, 
test_eq_for_null_nullable2 b where a.k1 <=> b.k1 order by 1;"
 
+    qt_test7 "select * from test_eq_for_null_nullable2 where k1 <=> 1 order by 
1;"
+
+
 
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to