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

Reply via email to