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

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


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new f71c31bbced branch-4.0: [refactor](type)refactor mysql output , rename 
write_column_to_mysql #57634 (#57829)
f71c31bbced is described below

commit f71c31bbced21bdeee3872aa70111518d436e709
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Nov 10 11:27:54 2025 +0800

    branch-4.0: [refactor](type)refactor mysql output , rename 
write_column_to_mysql #57634 (#57829)
    
    Cherry-picked from #57634
    
    Co-authored-by: Mryange <[email protected]>
---
 be/src/util/mysql_row_buffer.h                     |  3 +++
 .../vec/data_types/serde/data_type_array_serde.cpp | 16 +++++++-------
 .../vec/data_types/serde/data_type_array_serde.h   | 12 +++++------
 .../data_types/serde/data_type_bitmap_serde.cpp    | 16 +++++++-------
 .../vec/data_types/serde/data_type_bitmap_serde.h  | 12 +++++------
 .../serde/data_type_date_or_datetime_serde.cpp     |  8 +++----
 .../serde/data_type_date_or_datetime_serde.h       |  9 ++++----
 .../serde/data_type_datetimev2_serde.cpp           | 16 +++++++-------
 .../data_types/serde/data_type_datetimev2_serde.h  | 12 +++++------
 .../data_types/serde/data_type_datev2_serde.cpp    | 16 +++++++-------
 .../vec/data_types/serde/data_type_datev2_serde.h  | 12 +++++------
 .../data_types/serde/data_type_decimal_serde.cpp   | 16 +++++++-------
 .../vec/data_types/serde/data_type_decimal_serde.h | 12 +++++------
 .../vec/data_types/serde/data_type_hll_serde.cpp   | 14 ++++++------
 be/src/vec/data_types/serde/data_type_hll_serde.h  | 12 +++++------
 .../vec/data_types/serde/data_type_ipv4_serde.cpp  | 16 +++++++-------
 be/src/vec/data_types/serde/data_type_ipv4_serde.h | 12 +++++------
 .../vec/data_types/serde/data_type_ipv6_serde.cpp  | 16 +++++++-------
 be/src/vec/data_types/serde/data_type_ipv6_serde.h | 12 +++++------
 .../vec/data_types/serde/data_type_jsonb_serde.cpp | 16 +++++++-------
 .../vec/data_types/serde/data_type_jsonb_serde.h   | 12 +++++------
 .../vec/data_types/serde/data_type_map_serde.cpp   | 14 ++++++------
 be/src/vec/data_types/serde/data_type_map_serde.h  | 12 +++++------
 .../vec/data_types/serde/data_type_nothing_serde.h | 12 +++++------
 .../data_types/serde/data_type_nullable_serde.cpp  | 16 +++++++-------
 .../data_types/serde/data_type_nullable_serde.h    | 12 +++++------
 .../data_types/serde/data_type_number_serde.cpp    | 16 +++++++-------
 .../vec/data_types/serde/data_type_number_serde.h  | 12 +++++------
 .../serde/data_type_quantilestate_serde.h          | 12 +++++------
 be/src/vec/data_types/serde/data_type_serde.h      | 25 ++++++++++++++++------
 .../data_types/serde/data_type_string_serde.cpp    |  8 +++----
 .../vec/data_types/serde/data_type_string_serde.h  | 12 +++++------
 .../data_types/serde/data_type_struct_serde.cpp    | 16 +++++++-------
 .../vec/data_types/serde/data_type_struct_serde.h  | 12 +++++------
 .../vec/data_types/serde/data_type_time_serde.cpp  | 16 +++++++-------
 be/src/vec/data_types/serde/data_type_time_serde.h | 12 +++++------
 .../data_types/serde/data_type_varbinary_serde.cpp | 16 +++++++-------
 .../data_types/serde/data_type_varbinary_serde.h   | 12 +++++------
 .../data_types/serde/data_type_variant_serde.cpp   | 16 +++++++-------
 .../vec/data_types/serde/data_type_variant_serde.h | 12 +++++------
 40 files changed, 276 insertions(+), 257 deletions(-)

diff --git a/be/src/util/mysql_row_buffer.h b/be/src/util/mysql_row_buffer.h
index bcb6246f93b..e792691c1ef 100644
--- a/be/src/util/mysql_row_buffer.h
+++ b/be/src/util/mysql_row_buffer.h
@@ -144,4 +144,7 @@ private:
     char _default_buf[4096];
 };
 
+using MysqlRowTextBuffer = MysqlRowBuffer<false>;
+using MysqlRowBinaryBuffer = MysqlRowBuffer<true>;
+
 } // namespace doris
