This is an automated email from the ASF dual-hosted git repository. xuyang pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push: new 0710f43159e [fix](decimalv2) update set with a decimal literal overflowed make be crash (#30653) 0710f43159e is described below commit 0710f43159e7fb614f4e3d2bc602da47d8eb8bd9 Author: camby <camby...@tencent.com> AuthorDate: Thu Feb 1 11:54:22 2024 +0800 [fix](decimalv2) update set with a decimal literal overflowed make be crash (#30653) Issue Number: close #30449 After change: 1. if we do not set allow_invalid_decimalv2_literal=true in be, we got following error message: > update test_7 SET value = 0.1234567890123 WHERE id = '123'; ERROR 1105 (HY000): errCode = 2, detailMessage = failed to execute update stmt, query id: 3e1144db6f0d41eb-bb1a43e3c73a62c8, err: errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]Invalid decimal(scale: 9) value: 0.1234567890123 2. if we set allow_invalid_decimalv2_literal=true in be, we can update successfully and the decimal literal is truncated. --- be/src/vec/exprs/vexpr.cpp | 2 +- be/src/vec/sink/vtablet_sink.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/be/src/vec/exprs/vexpr.cpp b/be/src/vec/exprs/vexpr.cpp index bdda643b786..1e450cf8d15 100644 --- a/be/src/vec/exprs/vexpr.cpp +++ b/be/src/vec/exprs/vexpr.cpp @@ -171,7 +171,7 @@ Status VExpr::create_expr(doris::ObjectPool* pool, const doris::TExprNode& texpr return Status::InternalError("Unknown expr node type: {}", texpr_node.node_type); } } catch (const Exception& e) { - return Status::Error(e.code()); + return Status::Error(e.code(), e.message()); } if (!(*expr)->data_type()) { return Status::InvalidArgument("Unknown expr type: {}", texpr_node.node_type); diff --git a/be/src/vec/sink/vtablet_sink.cpp b/be/src/vec/sink/vtablet_sink.cpp index 012cbf0e7ca..d63c0142723 100644 --- a/be/src/vec/sink/vtablet_sink.cpp +++ b/be/src/vec/sink/vtablet_sink.cpp @@ -426,7 +426,7 @@ VOlapTableSink::VOlapTableSink(ObjectPool* pool, const RowDescriptor& row_desc, : OlapTableSink(pool, row_desc, texprs, status) { _is_vectorized = true; // From the thrift expressions create the real exprs. - vectorized::VExpr::create_expr_trees(pool, texprs, &_output_vexpr_ctxs); + *status = vectorized::VExpr::create_expr_trees(pool, texprs, &_output_vexpr_ctxs); _name = "VOlapTableSink"; } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org