From 92a0919e9ce785234b5a84746106eb39abd47602 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:51:33 +0800 Subject: [PATCH] branch-2.1: [Bug](function)fix json_object function check null nums error as return bool #44321 (#44381) Cherry-picked from #44321 Co-authored-by: zhangstar333 --- be/src/vec/functions/function_json.cpp | 6 +++--- .../sql_functions/json_function/test_query_json_object.out | 4 ++++ .../json_function/test_query_json_object.groovy | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/be/src/vec/functions/function_json.cpp b/be/src/vec/functions/function_json.cpp index 19a359dabe..ca2a605f48 100644 --- a/be/src/vec/functions/function_json.cpp +++ b/be/src/vec/functions/function_json.cpp @@ -784,13 +784,13 @@ public: for (int i = 0; i < args; i += 2) { const auto* null_map = nullmaps[i]; if (null_map) { - const bool not_null_num = + auto not_null_num = simd::count_zero_num((int8_t*)null_map->get_data().data(), size); if (not_null_num < size) { return Status::InternalError( "function {} can not input null value , JSON documents may not contain " - "NULL member names.", - name); + "NULL member names. input size is {}:{}", + name, size, not_null_num); } } } diff --git a/regression-test/data/query_p0/sql_functions/json_function/test_query_json_object.out b/regression-test/data/query_p0/sql_functions/json_function/test_query_json_object.out index 6dc8847157..13d30f6e75 100644 --- a/regression-test/data/query_p0/sql_functions/json_function/test_query_json_object.out +++ b/regression-test/data/query_p0/sql_functions/json_function/test_query_json_object.out @@ -6,3 +6,7 @@ {"k0":4,"k1":null,"k2":null,"k3":"test","k4":"2022-01-01 11:11:11","k5":null,"k6":"k6"} {"k0":5,"k1":1,"k2":true,"k3":"test","k4":"2022-01-01 11:11:11","k5":null,"k6":"k6"} +-- !sql2 -- +{"k0":"k00"} +{"k1":"k11"} + diff --git a/regression-test/suites/query_p0/sql_functions/json_function/test_query_json_object.groovy b/regression-test/suites/query_p0/sql_functions/json_function/test_query_json_object.groovy index c3b1e35b5e..2ee0c64276 100644 --- a/regression-test/suites/query_p0/sql_functions/json_function/test_query_json_object.groovy +++ b/regression-test/suites/query_p0/sql_functions/json_function/test_query_json_object.groovy @@ -45,5 +45,7 @@ suite("test_query_json_object", "query") { sql """select k0,json_object(k3,123) from ${tableName} order by k0;""" exception "function json_object can not input null value , JSON documents may not contain NULL member names." } + + qt_sql2 """select json_object ( CONCAT('k',t.number%30926%3000 + 0),CONCAT('k',t.number%30926%3000 + 0,t.number%1000000) ) from numbers("number" = "2") t order by 1;""" sql "DROP TABLE ${tableName};" }