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]