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]