diff --git a/be/src/vec/data_types/serde/data_type_array_serde.cpp 
b/be/src/vec/data_types/serde/data_type_array_serde.cpp
index 97571257504..80082da89ef 100644
--- a/be/src/vec/data_types/serde/data_type_array_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_array_serde.cpp
@@ -389,17 +389,17 @@ Status DataTypeArraySerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeArraySerDe::write_column_to_mysql(const IColumn& column,
-                                                 MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                 bool col_const,
-                                                 const FormatOptions& options) 
const {
+Status DataTypeArraySerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                        MysqlRowBinaryBuffer& 
row_buffer,
+                                                        int64_t row_idx, bool 
col_const,
+                                                        const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeArraySerDe::write_column_to_mysql(const IColumn& column,
-                                                 MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                                 bool col_const,
-                                                 const FormatOptions& options) 
const {
+Status DataTypeArraySerDe::write_column_to_mysql_text(const IColumn& column,
+                                                      MysqlRowTextBuffer& 
row_buffer,
+                                                      int64_t row_idx, bool 
col_const,
+                                                      const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_array_serde.h 
b/be/src/vec/data_types/serde/data_type_array_serde.h
index eeedf502b5f..d215a72a33e 100644
--- a/be/src/vec/data_types/serde/data_type_array_serde.h
+++ b/be/src/vec/data_types/serde/data_type_array_serde.h
@@ -90,12 +90,12 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_bitmap_serde.cpp 
b/be/src/vec/data_types/serde/data_type_bitmap_serde.cpp
index 4f0166615f2..525fc24451a 100644
--- a/be/src/vec/data_types/serde/data_type_bitmap_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_bitmap_serde.cpp
@@ -173,17 +173,17 @@ Status DataTypeBitMapSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeBitMapSerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                  bool col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeBitMapSerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                         MysqlRowBinaryBuffer& 
row_buffer,
+                                                         int64_t row_idx, bool 
col_const,
+                                                         const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeBitMapSerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<false>& 
row_buffer,
-                                                  int64_t row_idx, bool 
col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeBitMapSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                       MysqlRowTextBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_bitmap_serde.h 
b/be/src/vec/data_types/serde/data_type_bitmap_serde.h
index 553bc924e06..a459a1a93bd 100644
--- a/be/src/vec/data_types/serde/data_type_bitmap_serde.h
+++ b/be/src/vec/data_types/serde/data_type_bitmap_serde.h
@@ -71,12 +71,12 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.cpp 
b/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.cpp
index 3c4de20d958..9c648144565 100644
--- a/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.cpp
@@ -278,15 +278,15 @@ Status DataTypeDateSerDe<T>::_write_column_to_mysql(
 }
 
 template <PrimitiveType T>
-Status DataTypeDateSerDe<T>::write_column_to_mysql(
-        const IColumn& column, MysqlRowBuffer<true>& row_buffer, int64_t 
row_idx, bool col_const,
+Status DataTypeDateSerDe<T>::write_column_to_mysql_binary(
+        const IColumn& column, MysqlRowBinaryBuffer& row_buffer, int64_t 
row_idx, bool col_const,
         const typename DataTypeNumberSerDe<T>::FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
 template <PrimitiveType T>
-Status DataTypeDateSerDe<T>::write_column_to_mysql(
-        const IColumn& column, MysqlRowBuffer<false>& row_buffer, int64_t 
row_idx, bool col_const,
+Status DataTypeDateSerDe<T>::write_column_to_mysql_text(
+        const IColumn& column, MysqlRowTextBuffer& row_buffer, int64_t 
row_idx, bool col_const,
         const typename DataTypeNumberSerDe<T>::FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
diff --git a/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.h 
b/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.h
index 0f0e182d4a2..15d867203d8 100644
--- a/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.h
+++ b/be/src/vec/data_types/serde/data_type_date_or_datetime_serde.h
@@ -104,13 +104,12 @@ public:
                                  const cctz::time_zone& ctz) const override;
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
-    Status write_column_to_mysql(
-            const IColumn& column, MysqlRowBuffer<true>& row_buffer, int64_t 
row_idx,
+    Status write_column_to_mysql_binary(
+            const IColumn& column, MysqlRowBinaryBuffer& row_buffer, int64_t 
row_idx,
             bool col_const,
             const typename DataTypeNumberSerDe<T>::FormatOptions& options) 
const override;
-    Status write_column_to_mysql(
-            const IColumn& column, MysqlRowBuffer<false>& row_buffer, int64_t 
row_idx,
-            bool col_const,
+    Status write_column_to_mysql_text(
+            const IColumn& column, MysqlRowTextBuffer& row_buffer, int64_t 
row_idx, bool col_const,
             const typename DataTypeNumberSerDe<T>::FormatOptions& options) 
const override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
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 aaac2807491..6f467d83076 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
@@ -446,17 +446,17 @@ Status 
DataTypeDateTimeV2SerDe::_write_column_to_mysql(const IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeDateTimeV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                      MysqlRowBuffer<true>& 
row_buffer,
-                                                      int64_t row_idx, bool 
col_const,
-                                                      const FormatOptions& 
options) const {
+Status DataTypeDateTimeV2SerDe::write_column_to_mysql_binary(const IColumn& 
column,
+                                                             
MysqlRowBinaryBuffer& row_buffer,
+                                                             int64_t row_idx, 
bool col_const,
+                                                             const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeDateTimeV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                      MysqlRowBuffer<false>& 
row_buffer,
-                                                      int64_t row_idx, bool 
col_const,
-                                                      const FormatOptions& 
options) const {
+Status DataTypeDateTimeV2SerDe::write_column_to_mysql_text(const IColumn& 
column,
+                                                           MysqlRowTextBuffer& 
row_buffer,
+                                                           int64_t row_idx, 
bool col_const,
+                                                           const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_datetimev2_serde.h 
b/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
index bd71421036c..6f9f11d3cd8 100644
--- a/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
+++ b/be/src/vec/data_types/serde/data_type_datetimev2_serde.h
@@ -89,12 +89,12 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
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 e0fe070e686..d6e77bc9b79 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
@@ -149,17 +149,17 @@ Status DataTypeDateV2SerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeDateV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                  bool col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeDateV2SerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                         MysqlRowBinaryBuffer& 
row_buffer,
+                                                         int64_t row_idx, bool 
col_const,
+                                                         const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeDateV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<false>& 
row_buffer,
-                                                  int64_t row_idx, bool 
col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeDateV2SerDe::write_column_to_mysql_text(const IColumn& column,
+                                                       MysqlRowTextBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_datev2_serde.h 
b/be/src/vec/data_types/serde/data_type_datev2_serde.h
index 430ff5219ee..b1e7b8457bb 100644
--- a/be/src/vec/data_types/serde/data_type_datev2_serde.h
+++ b/be/src/vec/data_types/serde/data_type_datev2_serde.h
@@ -86,12 +86,12 @@ public:
                                  const cctz::time_zone& ctz) const override;
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
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 e9f3f5d5dba..0af0c5acf7d 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
@@ -378,18 +378,18 @@ Status 
DataTypeDecimalSerDe<T>::_write_column_to_mysql(const IColumn& column,
 }
 
 template <PrimitiveType T>
-Status DataTypeDecimalSerDe<T>::write_column_to_mysql(const IColumn& column,
-                                                      MysqlRowBuffer<true>& 
row_buffer,
-                                                      int64_t row_idx, bool 
col_const,
-                                                      const FormatOptions& 
options) const {
+Status DataTypeDecimalSerDe<T>::write_column_to_mysql_binary(const IColumn& 
column,
+                                                             
MysqlRowBinaryBuffer& row_buffer,
+                                                             int64_t row_idx, 
bool col_const,
+                                                             const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
 template <PrimitiveType T>
-Status DataTypeDecimalSerDe<T>::write_column_to_mysql(const IColumn& column,
-                                                      MysqlRowBuffer<false>& 
row_buffer,
-                                                      int64_t row_idx, bool 
col_const,
-                                                      const FormatOptions& 
options) const {
+Status DataTypeDecimalSerDe<T>::write_column_to_mysql_text(const IColumn& 
column,
+                                                           MysqlRowTextBuffer& 
row_buffer,
+                                                           int64_t row_idx, 
bool col_const,
+                                                           const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
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 277a0309abd..3188cdd1001 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
@@ -108,12 +108,12 @@ public:
                                  const cctz::time_zone& ctz) const override;
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_hll_serde.cpp 
b/be/src/vec/data_types/serde/data_type_hll_serde.cpp
index b4e754f4074..9c2c0ef430f 100644
--- a/be/src/vec/data_types/serde/data_type_hll_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_hll_serde.cpp
@@ -170,15 +170,17 @@ Status DataTypeHLLSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeHLLSerDe::write_column_to_mysql(const IColumn& column,
-                                               MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                               bool col_const, const 
FormatOptions& options) const {
+Status DataTypeHLLSerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                      MysqlRowBinaryBuffer& 
row_buffer,
+                                                      int64_t row_idx, bool 
col_const,
+                                                      const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeHLLSerDe::write_column_to_mysql(const IColumn& column,
-                                               MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                               bool col_const, const 
FormatOptions& options) const {
+Status DataTypeHLLSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                    MysqlRowTextBuffer& 
row_buffer, int64_t row_idx,
+                                                    bool col_const,
+                                                    const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_hll_serde.h 
b/be/src/vec/data_types/serde/data_type_hll_serde.h
index 011b59ad3d7..25ffbbef3b0 100644
--- a/be/src/vec/data_types/serde/data_type_hll_serde.h
+++ b/be/src/vec/data_types/serde/data_type_hll_serde.h
@@ -65,12 +65,12 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp 
b/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
index 407be5cb230..dec1651943c 100644
--- a/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_ipv4_serde.cpp
@@ -53,17 +53,17 @@ Status DataTypeIPv4SerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeIPv4SerDe::write_column_to_mysql(const IColumn& column,
-                                                MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                bool col_const,
-                                                const FormatOptions& options) 
const {
+Status DataTypeIPv4SerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                       MysqlRowBinaryBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeIPv4SerDe::write_column_to_mysql(const IColumn& column,
-                                                MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                                bool col_const,
-                                                const FormatOptions& options) 
const {
+Status DataTypeIPv4SerDe::write_column_to_mysql_text(const IColumn& column,
+                                                     MysqlRowTextBuffer& 
row_buffer,
+                                                     int64_t row_idx, bool 
col_const,
+                                                     const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_ipv4_serde.h 
b/be/src/vec/data_types/serde/data_type_ipv4_serde.h
index c47107889df..e9c9c2af1b2 100644
--- a/be/src/vec/data_types/serde/data_type_ipv4_serde.h
+++ b/be/src/vec/data_types/serde/data_type_ipv4_serde.h
@@ -40,12 +40,12 @@ public:
     DataTypeIPv4SerDe(int nesting_level = 1)
             : DataTypeNumberSerDe<PrimitiveType::TYPE_IPV4>(nesting_level) {};
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
     Status serialize_one_cell_to_json(const IColumn& column, int64_t row_num, 
BufferWritable& bw,
                                       FormatOptions& options) const override;
     Status deserialize_one_cell_from_json(IColumn& column, Slice& slice,
diff --git a/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp 
b/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
index cabf5a3d275..6703d0c018c 100644
--- a/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_ipv6_serde.cpp
@@ -57,17 +57,17 @@ Status DataTypeIPv6SerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeIPv6SerDe::write_column_to_mysql(const IColumn& column,
-                                                MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                bool col_const,
-                                                const FormatOptions& options) 
const {
+Status DataTypeIPv6SerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                       MysqlRowBinaryBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeIPv6SerDe::write_column_to_mysql(const IColumn& column,
-                                                MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                                bool col_const,
-                                                const FormatOptions& options) 
const {
+Status DataTypeIPv6SerDe::write_column_to_mysql_text(const IColumn& column,
+                                                     MysqlRowTextBuffer& 
row_buffer,
+                                                     int64_t row_idx, bool 
col_const,
+                                                     const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_ipv6_serde.h 
b/be/src/vec/data_types/serde/data_type_ipv6_serde.h
index e57791985fe..4f18f43e71c 100644
--- a/be/src/vec/data_types/serde/data_type_ipv6_serde.h
+++ b/be/src/vec/data_types/serde/data_type_ipv6_serde.h
@@ -43,12 +43,12 @@ public:
     DataTypeIPv6SerDe(int nesting_level = 1)
             : DataTypeNumberSerDe<PrimitiveType::TYPE_IPV6>(nesting_level) {};
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
     Status serialize_one_cell_to_json(const IColumn& column, int64_t row_num, 
BufferWritable& bw,
                                       FormatOptions& options) const override;
     Status deserialize_one_cell_from_json(IColumn& column, Slice& slice,
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 072611f362e..e26747fdfdd 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
@@ -57,17 +57,17 @@ Status DataTypeJsonbSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeJsonbSerDe::write_column_to_mysql(const IColumn& column,
-                                                 MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                 bool col_const,
-                                                 const FormatOptions& options) 
const {
+Status DataTypeJsonbSerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                        MysqlRowBinaryBuffer& 
row_buffer,
+                                                        int64_t row_idx, bool 
col_const,
+                                                        const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeJsonbSerDe::write_column_to_mysql(const IColumn& column,
-                                                 MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                                 bool col_const,
-                                                 const FormatOptions& options) 
const {
+Status DataTypeJsonbSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                      MysqlRowTextBuffer& 
row_buffer,
+                                                      int64_t row_idx, bool 
col_const,
+                                                      const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_jsonb_serde.h 
b/be/src/vec/data_types/serde/data_type_jsonb_serde.h
index 1e0a1065b2c..cab03032eea 100644
--- a/be/src/vec/data_types/serde/data_type_jsonb_serde.h
+++ b/be/src/vec/data_types/serde/data_type_jsonb_serde.h
@@ -41,12 +41,12 @@ public:
     Status from_string(StringRef& str, IColumn& column,
                        const FormatOptions& options) const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
     Status write_column_to_arrow(const IColumn& column, const NullMap* 
null_map,
                                  arrow::ArrayBuilder* array_builder, int64_t 
start, int64_t end,
                                  const cctz::time_zone& ctz) const override;
diff --git a/be/src/vec/data_types/serde/data_type_map_serde.cpp 
b/be/src/vec/data_types/serde/data_type_map_serde.cpp
index 658bf07ab13..d6a1b8f5a22 100644
--- a/be/src/vec/data_types/serde/data_type_map_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_map_serde.cpp
@@ -482,15 +482,17 @@ Status DataTypeMapSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeMapSerDe::write_column_to_mysql(const IColumn& column,
-                                               MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                               bool col_const, const 
FormatOptions& options) const {
+Status DataTypeMapSerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                      MysqlRowBinaryBuffer& 
row_buffer,
+                                                      int64_t row_idx, bool 
col_const,
+                                                      const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeMapSerDe::write_column_to_mysql(const IColumn& column,
-                                               MysqlRowBuffer<false>& 
row_buffer, int64_t row_idx,
-                                               bool col_const, const 
FormatOptions& options) const {
+Status DataTypeMapSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                    MysqlRowTextBuffer& 
row_buffer, int64_t row_idx,
+                                                    bool col_const,
+                                                    const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_map_serde.h 
b/be/src/vec/data_types/serde/data_type_map_serde.h
index d9f12c4b66f..f45e5e18177 100644
--- a/be/src/vec/data_types/serde/data_type_map_serde.h
+++ b/be/src/vec/data_types/serde/data_type_map_serde.h
@@ -86,12 +86,12 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_nothing_serde.h 
b/be/src/vec/data_types/serde/data_type_nothing_serde.h
index 57d13c5d9ed..a67469deec1 100644
--- a/be/src/vec/data_types/serde/data_type_nothing_serde.h
+++ b/be/src/vec/data_types/serde/data_type_nothing_serde.h
@@ -91,15 +91,15 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override {
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override {
         return Status::NotSupported("write_column_to_mysql with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override {
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override {
         return Status::NotSupported("write_column_to_mysql with type " + 
column.get_name());
     }
 
diff --git a/be/src/vec/data_types/serde/data_type_nullable_serde.cpp 
b/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
index 6b386e882b1..985db532a53 100644
--- a/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_nullable_serde.cpp
@@ -372,17 +372,17 @@ Status 
DataTypeNullableSerDe::_write_column_to_mysql(const IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeNullableSerDe::write_column_to_mysql(const IColumn& column,
-                                                    MysqlRowBuffer<true>& 
row_buffer,
-                                                    int64_t row_idx, bool 
col_const,
-                                                    const FormatOptions& 
options) const {
+Status DataTypeNullableSerDe::write_column_to_mysql_binary(const IColumn& 
column,
+                                                           
MysqlRowBinaryBuffer& row_buffer,
+                                                           int64_t row_idx, 
bool col_const,
+                                                           const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeNullableSerDe::write_column_to_mysql(const IColumn& column,
-                                                    MysqlRowBuffer<false>& 
row_buffer,
-                                                    int64_t row_idx, bool 
col_const,
-                                                    const FormatOptions& 
options) const {
+Status DataTypeNullableSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                         MysqlRowTextBuffer& 
row_buffer,
+                                                         int64_t row_idx, bool 
col_const,
+                                                         const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_nullable_serde.h 
b/be/src/vec/data_types/serde/data_type_nullable_serde.h
index 64c58d99c8c..16bf509e649 100644
--- a/be/src/vec/data_types/serde/data_type_nullable_serde.h
+++ b/be/src/vec/data_types/serde/data_type_nullable_serde.h
@@ -85,12 +85,12 @@ public:
                                  const cctz::time_zone& ctz) const override;
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
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 0201a3a2ac9..d483ed4c647 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
@@ -500,18 +500,18 @@ Status 
DataTypeNumberSerDe<T>::_write_column_to_mysql(const IColumn& column,
 }
 
 template <PrimitiveType T>
-Status DataTypeNumberSerDe<T>::write_column_to_mysql(const IColumn& column,
-                                                     MysqlRowBuffer<true>& 
row_buffer,
-                                                     int64_t row_idx, bool 
col_const,
-                                                     const FormatOptions& 
options) const {
+Status DataTypeNumberSerDe<T>::write_column_to_mysql_binary(const IColumn& 
column,
+                                                            
MysqlRowBinaryBuffer& row_buffer,
+                                                            int64_t row_idx, 
bool col_const,
+                                                            const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
 template <PrimitiveType T>
-Status DataTypeNumberSerDe<T>::write_column_to_mysql(const IColumn& column,
-                                                     MysqlRowBuffer<false>& 
row_buffer,
-                                                     int64_t row_idx, bool 
col_const,
-                                                     const FormatOptions& 
options) const {
+Status DataTypeNumberSerDe<T>::write_column_to_mysql_text(const IColumn& 
column,
+                                                          MysqlRowTextBuffer& 
row_buffer,
+                                                          int64_t row_idx, 
bool col_const,
+                                                          const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_number_serde.h 
b/be/src/vec/data_types/serde/data_type_number_serde.h
index 783c7fc9bfc..9af5498a8dd 100644
--- a/be/src/vec/data_types/serde/data_type_number_serde.h
+++ b/be/src/vec/data_types/serde/data_type_number_serde.h
@@ -116,12 +116,12 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_quantilestate_serde.h 
b/be/src/vec/data_types/serde/data_type_quantilestate_serde.h
index d9eb3973bc8..9e4492035d4 100644
--- a/be/src/vec/data_types/serde/data_type_quantilestate_serde.h
+++ b/be/src/vec/data_types/serde/data_type_quantilestate_serde.h
@@ -125,14 +125,14 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override {
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override {
         return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
     }
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override {
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override {
         return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
     }
 
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 e4914acd739..e4cd4eaa041 100644
--- a/be/src/vec/data_types/serde/data_type_serde.h
+++ b/be/src/vec/data_types/serde/data_type_serde.h
@@ -415,13 +415,26 @@ public:
     virtual void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* 
arg) const = 0;
 
     // MySQL serializer and deserializer
-    virtual Status write_column_to_mysql(const IColumn& column, 
MysqlRowBuffer<false>& row_buffer,
-                                         int64_t row_idx, bool col_const,
-                                         const FormatOptions& options) const = 
0;
 
-    virtual Status write_column_to_mysql(const IColumn& column, 
MysqlRowBuffer<true>& row_buffer,
-                                         int64_t row_idx, bool col_const,
-                                         const FormatOptions& options) const = 
0;
+    template <bool is_binary_format>
+    Status write_column_to_mysql(const IColumn& column,
+                                 MysqlRowBuffer<is_binary_format>& row_buffer, 
int64_t row_idx,
+                                 bool col_const, const FormatOptions& options) 
const {
+        if constexpr (is_binary_format) {
+            return write_column_to_mysql_binary(column, row_buffer, row_idx, 
col_const, options);
+        } else {
+            return write_column_to_mysql_text(column, row_buffer, row_idx, 
col_const, options);
+        }
+    }
+
+    virtual Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                              int64_t row_idx, bool col_const,
+                                              const FormatOptions& options) 
const = 0;
+
+    virtual Status write_column_to_mysql_binary(const IColumn& column,
+                                                MysqlRowBinaryBuffer& 
row_buffer, int64_t row_idx,
+                                                bool col_const,
+                                                const FormatOptions& options) 
const = 0;
     // Thrift serializer and deserializer
 
     // JSON serializer and deserializer
diff --git a/be/src/vec/data_types/serde/data_type_string_serde.cpp 
b/be/src/vec/data_types/serde/data_type_string_serde.cpp
index 9c61897fe54..9fe0d61c28c 100644
--- a/be/src/vec/data_types/serde/data_type_string_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_string_serde.cpp
@@ -307,14 +307,14 @@ Status 
DataTypeStringSerDeBase<ColumnType>::read_column_from_arrow(
 }
 
 template <typename ColumnType>
-Status DataTypeStringSerDeBase<ColumnType>::write_column_to_mysql(
-        const IColumn& column, MysqlRowBuffer<true>& row_buffer, int64_t 
row_idx, bool col_const,
+Status DataTypeStringSerDeBase<ColumnType>::write_column_to_mysql_binary(
+        const IColumn& column, MysqlRowBinaryBuffer& row_buffer, int64_t 
row_idx, bool col_const,
         const FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 template <typename ColumnType>
-Status DataTypeStringSerDeBase<ColumnType>::write_column_to_mysql(
-        const IColumn& column, MysqlRowBuffer<false>& row_buffer, int64_t 
row_idx, bool col_const,
+Status DataTypeStringSerDeBase<ColumnType>::write_column_to_mysql_text(
+        const IColumn& column, MysqlRowTextBuffer& row_buffer, int64_t 
row_idx, bool col_const,
         const FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
diff --git a/be/src/vec/data_types/serde/data_type_string_serde.h 
b/be/src/vec/data_types/serde/data_type_string_serde.h
index 4bafc470926..5ef482d950e 100644
--- a/be/src/vec/data_types/serde/data_type_string_serde.h
+++ b/be/src/vec/data_types/serde/data_type_string_serde.h
@@ -203,13 +203,13 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_struct_serde.cpp 
b/be/src/vec/data_types/serde/data_type_struct_serde.cpp
index 581ee89fdaa..c901b608756 100644
--- a/be/src/vec/data_types/serde/data_type_struct_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_struct_serde.cpp
@@ -492,17 +492,17 @@ Status DataTypeStructSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeStructSerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                  bool col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeStructSerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                         MysqlRowBinaryBuffer& 
row_buffer,
+                                                         int64_t row_idx, bool 
col_const,
+                                                         const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeStructSerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<false>& 
row_buffer,
-                                                  int64_t row_idx, bool 
col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeStructSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                       MysqlRowTextBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_struct_serde.h 
b/be/src/vec/data_types/serde/data_type_struct_serde.h
index d1085a00e94..3d09f652f88 100644
--- a/be/src/vec/data_types/serde/data_type_struct_serde.h
+++ b/be/src/vec/data_types/serde/data_type_struct_serde.h
@@ -87,12 +87,12 @@ public:
     Status read_column_from_arrow(IColumn& column, const arrow::Array* 
arrow_array, int64_t start,
                                   int64_t end, const cctz::time_zone& ctz) 
const override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_time_serde.cpp 
b/be/src/vec/data_types/serde/data_type_time_serde.cpp
index a31701aa418..b726ad90e20 100644
--- a/be/src/vec/data_types/serde/data_type_time_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_time_serde.cpp
@@ -27,16 +27,16 @@
 namespace doris::vectorized {
 #include "common/compile_check_begin.h"
 
-Status DataTypeTimeV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<true>& 
row_buffer, int64_t row_idx,
-                                                  bool col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeTimeV2SerDe::write_column_to_mysql_binary(const IColumn& column,
+                                                         MysqlRowBinaryBuffer& 
row_buffer,
+                                                         int64_t row_idx, bool 
col_const,
+                                                         const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
-Status DataTypeTimeV2SerDe::write_column_to_mysql(const IColumn& column,
-                                                  MysqlRowBuffer<false>& 
row_buffer,
-                                                  int64_t row_idx, bool 
col_const,
-                                                  const FormatOptions& 
options) const {
+Status DataTypeTimeV2SerDe::write_column_to_mysql_text(const IColumn& column,
+                                                       MysqlRowTextBuffer& 
row_buffer,
+                                                       int64_t row_idx, bool 
col_const,
+                                                       const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 template <bool is_binary_format>
diff --git a/be/src/vec/data_types/serde/data_type_time_serde.h 
b/be/src/vec/data_types/serde/data_type_time_serde.h
index 840bad39e7c..284a49927ef 100644
--- a/be/src/vec/data_types/serde/data_type_time_serde.h
+++ b/be/src/vec/data_types/serde/data_type_time_serde.h
@@ -32,12 +32,12 @@ class DataTypeTimeV2SerDe : public 
DataTypeNumberSerDe<PrimitiveType::TYPE_TIMEV
 public:
     DataTypeTimeV2SerDe(int scale = 0, int nesting_level = 1)
             : DataTypeNumberSerDe<PrimitiveType::TYPE_TIMEV2>(nesting_level), 
_scale(scale) {};
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status from_string(StringRef& str, IColumn& column,
                        const FormatOptions& options) const override;
diff --git a/be/src/vec/data_types/serde/data_type_varbinary_serde.cpp 
b/be/src/vec/data_types/serde/data_type_varbinary_serde.cpp
index 778d4098e31..e3106cdd610 100644
--- a/be/src/vec/data_types/serde/data_type_varbinary_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_varbinary_serde.cpp
@@ -36,17 +36,17 @@ void 
DataTypeVarbinarySerDe::read_one_cell_from_jsonb(IColumn& column,
                            column.get_name());
 }
 
-Status DataTypeVarbinarySerDe::write_column_to_mysql(const IColumn& column,
-                                                     MysqlRowBuffer<true>& 
row_buffer,
-                                                     int64_t row_idx, bool 
col_const,
-                                                     const FormatOptions& 
options) const {
+Status DataTypeVarbinarySerDe::write_column_to_mysql_binary(const IColumn& 
column,
+                                                            
MysqlRowBinaryBuffer& row_buffer,
+                                                            int64_t row_idx, 
bool col_const,
+                                                            const 
FormatOptions& options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeVarbinarySerDe::write_column_to_mysql(const IColumn& column,
-                                                     MysqlRowBuffer<false>& 
row_buffer,
-                                                     int64_t row_idx, bool 
col_const,
-                                                     const FormatOptions& 
options) const {
+Status DataTypeVarbinarySerDe::write_column_to_mysql_text(const IColumn& 
column,
+                                                          MysqlRowTextBuffer& 
row_buffer,
+                                                          int64_t row_idx, 
bool col_const,
+                                                          const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_varbinary_serde.h 
b/be/src/vec/data_types/serde/data_type_varbinary_serde.h
index e8e4388223a..61390f681a0 100644
--- a/be/src/vec/data_types/serde/data_type_varbinary_serde.h
+++ b/be/src/vec/data_types/serde/data_type_varbinary_serde.h
@@ -84,13 +84,13 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,
diff --git a/be/src/vec/data_types/serde/data_type_variant_serde.cpp 
b/be/src/vec/data_types/serde/data_type_variant_serde.cpp
index c924af1a8c7..7acd58889d8 100644
--- a/be/src/vec/data_types/serde/data_type_variant_serde.cpp
+++ b/be/src/vec/data_types/serde/data_type_variant_serde.cpp
@@ -54,17 +54,17 @@ Status DataTypeVariantSerDe::_write_column_to_mysql(const 
IColumn& column,
     return Status::OK();
 }
 
-Status DataTypeVariantSerDe::write_column_to_mysql(const IColumn& column,
-                                                   MysqlRowBuffer<true>& 
row_buffer,
-                                                   int64_t row_idx, bool 
col_const,
-                                                   const FormatOptions& 
options) const {
+Status DataTypeVariantSerDe::write_column_to_mysql_binary(const IColumn& 
column,
+                                                          
MysqlRowBinaryBuffer& row_buffer,
+                                                          int64_t row_idx, 
bool col_const,
+                                                          const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
-Status DataTypeVariantSerDe::write_column_to_mysql(const IColumn& column,
-                                                   MysqlRowBuffer<false>& 
row_buffer,
-                                                   int64_t row_idx, bool 
col_const,
-                                                   const FormatOptions& 
options) const {
+Status DataTypeVariantSerDe::write_column_to_mysql_text(const IColumn& column,
+                                                        MysqlRowTextBuffer& 
row_buffer,
+                                                        int64_t row_idx, bool 
col_const,
+                                                        const FormatOptions& 
options) const {
     return _write_column_to_mysql(column, row_buffer, row_idx, col_const, 
options);
 }
 
diff --git a/be/src/vec/data_types/serde/data_type_variant_serde.h 
b/be/src/vec/data_types/serde/data_type_variant_serde.h
index a7caa4517ff..bb03aa97229 100644
--- a/be/src/vec/data_types/serde/data_type_variant_serde.h
+++ b/be/src/vec/data_types/serde/data_type_variant_serde.h
@@ -72,13 +72,13 @@ public:
                              "read_column_from_arrow with type " + 
column.get_name());
     }
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_binary(const IColumn& column, 
MysqlRowBinaryBuffer& row_buffer,
+                                        int64_t row_idx, bool col_const,
+                                        const FormatOptions& options) const 
override;
 
-    Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& 
row_buffer,
-                                 int64_t row_idx, bool col_const,
-                                 const FormatOptions& options) const override;
+    Status write_column_to_mysql_text(const IColumn& column, 
MysqlRowTextBuffer& row_buffer,
+                                      int64_t row_idx, bool col_const,
+                                      const FormatOptions& options) const 
override;
 
     Status write_column_to_orc(const std::string& timezone, const IColumn& 
column,
                                const NullMap* null_map, 
orc::ColumnVectorBatch* orc_col_batch,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to