diff --git a/be/src/vec/exprs/vectorized_fn_call.cpp b/be/src/vec/exprs/vectorized_fn_call.cpp index 96c7d5bd88..e3ea8a466c 100644 --- a/be/src/vec/exprs/vectorized_fn_call.cpp +++ b/be/src/vec/exprs/vectorized_fn_call.cpp @@ -154,7 +154,15 @@ bool VectorizedFnCall::fast_execute(FunctionContext* context, Block& block, auto result_column = block.get_by_name(result_column_name).column->convert_to_full_column_if_const(); - block.replace_by_position(result, std::move(result_column)); + auto& result_info = block.get_by_position(result); + if (result_info.type->is_nullable()) { + block.replace_by_position(result, + ColumnNullable::create(std::move(result_column), + ColumnUInt8::create(input_rows_count, 0))); + } else { + block.replace_by_position(result, std::move(result_column)); + } + return true; } diff --git a/be/src/vec/functions/function_helpers.cpp b/be/src/vec/functions/function_helpers.cpp index 5fc2a11e87..c6fcfce190 100644 --- a/be/src/vec/functions/function_helpers.cpp +++ b/be/src/vec/functions/function_helpers.cpp @@ -79,7 +79,8 @@ std::tuple create_block_with_nested_columns(const Block& b res.insert({ColumnConst::create(nested_col, col.column->size()), nested_type, col.name}); } else { - LOG(FATAL) << "Illegal column for DataTypeNullable"; + LOG(FATAL) << "Illegal column= " << col.column->get_name() + << " for DataTypeNullable"; } } else { res.insert(col);