This is an automated email from the ASF dual-hosted git repository. xuyang 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 77ef19dbcd [BugFix](Array)Fix using Array aggregate function caused be coredump (#10649) 77ef19dbcd is described below commit 77ef19dbcda49212ea53343f7accf615c504fdf4 Author: xy720 <22125576+xy...@users.noreply.github.com> AuthorDate: Mon Jul 18 13:47:17 2022 +0800 [BugFix](Array)Fix using Array aggregate function caused be coredump (#10649) --- be/src/vec/functions/array/function_array_mapped.h | 10 ++++------ .../array_functions/test_array_functions_by_literal.out | 11 +++++++++++ .../array_functions/test_array_functions_by_literal.groovy | 6 ++++++ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/be/src/vec/functions/array/function_array_mapped.h b/be/src/vec/functions/array/function_array_mapped.h index 6a38993fb4..0314d480ea 100644 --- a/be/src/vec/functions/array/function_array_mapped.h +++ b/be/src/vec/functions/array/function_array_mapped.h @@ -50,15 +50,13 @@ public: Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, size_t result, size_t input_rows_count) override { const auto& typed_column = block.get_by_position(arguments[0]); + auto ptr = typed_column.column->convert_to_full_column_if_const(); const typename Impl::column_type* column_array; - if (typed_column.column->is_nullable()) { + if (ptr->is_nullable()) { column_array = check_and_get_column<const typename Impl::column_type>( - static_cast<const ColumnNullable*>(typed_column.column.get()) - ->get_nested_column_ptr() - .get()); + static_cast<const ColumnNullable*>(ptr.get())->get_nested_column_ptr().get()); } else { - column_array = check_and_get_column<const typename Impl::column_type>( - typed_column.column.get()); + column_array = check_and_get_column<const typename Impl::column_type>(ptr.get()); } const auto* data_type_array = static_cast<const DataTypeArray*>(remove_nullable(typed_column.type).get()); diff --git a/regression-test/data/query/sql_functions/array_functions/test_array_functions_by_literal.out b/regression-test/data/query/sql_functions/array_functions/test_array_functions_by_literal.out index 28c69d2f55..0a37764fb7 100644 --- a/regression-test/data/query/sql_functions/array_functions/test_array_functions_by_literal.out +++ b/regression-test/data/query/sql_functions/array_functions/test_array_functions_by_literal.out @@ -98,3 +98,14 @@ false -- !sql -- \N +-- !sql -- +2 + +-- !sql -- +6 + +-- !sql -- +1 + +-- !sql -- +3 diff --git a/regression-test/suites/query/sql_functions/array_functions/test_array_functions_by_literal.groovy b/regression-test/suites/query/sql_functions/array_functions/test_array_functions_by_literal.groovy index c4349fd560..2fbc570e82 100644 --- a/regression-test/suites/query/sql_functions/array_functions/test_array_functions_by_literal.groovy +++ b/regression-test/suites/query/sql_functions/array_functions/test_array_functions_by_literal.groovy @@ -59,4 +59,10 @@ suite("test_array_functions_by_literal", "all") { qt_sql "select [1,2,NULL][3]" qt_sql "select [1,2,NULL][2]" qt_sql "select [][-1]" + + // array_aggregation function + qt_sql "select array_avg([1,2,3])" + qt_sql "select array_sum([1,2,3])" + qt_sql "select array_min([1,2,3])" + qt_sql "select array_max([1,2,3])" } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org