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

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new b8621364d25 [FIX](serde)fix scale with decimalv2 in mysql writer which 
get real scale #25190
b8621364d25 is described below

commit b8621364d254c6d1a16f93dee96e599cedd53e38
Author: amory <wangqian...@selectdb.com>
AuthorDate: Tue Oct 10 09:09:57 2023 +0800

    [FIX](serde)fix scale with decimalv2 in mysql writer which get real scale 
#25190
---
 be/src/vec/sink/vmysql_result_writer.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/be/src/vec/sink/vmysql_result_writer.cpp 
b/be/src/vec/sink/vmysql_result_writer.cpp
index 208f0a2fddf..bd372ffcbfe 100644
--- a/be/src/vec/sink/vmysql_result_writer.cpp
+++ b/be/src/vec/sink/vmysql_result_writer.cpp
@@ -139,7 +139,15 @@ Status 
VMysqlResultWriter<is_binary_format>::append_block(Block& input_block) {
         std::vector<Arguments> arguments;
         for (int i = 0; i < _output_vexpr_ctxs.size(); ++i) {
             const auto& [column_ptr, col_const] = 
unpack_if_const(block.get_by_position(i).column);
-            auto serde = block.get_by_position(i).type->get_serde();
+            int scale = _output_vexpr_ctxs[i]->root()->type().scale;
+            // decimalv2 scale and precision is hard code, so we should get 
real scale and precision
+            // from expr
+            DataTypeSerDeSPtr serde;
+            if (_output_vexpr_ctxs[i]->root()->type().is_decimal_v2_type()) {
+                serde = 
std::make_shared<DataTypeDecimalSerDe<vectorized::Decimal128>>(scale, 27);
+            } else {
+                serde = block.get_by_position(i).type->get_serde();
+            }
             serde->set_return_object_as_string(output_object_data());
             arguments.emplace_back(column_ptr.get(), col_const, serde);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to