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

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


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 9d0f7fe4ab5 branch-4.0: [fix](array) fix function size for const param 
#56432 (#56557)
9d0f7fe4ab5 is described below

commit 9d0f7fe4ab5ce976ae6e17f340e5780734f3660a
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Sep 29 09:31:39 2025 +0800

    branch-4.0: [fix](array) fix function size for const param #56432 (#56557)
    
    Cherry-picked from #56432
    
    Co-authored-by: amory <[email protected]>
---
 be/src/vec/functions/function_size.cpp                       |  6 +++---
 .../sql_functions/size_funciton/test_size_function.out       | 12 ++++++++++++
 .../sql_functions/size_funciton/test_size_function.groovy    |  6 +++++-
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/be/src/vec/functions/function_size.cpp 
b/be/src/vec/functions/function_size.cpp
index 64ada99bfcf..73f86ec5b8b 100644
--- a/be/src/vec/functions/function_size.cpp
+++ b/be/src/vec/functions/function_size.cpp
@@ -62,11 +62,11 @@ public:
         auto& dst_data = dst_column->get_data();
 
         if (left_const && map_column) {
-            for (size_t i = 0; i < map_column->size(); i++) {
+            for (size_t i = 0; i < input_rows_count; i++) {
                 dst_data[i] = map_column->size_at(0);
             }
         } else if (left_const && array_column) {
-            for (size_t i = 0; i < array_column->size(); i++) {
+            for (size_t i = 0; i < input_rows_count; i++) {
                 dst_data[i] = array_column->size_at(0);
             }
         } else if (map_column) {
@@ -93,4 +93,4 @@ void register_function_size(SimpleFunctionFactory& factory) {
     factory.register_alias(FunctionSize::name, "cardinality");
     factory.register_alias(FunctionSize::name, "array_size");
 }
-} // namespace doris::vectorized
\ No newline at end of file
+} // namespace doris::vectorized
diff --git 
a/regression-test/data/query_p0/sql_functions/size_funciton/test_size_function.out
 
b/regression-test/data/query_p0/sql_functions/size_funciton/test_size_function.out
index 46221232a81..cc453fbea27 100644
--- 
a/regression-test/data/query_p0/sql_functions/size_funciton/test_size_function.out
+++ 
b/regression-test/data/query_p0/sql_functions/size_funciton/test_size_function.out
@@ -29,3 +29,15 @@
 5      3       3
 4      3       2
 
+-- !sql --
+3      3
+3      3
+3      3
+3      3
+
+-- !sql --
+2      2
+2      2
+2      2
+2      2
+
diff --git 
a/regression-test/suites/query_p0/sql_functions/size_funciton/test_size_function.groovy
 
b/regression-test/suites/query_p0/sql_functions/size_funciton/test_size_function.groovy
index fb897692790..c52995c0d01 100644
--- 
a/regression-test/suites/query_p0/sql_functions/size_funciton/test_size_function.groovy
+++ 
b/regression-test/suites/query_p0/sql_functions/size_funciton/test_size_function.groovy
@@ -52,4 +52,8 @@ suite("test_size_function") {
             (3, [1,3,4,2], ['222', '444', '555'], {11: NULL, 0:"ss"});
         """
         qt_select_00 " select size(c_array1), size(c_array2), size(c_map) from 
${tableName} order by id;"
-}
\ No newline at end of file
+
+    // for some const and table 
+    qt_sql "select size(array(1,2,3)), array_size(array(1,2,3)) from 
${tableName} order by id;"
+    qt_sql "select size(map(1,2,2,3)), map_size(map(1,2,2,3)) from 
${tableName} order by id;"
+}


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

Reply via email to