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

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


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new cb34e90b62b [branch-3.0 fix](expr) fix expr set result column id even 
when state is not ok #50938 (#51226)
cb34e90b62b is described below

commit cb34e90b62b4ccb99b0f1fa3922e5861dcfb1403
Author: Mryange <[email protected]>
AuthorDate: Wed Jun 11 11:08:26 2025 +0800

    [branch-3.0 fix](expr) fix expr set result column id even when state is not 
ok #50938 (#51226)
    
    …(#50938)
    https://github.com/apache/doris/pull/50938
    if cast return st not ok
    ```
    report error status: [E-254] std::bad_typeid
            0#  doris::get_stack_trace(int, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >) at 
/mnt/disk12/yanxuecheng/tmp-doris/be/src/util/stack_util.cpp:59
            1#  doris::Exception::Exception(int, std::basic_string_view<char, 
std::char_traits<char> > const&) at 
/mnt/disk12/yanxuecheng/tmp-doris/be/src/common/exception.cpp:30
            2#  doris::vectorized::ColumnStr<unsigned int> const* 
typeid_cast<doris::vectorized::ColumnStr<unsigned int> const*, 
doris::vectorized::IColumn const>(doris::vectorized::IColumn const*) at 
/mnt/disk12/yanxuecheng/tmp-doris/be/src/vec/common/typeid_cast.h:42
            3#  doris::vectorized::ColumnStr<unsigned int> const* 
doris::vectorized::check_and_get_column<doris::vectorized::ColumnStr<unsigned 
int> >(doris::vectorized::IColumn const*) at 
/mnt/disk12/yanxuecheng/tmp-doris/be/src/vec/columns/column.h:725
            4#  
doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) at 
/mnt/disk12/yanxuecheng/tmp-doris/be/src/vec/exprs/vexpr_context.cpp:61
    
    ```
---
 be/src/vec/exprs/vcast_expr.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/be/src/vec/exprs/vcast_expr.cpp b/be/src/vec/exprs/vcast_expr.cpp
index 38f861add87..26ab0da499a 100644
--- a/be/src/vec/exprs/vcast_expr.cpp
+++ b/be/src/vec/exprs/vcast_expr.cpp
@@ -120,6 +120,8 @@ doris::Status VCastExpr::execute(VExprContext* context, 
doris::vectorized::Block
         state = _function->execute(context->fn_context(_fn_context_index), 
*block,
                                    {static_cast<size_t>(column_id)}, 
num_columns_without_result,
                                    block->rows(), false);
+        RETURN_IF_ERROR(state);
+        // set the result column id only state is ok
         *result_column_id = num_columns_without_result;
     } catch (const Exception& e) {
         state = e.to_status();


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

Reply via email to