This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new 8930f42fa9 [Improve](serde) support text serde for nested type-array/map pick from #22738 (#23514) 8930f42fa9 is described below commit 8930f42fa9c2463a90a6ed256d8d44d3698dc8a8 Author: amory <wangqian...@selectdb.com> AuthorDate: Fri Aug 25 22:40:49 2023 +0800 [Improve](serde) support text serde for nested type-array/map pick from #22738 (#23514) --- be/src/vec/data_types/data_type_decimal.h | 2 +- be/src/vec/data_types/serde/data_type_date64_serde.cpp | 1 + be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp | 1 + be/src/vec/data_types/serde/data_type_datev2_serde.cpp | 1 + be/src/vec/data_types/serde/data_type_decimal_serde.cpp | 1 + be/src/vec/data_types/serde/data_type_decimal_serde.h | 4 +++- be/src/vec/data_types/serde/data_type_jsonb_serde.cpp | 3 ++- be/src/vec/data_types/serde/data_type_number_serde.cpp | 3 +++ be/src/vec/data_types/serde/data_type_serde.h | 1 + 9 files changed, 14 insertions(+), 3 deletions(-) diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index 78c30c673c..138f277c3f 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -249,7 +249,7 @@ public: void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override; Status from_string(ReadBuffer& rb, IColumn* column) const override; DataTypeSerDeSPtr get_serde() const override { - return std::make_shared<DataTypeDecimalSerDe<T>>(scale); + return std::make_shared<DataTypeDecimalSerDe<T>>(scale, precision); }; /// Decimal specific diff --git a/be/src/vec/data_types/serde/data_type_date64_serde.cpp b/be/src/vec/data_types/serde/data_type_date64_serde.cpp index d6a8986b7f..6afe531eab 100644 --- a/be/src/vec/data_types/serde/data_type_date64_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_date64_serde.cpp @@ -23,6 +23,7 @@ #include "gutil/casts.h" #include "vec/columns/column_const.h" +#include "vec/io/io_helper.h" namespace doris { namespace vectorized { diff --git a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp index 2205c21c6a..368932217e 100644 --- a/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp @@ -23,6 +23,7 @@ #include "gutil/casts.h" #include "vec/columns/column_const.h" +#include "vec/io/io_helper.h" namespace doris { namespace vectorized { diff --git a/be/src/vec/data_types/serde/data_type_datev2_serde.cpp b/be/src/vec/data_types/serde/data_type_datev2_serde.cpp index 0025086abd..6c86a7c990 100644 --- a/be/src/vec/data_types/serde/data_type_datev2_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_datev2_serde.cpp @@ -23,6 +23,7 @@ #include "gutil/casts.h" #include "vec/columns/column_const.h" +#include "vec/io/io_helper.h" namespace doris { namespace vectorized { diff --git a/be/src/vec/data_types/serde/data_type_decimal_serde.cpp b/be/src/vec/data_types/serde/data_type_decimal_serde.cpp index f639a94e64..e356b5dc0a 100644 --- a/be/src/vec/data_types/serde/data_type_decimal_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_decimal_serde.cpp @@ -26,6 +26,7 @@ #include "gutil/casts.h" #include "vec/columns/column_decimal.h" #include "vec/common/arithmetic_overflow.h" +#include "vec/io/io_helper.h" namespace doris { diff --git a/be/src/vec/data_types/serde/data_type_decimal_serde.h b/be/src/vec/data_types/serde/data_type_decimal_serde.h index 9ac2dacf6e..1bde810e87 100644 --- a/be/src/vec/data_types/serde/data_type_decimal_serde.h +++ b/be/src/vec/data_types/serde/data_type_decimal_serde.h @@ -63,8 +63,9 @@ public: __builtin_unreachable(); } - DataTypeDecimalSerDe(int scale_) + DataTypeDecimalSerDe(int scale_, int precision_) : scale(scale_), + precision(precision_), scale_multiplier(decimal_scale_multiplier<typename T::NativeType>(scale)) {} void serialize_one_cell_to_text(const IColumn& column, int row_num, BufferWritable& bw, @@ -105,6 +106,7 @@ private: int row_idx, bool col_const) const; int scale; + int precision; const T::NativeType scale_multiplier; mutable char buf[T::max_string_length()]; }; diff --git a/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp b/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp index b2546b8aec..9b78d51982 100644 --- a/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_jsonb_serde.cpp @@ -17,7 +17,8 @@ #include "data_type_jsonb_serde.h" -#include <arrow/array/builder_binary.h> +#include "arrow/array/builder_binary.h" +#include "runtime/jsonb_value.h" namespace doris { namespace vectorized { diff --git a/be/src/vec/data_types/serde/data_type_number_serde.cpp b/be/src/vec/data_types/serde/data_type_number_serde.cpp index 8bb3473c07..474d37225f 100644 --- a/be/src/vec/data_types/serde/data_type_number_serde.cpp +++ b/be/src/vec/data_types/serde/data_type_number_serde.cpp @@ -22,6 +22,9 @@ #include <type_traits> #include "gutil/casts.h" +#include "gutil/strings/numbers.h" +#include "util/mysql_global.h" +#include "vec/io/io_helper.h" namespace doris { namespace vectorized { diff --git a/be/src/vec/data_types/serde/data_type_serde.h b/be/src/vec/data_types/serde/data_type_serde.h index 15d44bf692..59ca3d0291 100644 --- a/be/src/vec/data_types/serde/data_type_serde.h +++ b/be/src/vec/data_types/serde/data_type_serde.h @@ -29,6 +29,7 @@ #include "vec/columns/column_nullable.h" #include "vec/common/pod_array.h" #include "vec/common/pod_array_fwd.h" +#include "vec/common/string_buffer.hpp" #include "vec/core/types.h" namespace arrow { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org