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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]