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 ceab16a7abb [chore](Mysql) remove unused code in MysqlResultWriter
(#58699) (#59250)
ceab16a7abb is described below
commit ceab16a7abbc47dbd61e79caf807111676ef90c4
Author: Mryange <[email protected]>
AuthorDate: Tue Dec 23 12:57:13 2025 +0800
[chore](Mysql) remove unused code in MysqlResultWriter (#58699) (#59250)
None
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [x] No need to test or manual test. Explain why:
- [x] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change. - [ ] No code files have been
changed. - [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
### What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [ ] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
---
be/src/pipeline/exec/result_sink_operator.cpp | 9 +--
be/src/service/point_query_executor.cpp | 21 ++----
.../vec/data_types/serde/data_type_array_serde.cpp | 4 +-
.../vec/data_types/serde/data_type_array_serde.h | 3 +-
.../data_types/serde/data_type_bitmap_serde.cpp | 3 +-
.../vec/data_types/serde/data_type_bitmap_serde.h | 3 +-
.../serde/data_type_date_or_datetime_serde.cpp | 18 +----
.../serde/data_type_date_or_datetime_serde.h | 6 +-
.../serde/data_type_datetimev2_serde.cpp | 16 +----
.../data_types/serde/data_type_datetimev2_serde.h | 3 +-
.../data_types/serde/data_type_datev2_serde.cpp | 15 +---
.../vec/data_types/serde/data_type_datev2_serde.h | 3 +-
.../data_types/serde/data_type_decimal_serde.cpp | 4 +-
.../vec/data_types/serde/data_type_decimal_serde.h | 3 +-
.../vec/data_types/serde/data_type_hll_serde.cpp | 3 +-
be/src/vec/data_types/serde/data_type_hll_serde.h | 3 +-
.../vec/data_types/serde/data_type_ipv4_serde.cpp | 15 +---
be/src/vec/data_types/serde/data_type_ipv4_serde.h | 3 +-
.../vec/data_types/serde/data_type_ipv6_serde.cpp | 15 +---
be/src/vec/data_types/serde/data_type_ipv6_serde.h | 3 +-
.../vec/data_types/serde/data_type_jsonb_serde.cpp | 3 +-
.../vec/data_types/serde/data_type_jsonb_serde.h | 3 +-
.../vec/data_types/serde/data_type_map_serde.cpp | 3 +-
be/src/vec/data_types/serde/data_type_map_serde.h | 3 +-
.../vec/data_types/serde/data_type_nothing_serde.h | 3 +-
.../data_types/serde/data_type_nullable_serde.cpp | 5 +-
.../data_types/serde/data_type_nullable_serde.h | 3 +-
.../data_types/serde/data_type_number_serde.cpp | 10 +--
.../vec/data_types/serde/data_type_number_serde.h | 3 +-
.../serde/data_type_quantilestate_serde.h | 3 +-
be/src/vec/data_types/serde/data_type_serde.h | 3 +-
.../vec/data_types/serde/data_type_string_serde.h | 3 +-
.../data_types/serde/data_type_struct_serde.cpp | 3 +-
.../vec/data_types/serde/data_type_struct_serde.h | 3 +-
.../vec/data_types/serde/data_type_time_serde.cpp | 15 +---
be/src/vec/data_types/serde/data_type_time_serde.h | 3 +-
.../data_types/serde/data_type_varbinary_serde.cpp | 3 +-
.../data_types/serde/data_type_varbinary_serde.h | 3 +-
.../data_types/serde/data_type_variant_serde.cpp | 3 +-
.../vec/data_types/serde/data_type_variant_serde.h | 3 +-
be/src/vec/sink/vmysql_result_writer.cpp | 79 ++++------------------
be/src/vec/sink/vmysql_result_writer.h | 7 +-
.../serde/data_type_jsonb_serde_test.cpp | 2 +-
.../serde/data_type_serde_mysql_test.cpp | 2 +-
.../serde/data_type_serde_varbinary_test.cpp | 4 +-
45 files changed, 72 insertions(+), 256 deletions(-)
diff --git a/be/src/pipeline/exec/result_sink_operator.cpp
b/be/src/pipeline/exec/result_sink_operator.cpp
index b1e06ee48bb..76cdb648239 100644
--- a/be/src/pipeline/exec/result_sink_operator.cpp
+++ b/be/src/pipeline/exec/result_sink_operator.cpp
@@ -77,13 +77,8 @@ Status ResultSinkLocalState::open(RuntimeState* state) {
// create writer based on sink type
switch (p._sink_type) {
case TResultSinkType::MYSQL_PROTOCOL: {
- if (state->mysql_row_binary_format()) {
- _writer.reset(new (std::nothrow)
vectorized::VMysqlResultWriter<true>(
- _sender, _output_vexpr_ctxs, custom_profile()));
- } else {
- _writer.reset(new (std::nothrow)
vectorized::VMysqlResultWriter<false>(
- _sender, _output_vexpr_ctxs, custom_profile()));
- }
+ _writer.reset(new (std::nothrow) vectorized::VMysqlResultWriter(
+ _sender, _output_vexpr_ctxs, custom_profile(),
state->mysql_row_binary_format()));
break;
}
case TResultSinkType::ARROW_FLIGHT_PROTOCOL: {
diff --git a/be/src/service/point_query_executor.cpp
b/be/src/service/point_query_executor.cpp
index a6c7c7e527a..2bc6d1716ab 100644
--- a/be/src/service/point_query_executor.cpp
+++ b/be/src/service/point_query_executor.cpp
@@ -590,21 +590,12 @@ Status PointQueryExecutor::_output_data() {
RuntimeState state;
auto buffer = std::make_shared<PointQueryResultBlockBuffer>(&state);
// TODO reuse mysql_writer
- if (_binary_row_format) {
- vectorized::VMysqlResultWriter<true> mysql_writer(buffer,
_reusable->output_exprs(),
- nullptr);
- RETURN_IF_ERROR(mysql_writer.init(_reusable->runtime_state()));
- _result_block->clear_names();
- RETURN_IF_ERROR(mysql_writer.write(_reusable->runtime_state(),
*_result_block));
- RETURN_IF_ERROR(serialize_block(buffer->get_block(), _response));
- } else {
- vectorized::VMysqlResultWriter<false> mysql_writer(buffer,
_reusable->output_exprs(),
- nullptr);
- RETURN_IF_ERROR(mysql_writer.init(_reusable->runtime_state()));
- _result_block->clear_names();
- RETURN_IF_ERROR(mysql_writer.write(_reusable->runtime_state(),
*_result_block));
- RETURN_IF_ERROR(serialize_block(buffer->get_block(), _response));
- }
+ vectorized::VMysqlResultWriter mysql_writer(buffer,
_reusable->output_exprs(), nullptr,
+ _binary_row_format);
+ RETURN_IF_ERROR(mysql_writer.init(_reusable->runtime_state()));
+ _result_block->clear_names();
+ RETURN_IF_ERROR(mysql_writer.write(_reusable->runtime_state(),
*_result_block));
+ RETURN_IF_ERROR(serialize_block(buffer->get_block(), _response));
VLOG_DEBUG << "dump block " << _result_block->dump_data();
} else {
_response->set_empty_batch(true);
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 b0d1d9e6df0..ccbc886eeed 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
@@ -349,8 +349,8 @@ Status DataTypeArraySerDe::read_column_from_arrow(IColumn&
column, const arrow::
Status DataTypeArraySerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t
row_idx_of_mysql, bool col_const,
- const FormatOptions&
options) const {
+ int64_t
row_idx_of_mysql,
+ bool col_const) const {
return Status::NotSupported("Array type does not support write to mysql
binary format");
}
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 5ce66a97fa0..c26331c6d91 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
@@ -91,8 +91,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
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;
+ int64_t row_idx, bool col_const) const
override;
bool write_column_to_presto_text(const IColumn& column, BufferWritable& bw,
int64_t row_idx) const override;
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 179c1336e44..8354153487f 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
@@ -152,8 +152,7 @@ void DataTypeBitMapSerDe::read_one_cell_from_jsonb(IColumn&
column, const JsonbV
Status DataTypeBitMapSerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
return Status::NotSupported("Bitmap type does not support write to mysql
binary format");
}
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 3a07ad18e2b..1640a13fa01 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
@@ -72,8 +72,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) const
override;
bool write_column_to_mysql_text(const IColumn& column, BufferWritable& bw,
int64_t row_idx) const override;
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 a3e3ca23b1d..db6386bedcb 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
@@ -251,28 +251,16 @@ Status
DataTypeDateSerDe<T>::read_column_from_arrow(IColumn& column,
}
template <PrimitiveType T>
-Status DataTypeDateSerDe<T>::write_column_to_mysql_binary(
- const IColumn& column, MysqlRowBinaryBuffer& result, int64_t row_idx,
bool col_const,
- const typename DataTypeNumberSerDe<T>::FormatOptions& options) const {
+Status DataTypeDateSerDe<T>::write_column_to_mysql_binary(const IColumn&
column,
+
MysqlRowBinaryBuffer& result,
+ int64_t row_idx,
bool col_const) const {
const auto& data = assert_cast<const ColumnVector<T>&>(column).get_data();
const auto col_index = index_check_const(row_idx, col_const);
auto time_num = data[col_index];
VecDateTimeValue time_val = binary_cast<Int64, VecDateTimeValue>(time_num);
- // _nesting_level >= 2 means this datetimev2 is in complex type
- // and we should add double quotes
- if (DataTypeNumberSerDe<T>::_nesting_level >= 2 && options.wrapper_len >
0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_vec_datetime(time_val))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (DataTypeNumberSerDe<T>::_nesting_level >= 2 && options.wrapper_len >
0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 16de6a8e46c..d5900cc946b 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,10 +104,8 @@ 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_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_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
+ int64_t row_idx, bool col_const) 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_datetimev2_serde.cpp
b/be/src/vec/data_types/serde/data_type_datetimev2_serde.cpp
index 71b7d750a25..613955467d3 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
@@ -426,27 +426,15 @@ Status
DataTypeDateTimeV2SerDe::read_column_from_arrow(IColumn& column,
Status DataTypeDateTimeV2SerDe::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx,
bool col_const,
- const
FormatOptions& options) const {
+ int64_t row_idx,
+ bool col_const)
const {
const auto& data = assert_cast<const ColumnDateTimeV2&>(column).get_data();
const auto col_index = index_check_const(row_idx, col_const);
DateV2Value<DateTimeV2ValueType> date_val =
binary_cast<UInt64,
DateV2Value<DateTimeV2ValueType>>(data[col_index]);
- // _nesting_level >= 2 means this datetimev2 is in complex type
- // and we should add double quotes
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_vec_datetime(date_val, _scale))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 7a1f4c2f52c..0bf479d2931 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
@@ -90,8 +90,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
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;
+ int64_t row_idx, bool col_const) 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 eaa0ba12e4c..f498c0cc18d 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
@@ -130,27 +130,14 @@ Status
DataTypeDateV2SerDe::read_column_from_arrow(IColumn& column, const arrow:
Status DataTypeDateV2SerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
const auto& data = assert_cast<const ColumnDateV2&>(column).get_data();
auto col_index = index_check_const(row_idx, col_const);
DateV2Value<DateV2ValueType> date_val =
binary_cast<UInt32, DateV2Value<DateV2ValueType>>(data[col_index]);
- // _nesting_level >= 2 means this datetimev2 is in complex type
- // and we should add double quotes
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_vec_datetime(date_val))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 5a429e1dd40..9a353ba4886 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
@@ -87,8 +87,7 @@ 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_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 26239e11ab7..87e8ebcb513 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
@@ -358,8 +358,8 @@ Status
DataTypeDecimalSerDe<T>::read_column_from_arrow(IColumn& column,
template <PrimitiveType T>
Status DataTypeDecimalSerDe<T>::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx,
bool col_const,
- const
FormatOptions& options) const {
+ int64_t row_idx,
+ bool col_const)
const {
auto& data = assert_cast<const ColumnDecimal<T>&>(column).get_data();
const auto col_index = index_check_const(row_idx, col_const);
if constexpr (T == TYPE_DECIMALV2) {
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 16b46e842de..4d98d565137 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
@@ -109,8 +109,7 @@ 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_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 de6b4df77b5..c410c5e837b 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
@@ -149,8 +149,7 @@ Status DataTypeHLLSerDe::write_column_to_arrow(const
IColumn& column, const Null
Status DataTypeHLLSerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result, int64_t row_idx,
- bool col_const,
- const FormatOptions&
options) const {
+ bool col_const) const {
return Status::NotSupported("Bitmap type does not support write to mysql
binary format");
}
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 363ade07157..779da5312a6 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
@@ -66,8 +66,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) const
override;
bool write_column_to_mysql_text(const IColumn& column, BufferWritable& bw,
int64_t row_idx) const override;
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 6df33a9ec8b..875f545abb2 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
@@ -29,26 +29,13 @@ namespace doris::vectorized {
Status DataTypeIPv4SerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
auto& data = assert_cast<const ColumnIPv4&>(column).get_data();
auto col_index = index_check_const(row_idx, col_const);
IPv4Value ipv4_val(data[col_index]);
- // _nesting_level >= 2 means this ipv4 is in complex type
- // and we should add double quotes
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_ipv4(ipv4_val))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 7208477a3c8..458ca62685d 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
@@ -41,8 +41,7 @@ public:
: DataTypeNumberSerDe<PrimitiveType::TYPE_IPV4>(nesting_level) {};
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 89c6a4114f2..7e680418785 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
@@ -33,26 +33,13 @@ namespace doris::vectorized {
Status DataTypeIPv6SerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
auto& data = assert_cast<const ColumnIPv6&>(column).get_data();
auto col_index = index_check_const(row_idx, col_const);
IPv6Value ipv6_val(data[col_index]);
- // _nesting_level >= 2 means this datetimev2 is in complex type
- // and we should add double quotes
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_ipv6(ipv6_val))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 cb79451d54c..100c811e1a4 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
@@ -44,8 +44,7 @@ public:
: DataTypeNumberSerDe<PrimitiveType::TYPE_IPV6>(nesting_level) {};
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 9e5ce5ae68a..3d665064578 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
@@ -37,8 +37,7 @@ namespace vectorized {
Status DataTypeJsonbSerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
auto& data = assert_cast<const ColumnString&>(column);
const auto col_index = index_check_const(row_idx, col_const);
const auto jsonb_val = data.get_data_at(col_index);
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 95c60ae583b..df62ea14584 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
@@ -42,8 +42,7 @@ public:
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;
+ int64_t row_idx, bool col_const) 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 91a63239d5e..f21e7f3ee9b 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
@@ -421,8 +421,7 @@ Status DataTypeMapSerDe::read_column_from_arrow(IColumn&
column, const arrow::Ar
Status DataTypeMapSerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result, int64_t row_idx,
- bool col_const,
- const FormatOptions&
options) const {
+ bool col_const) const {
return Status::NotSupported("Map type does not support write to mysql
binary format");
}
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 4d0fd4cb6f8..645c085f6c4 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
@@ -87,8 +87,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
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;
+ int64_t row_idx, bool col_const) 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 6d3a6e50a27..e9f6e8600e4 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
@@ -92,8 +92,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override {
+ int64_t row_idx, bool col_const) 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 96b034955a3..3737d8728ff 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
@@ -401,8 +401,7 @@ bool DataTypeNullableSerDe::write_column_to_hive_text(const
IColumn& column, Buf
Status DataTypeNullableSerDe::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx,
bool col_const,
- const
FormatOptions& options) const {
+ int64_t row_idx,
bool col_const) const {
const auto& col = assert_cast<const ColumnNullable&>(column);
const auto col_index = index_check_const(row_idx, col_const);
if (col.has_null() && col.is_null_at(col_index)) {
@@ -412,7 +411,7 @@ Status
DataTypeNullableSerDe::write_column_to_mysql_binary(const IColumn& column
} else {
const auto& nested_col = col.get_nested_column();
RETURN_IF_ERROR(nested_serde->write_column_to_mysql_binary(nested_col,
result, col_index,
- col_const,
options));
+ col_const));
}
return Status::OK();
}
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 e8ef275f2e5..1a218d1225b 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
@@ -86,8 +86,7 @@ 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_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) const
override;
bool write_column_to_mysql_text(const IColumn& column, BufferWritable& bw,
int64_t row_idx) const override;
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 15cb6a0bb5b..f66693313c8 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
@@ -463,20 +463,14 @@ void
DataTypeNumberSerDe<T>::insert_column_last_value_multiple_times(IColumn& co
template <PrimitiveType T>
Status DataTypeNumberSerDe<T>::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx,
bool col_const,
- const
FormatOptions& options) const {
+ int64_t row_idx,
bool col_const) const {
int buf_ret = 0;
auto& data = assert_cast<const ColumnType&>(column).get_data();
const auto col_index = index_check_const(row_idx, col_const);
if constexpr (T == TYPE_TINYINT) {
buf_ret = result.push_tinyint(data[col_index]);
} else if constexpr (T == TYPE_BOOLEAN) {
- if (_nesting_level > 1 && !options.is_bool_value_num) {
- std::string bool_value = data[col_index] ? "true" : "false";
- result.push_string(bool_value.c_str(), bool_value.size());
- } else {
- buf_ret = result.push_tinyint(data[col_index]);
- }
+ buf_ret = result.push_tinyint(data[col_index]);
} else if constexpr (T == TYPE_SMALLINT) {
buf_ret = result.push_smallint(data[col_index]);
} else if constexpr (T == TYPE_INT || T == TYPE_DATEV2 || T == TYPE_IPV4) {
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 cbd4c014cf6..be113d28a47 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
@@ -117,8 +117,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
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;
+ int64_t row_idx, bool col_const) const
override;
Status write_column_to_orc(const std::string& timezone, const IColumn&
column,
const NullMap* null_map,
orc::ColumnVectorBatch* orc_col_batch,
int64_t start, int64_t end, vectorized::Arena&
arena) const override;
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 af9ae56ced1..8dbdef9a987 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
@@ -126,8 +126,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override {
+ int64_t row_idx, bool col_const) const
override {
return Status::NotSupported("write_column_to_mysql_binary with type "
+ column.get_name());
}
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 52961f75e5b..e8594f385f8 100644
--- a/be/src/vec/data_types/serde/data_type_serde.h
+++ b/be/src/vec/data_types/serde/data_type_serde.h
@@ -427,8 +427,7 @@ public:
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;
+ bool col_const) const = 0;
// Thrift serializer and deserializer
// JSON serializer and deserializer
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 7f849df74cd..67d4c3ee80c 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
@@ -204,8 +204,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
const override;
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override {
+ int64_t row_idx, bool col_const) const
override {
const auto col_index = index_check_const(row_idx, col_const);
const auto string_val = assert_cast<const
ColumnType&>(column).get_data_at(col_index);
result.push_string(string_val.data, string_val.size);
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 f5c22d08fcd..2c951fa8c50 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
@@ -431,8 +431,7 @@ Status DataTypeStructSerDe::read_column_from_arrow(IColumn&
column, const arrow:
Status DataTypeStructSerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
return Status::NotSupported("Struct type does not support write to mysql
binary format");
}
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 6c7ce49b6ff..6223ed93e87 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
@@ -88,8 +88,7 @@ public:
int64_t end, const cctz::time_zone& ctz)
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;
+ int64_t row_idx, bool col_const) 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 2e2da4ac076..34dcd1759f0 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
@@ -29,25 +29,12 @@ namespace doris::vectorized {
Status DataTypeTimeV2SerDe::write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer&
result,
- int64_t row_idx, bool
col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx, bool
col_const) const {
const auto& data = assert_cast<const ColumnTimeV2&>(column).get_data();
const auto col_index = index_check_const(row_idx, col_const);
- // _nesting_level >= 2 means this time is in complex type
- // and we should add double quotes
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
if (UNLIKELY(0 != result.push_timev2(data[col_index], _scale))) {
return Status::InternalError("pack mysql buffer failed.");
}
- if (_nesting_level >= 2 && options.wrapper_len > 0) {
- if (UNLIKELY(0 != result.push_string(options.nested_string_wrapper,
options.wrapper_len))) {
- return Status::InternalError("pack mysql buffer failed.");
- }
- }
return Status::OK();
}
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 8184e0eed09..b8aba827d1d 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
@@ -33,8 +33,7 @@ public:
DataTypeTimeV2SerDe(int scale = 0, int nesting_level = 1)
: DataTypeNumberSerDe<PrimitiveType::TYPE_TIMEV2>(nesting_level),
_scale(scale) {};
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 f22b0b67157..e33459bf79d 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
@@ -38,8 +38,7 @@ void
DataTypeVarbinarySerDe::read_one_cell_from_jsonb(IColumn& column,
Status DataTypeVarbinarySerDe::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& result,
- int64_t row_idx,
bool col_const,
- const
FormatOptions& options) const {
+ int64_t row_idx,
bool col_const) const {
auto col_index = index_check_const(row_idx, col_const);
auto data = assert_cast<const
ColumnVarbinary&>(column).get_data()[col_index];
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 418ab883207..986fef7c89c 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
@@ -83,8 +83,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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 8ec3e5d2a90..df21b7ad1dd 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
@@ -42,8 +42,7 @@ namespace vectorized {
Status DataTypeVariantSerDe::write_column_to_mysql_binary(const IColumn&
column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx,
bool col_const,
- const FormatOptions&
options) const {
+ int64_t row_idx,
bool col_const) const {
const auto& variant = assert_cast<const ColumnVariant&>(column);
// Serialize hierarchy types to json format
std::string buffer;
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 7840be02e79..47ffc393eba 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
@@ -73,8 +73,7 @@ public:
}
Status write_column_to_mysql_binary(const IColumn& column,
MysqlRowBinaryBuffer& row_buffer,
- int64_t row_idx, bool col_const,
- const FormatOptions& options) const
override;
+ int64_t row_idx, bool col_const) 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/sink/vmysql_result_writer.cpp
b/be/src/vec/sink/vmysql_result_writer.cpp
index 8d255b9c54a..5e54a9db939 100644
--- a/be/src/vec/sink/vmysql_result_writer.cpp
+++ b/be/src/vec/sink/vmysql_result_writer.cpp
@@ -99,27 +99,23 @@ Status GetResultBatchCtx::on_data(const
std::shared_ptr<TFetchDataResult>& t_res
return Status::OK();
}
-template <bool is_binary_format>
-VMysqlResultWriter<is_binary_format>::VMysqlResultWriter(
- std::shared_ptr<ResultBlockBufferBase> sinker, const
VExprContextSPtrs& output_vexpr_ctxs,
- RuntimeProfile* parent_profile)
+VMysqlResultWriter::VMysqlResultWriter(std::shared_ptr<ResultBlockBufferBase>
sinker,
+ const VExprContextSPtrs&
output_vexpr_ctxs,
+ RuntimeProfile* parent_profile, bool
is_binary_format)
: ResultWriter(),
_sinker(std::dynamic_pointer_cast<MySQLResultBlockBuffer>(sinker)),
_output_vexpr_ctxs(output_vexpr_ctxs),
- _parent_profile(parent_profile) {}
+ _parent_profile(parent_profile),
+ _is_binary_format(is_binary_format) {}
-template <bool is_binary_format>
-Status VMysqlResultWriter<is_binary_format>::init(RuntimeState* state) {
+Status VMysqlResultWriter::init(RuntimeState* state) {
_init_profile();
set_output_object_data(state->return_object_data_as_binary());
_is_dry_run = state->query_options().dry_run_query;
-
- RETURN_IF_ERROR(_set_options(state->query_options().serde_dialect));
return Status::OK();
}
-template <bool is_binary_format>
-void VMysqlResultWriter<is_binary_format>::_init_profile() {
+void VMysqlResultWriter::_init_profile() {
if (_parent_profile != nullptr) {
// for PointQueryExecutor, _parent_profile is null
_append_row_batch_timer = ADD_TIMER(_parent_profile,
"AppendBatchTime");
@@ -131,53 +127,7 @@ void VMysqlResultWriter<is_binary_format>::_init_profile()
{
}
}
-template <bool is_binary_format>
-Status VMysqlResultWriter<is_binary_format>::_set_options(
- const TSerdeDialect::type& serde_dialect) {
- switch (serde_dialect) {
- case TSerdeDialect::DORIS:
- // eg:
- // array: ["abc", "def", "", null]
- // map: {"k1":null, "k2":"v3"}
- _options.nested_string_wrapper = "\"";
- _options.wrapper_len = 1;
- _options.map_key_delim = ':';
- _options.null_format = "null";
- _options.null_len = 4;
- _options.mysql_collection_delim = ", ";
- _options.is_bool_value_num = true;
- break;
- case TSerdeDialect::PRESTO:
- // eg:
- // array: [abc, def, , NULL]
- // map: {k1=NULL, k2=v3}
- _options.nested_string_wrapper = "";
- _options.wrapper_len = 0;
- _options.map_key_delim = '=';
- _options.null_format = "NULL";
- _options.null_len = 4;
- _options.mysql_collection_delim = ", ";
- _options.is_bool_value_num = true;
- break;
- case TSerdeDialect::HIVE:
- // eg:
- // array: ["abc","def","",null]
- // map: {"k1":null,"k2":"v3"}
- _options.nested_string_wrapper = "\"";
- _options.wrapper_len = 1;
- _options.map_key_delim = ':';
- _options.null_format = "null";
- _options.null_len = 4;
- _options.mysql_collection_delim = ",";
- _options.is_bool_value_num = false;
- break;
- default:
- return Status::InternalError("unknown serde dialect: {}",
serde_dialect);
- }
- return Status::OK();
-}
-template <bool is_binary_format>
-Status VMysqlResultWriter<is_binary_format>::_write_one_block(RuntimeState*
state, Block& block) {
+Status VMysqlResultWriter::_write_one_block(RuntimeState* state, Block& block)
{
Status status = Status::OK();
int num_rows = cast_set<int>(block.rows());
// convert one batch
@@ -237,7 +187,7 @@ Status
VMysqlResultWriter<is_binary_format>::_write_one_block(RuntimeState* stat
size_t write_buffer_index = 0;
// For non-binary format, we need to call different serialization
interfaces
// write_column_to_mysql/presto/hive text
- if (!is_binary_format) {
+ if (!_is_binary_format) {
const auto& serde_dialect = state->query_options().serde_dialect;
auto write_to_text = [serde_dialect](DataTypeSerDeSPtr& serde,
const IColumn* column,
BufferWriter& write_buffer,
size_t col_index) {
@@ -298,7 +248,7 @@ Status
VMysqlResultWriter<is_binary_format>::_write_one_block(RuntimeState* stat
} else {
RETURN_IF_ERROR(arguments[col_idx].serde->write_column_to_mysql_binary(
*(arguments[col_idx].column), row_buffer,
row_idx,
- arguments[col_idx].is_const, _options));
+ arguments[col_idx].is_const));
}
}
@@ -327,8 +277,7 @@ Status
VMysqlResultWriter<is_binary_format>::_write_one_block(RuntimeState* stat
return status;
}
-template <bool is_binary_format>
-Status VMysqlResultWriter<is_binary_format>::write(RuntimeState* state, Block&
input_block) {
+Status VMysqlResultWriter::write(RuntimeState* state, Block& input_block) {
SCOPED_TIMER(_append_row_batch_timer);
Status status = Status::OK();
if (UNLIKELY(input_block.rows() == 0)) {
@@ -368,14 +317,10 @@ Status
VMysqlResultWriter<is_binary_format>::write(RuntimeState* state, Block& i
return _write_one_block(state, block);
}
-template <bool is_binary_format>
-Status VMysqlResultWriter<is_binary_format>::close(Status) {
+Status VMysqlResultWriter::close(Status) {
COUNTER_SET(_sent_rows_counter, _written_rows);
COUNTER_UPDATE(_bytes_sent_counter, _bytes_sent);
return Status::OK();
}
-template class VMysqlResultWriter<true>;
-template class VMysqlResultWriter<false>;
-
} // namespace doris::vectorized
diff --git a/be/src/vec/sink/vmysql_result_writer.h
b/be/src/vec/sink/vmysql_result_writer.h
index 75a997219d1..cf3834e3dbe 100644
--- a/be/src/vec/sink/vmysql_result_writer.h
+++ b/be/src/vec/sink/vmysql_result_writer.h
@@ -66,11 +66,11 @@ private:
using MySQLResultBlockBuffer = ResultBlockBuffer<GetResultBatchCtx>;
-template <bool is_binary_format = false>
class VMysqlResultWriter final : public ResultWriter {
public:
VMysqlResultWriter(std::shared_ptr<ResultBlockBufferBase> sinker,
- const VExprContextSPtrs& output_vexpr_ctxs,
RuntimeProfile* parent_profile);
+ const VExprContextSPtrs& output_vexpr_ctxs,
RuntimeProfile* parent_profile,
+ bool is_binary_format);
Status init(RuntimeState* state) override;
@@ -80,7 +80,6 @@ public:
private:
void _init_profile();
- Status _set_options(const TSerdeDialect::type& serde_dialect);
Status _write_one_block(RuntimeState* state, Block& block);
std::shared_ptr<MySQLResultBlockBuffer> _sinker = nullptr;
@@ -103,7 +102,7 @@ private:
uint64_t _bytes_sent = 0;
- DataTypeSerDe::FormatOptions _options;
+ const bool _is_binary_format;
};
} // namespace vectorized
} // namespace doris
diff --git a/be/test/vec/data_types/serde/data_type_jsonb_serde_test.cpp
b/be/test/vec/data_types/serde/data_type_jsonb_serde_test.cpp
index 8238d7fdf03..76466ee7056 100644
--- a/be/test/vec/data_types/serde/data_type_jsonb_serde_test.cpp
+++ b/be/test/vec/data_types/serde/data_type_jsonb_serde_test.cpp
@@ -191,7 +191,7 @@ TEST_F(DataTypeJsonbSerDeTest, serdes) {
MysqlRowBinaryBuffer mysql_rb;
for (int row_idx = 0; row_idx < row_count; ++row_idx) {
auto st = serde.write_column_to_mysql_binary(*source_column,
mysql_rb, row_idx,
- false, option);
+ false);
EXPECT_TRUE(st.ok())
<< "Failed to write column to mysql with binary
format: " << st;
}
diff --git a/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp
b/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp
index 413adde9d87..2c3fa6fe395 100644
--- a/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp
+++ b/be/test/vec/data_types/serde/data_type_serde_mysql_test.cpp
@@ -328,7 +328,7 @@ void serialize_and_deserialize_mysql_test() {
// mysql_writer init
MockRuntimeState state;
auto serializer = std::make_shared<TestBlockSerializer>(&state);
- vectorized::VMysqlResultWriter<false> mysql_writer(serializer,
_output_vexpr_ctxs, nullptr);
+ vectorized::VMysqlResultWriter mysql_writer(serializer,
_output_vexpr_ctxs, nullptr, false);
Status st = mysql_writer.write(&runtime_stat, block);
EXPECT_TRUE(st.ok());
diff --git a/be/test/vec/data_types/serde/data_type_serde_varbinary_test.cpp
b/be/test/vec/data_types/serde/data_type_serde_varbinary_test.cpp
index 4c5f6dfc80c..34dc4fede27 100644
--- a/be/test/vec/data_types/serde/data_type_serde_varbinary_test.cpp
+++ b/be/test/vec/data_types/serde/data_type_serde_varbinary_test.cpp
@@ -153,14 +153,12 @@ TEST_F(DataTypeVarbinarySerDeTest,
MysqlTextAndBinaryAndConst) {
vb->insert_data(v.data(), v.size());
}
- DataTypeSerDe::FormatOptions opt;
-
// binary protocol (smoke)
{
MysqlRowBinaryBuffer rb;
rb.start_binary_row(vals.size());
for (int i = 0; i < static_cast<int>(vals.size()); ++i) {
- auto st = serde.write_column_to_mysql_binary(*col, rb, i, false,
opt);
+ auto st = serde.write_column_to_mysql_binary(*col, rb, i, false);
EXPECT_TRUE(st.ok()) << st.to_string();
}
EXPECT_GT(rb.length(), 0);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]