This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 1b4a2c287e [Improvement][chore] replace from_decv2_to_packed128 to
decv2.value (#11261)
1b4a2c287e is described below
commit 1b4a2c287e74ede027b8c7d6c25335388db617b3
Author: Pxl <[email protected]>
AuthorDate: Thu Jul 28 10:41:27 2022 +0800
[Improvement][chore] replace from_decv2_to_packed128 to decv2.value (#11261)
---
be/src/exec/text_converter.hpp | 8 +++-----
be/src/olap/rowset/beta_rowset_writer.h | 2 +-
be/src/util/binary_cast.hpp | 12 +++---------
.../aggregate_functions/aggregate_function_window_funnel.h | 4 ++--
be/src/vec/exec/vschema_scan_node.cpp | 6 +++---
be/src/vec/io/io_helper.h | 2 +-
be/src/vec/sink/vtablet_sink.cpp | 3 +--
be/test/vec/utils/arrow_column_to_doris_column_test.cpp | 3 +--
8 files changed, 15 insertions(+), 25 deletions(-)
diff --git a/be/src/exec/text_converter.hpp b/be/src/exec/text_converter.hpp
index f57c613c04..14b9b52044 100644
--- a/be/src/exec/text_converter.hpp
+++ b/be/src/exec/text_converter.hpp
@@ -148,8 +148,7 @@ inline bool TextConverter::write_slot(const SlotDescriptor*
slot_desc, Tuple* tu
parse_result = StringParser::PARSE_FAILURE;
}
- *reinterpret_cast<PackedInt128*>(slot) =
- binary_cast<DecimalV2Value, PackedInt128>(decimal_slot);
+ *reinterpret_cast<PackedInt128*>(slot) = decimal_slot.value();
break;
}
@@ -301,9 +300,8 @@ inline bool TextConverter::write_vec_column(const
SlotDescriptor* slot_desc,
parse_result = StringParser::PARSE_FAILURE;
break;
}
- PackedInt128 num = binary_cast<DecimalV2Value,
PackedInt128>(decimal_slot);
-
reinterpret_cast<vectorized::ColumnVector<doris::PackedInt128>*>(col_ptr)->insert_value(
- num.value);
+
reinterpret_cast<vectorized::ColumnVector<vectorized::Int128>*>(col_ptr)->insert_value(
+ decimal_slot.value());
break;
}
diff --git a/be/src/olap/rowset/beta_rowset_writer.h
b/be/src/olap/rowset/beta_rowset_writer.h
index b190a130fe..96a513f5fe 100644
--- a/be/src/olap/rowset/beta_rowset_writer.h
+++ b/be/src/olap/rowset/beta_rowset_writer.h
@@ -65,7 +65,7 @@ public:
RowsetTypePB type() const override { return RowsetTypePB::BETA_ROWSET; }
- Status get_segment_num_rows(std::vector<uint32_t>* segment_num_rows) const
{
+ Status get_segment_num_rows(std::vector<uint32_t>* segment_num_rows) const
override {
*segment_num_rows = _segment_num_rows;
return Status::OK();
}
diff --git a/be/src/util/binary_cast.hpp b/be/src/util/binary_cast.hpp
index 1996946163..5da841a45e 100644
--- a/be/src/util/binary_cast.hpp
+++ b/be/src/util/binary_cast.hpp
@@ -82,7 +82,6 @@ To binary_cast(From from) {
constexpr bool from_i64_to_db = match_v<From, int64_t, To, double>;
constexpr bool from_db_to_i64 = match_v<From, double, To, int64_t>;
constexpr bool from_db_to_u64 = match_v<From, double, To, uint64_t>;
- constexpr bool from_decv2_to_packed128 = match_v<From, DecimalV2Value, To,
PackedInt128>;
constexpr bool from_i128_to_dt = match_v<From, __int128_t, To,
DateTimeValue>;
constexpr bool from_dt_to_i128 = match_v<From, DateTimeValue, To,
__int128_t>;
constexpr bool from_i64_to_vec_dt =
@@ -109,10 +108,9 @@ To binary_cast(From from) {
To, uint64_t>;
static_assert(from_u64_to_db || from_i64_to_db || from_db_to_i64 ||
from_db_to_u64 ||
- from_decv2_to_packed128 || from_i128_to_dt ||
from_dt_to_i128 ||
- from_i64_to_vec_dt || from_vec_dt_to_i64 ||
from_i128_to_decv2 ||
- from_decv2_to_i128 || from_ui32_to_date_v2 ||
from_date_v2_to_ui32 ||
- from_ui64_to_datetime_v2 || from_datetime_v2_to_ui64);
+ from_i128_to_dt || from_dt_to_i128 || from_i64_to_vec_dt ||
from_vec_dt_to_i64 ||
+ from_i128_to_decv2 || from_decv2_to_i128 ||
from_ui32_to_date_v2 ||
+ from_date_v2_to_ui32 || from_ui64_to_datetime_v2 ||
from_datetime_v2_to_ui64);
if constexpr (from_u64_to_db) {
TypeConverter conv;
@@ -130,10 +128,6 @@ To binary_cast(From from) {
TypeConverter conv;
conv.dbl = from;
return conv.u64;
- } else if constexpr (from_decv2_to_packed128) {
- DecimalInt128Union conv;
- conv.decimal = from;
- return conv.packed128;
} else if constexpr (from_i128_to_dt) {
DateTimeInt128Union conv = {.i128 = from};
return conv.dt;
diff --git a/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
b/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
index 09f07236b2..a2d6dd8b4c 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
@@ -184,14 +184,14 @@ public:
// TODO: handle mode in the future.
// be/src/olap/row_block2.cpp copy_data_to_column
const auto& timestamp =
- static_cast<const
ColumnVector<DateValueType>&>(*columns[2]).get_data()[row_num];
+ static_cast<const
ColumnVector<NativeType>&>(*columns[2]).get_data()[row_num];
const int NON_EVENT_NUM = 3;
for (int i = NON_EVENT_NUM; i <
IAggregateFunction::get_argument_types().size(); i++) {
const auto& is_set =
static_cast<const
ColumnVector<UInt8>&>(*columns[i]).get_data()[row_num];
if (is_set) {
this->data(place).add(
- timestamp, i - NON_EVENT_NUM,
+ binary_cast<NativeType, DateValueType>(timestamp), i -
NON_EVENT_NUM,
IAggregateFunction::get_argument_types().size() -
NON_EVENT_NUM, window);
}
}
diff --git a/be/src/vec/exec/vschema_scan_node.cpp
b/be/src/vec/exec/vschema_scan_node.cpp
index baa2b4bd94..cdc258fe99 100644
--- a/be/src/vec/exec/vschema_scan_node.cpp
+++ b/be/src/vec/exec/vschema_scan_node.cpp
@@ -26,6 +26,7 @@
#include "runtime/tuple_row.h"
#include "util/runtime_profile.h"
#include "util/types.h"
+#include "vec/core/types.h"
namespace doris::vectorized {
VSchemaScanNode::VSchemaScanNode(ObjectPool* pool, const TPlanNode& tnode,
@@ -425,9 +426,8 @@ Status
VSchemaScanNode::write_slot_to_vectorized_column(void* slot, SlotDescript
case TYPE_DECIMALV2:
case TYPE_DECIMAL128: {
- __int128 num = (reinterpret_cast<PackedInt128*>(slot))->value;
-
reinterpret_cast<vectorized::ColumnVector<doris::PackedInt128>*>(col_ptr)->insert_value(
- num);
+ Int128 num = (reinterpret_cast<PackedInt128*>(slot))->value;
+
reinterpret_cast<vectorized::ColumnVector<Int128>*>(col_ptr)->insert_value(num);
break;
}
diff --git a/be/src/vec/io/io_helper.h b/be/src/vec/io/io_helper.h
index 64cca34005..1773991c6e 100644
--- a/be/src/vec/io/io_helper.h
+++ b/be/src/vec/io/io_helper.h
@@ -322,7 +322,7 @@ bool read_decimal_text_impl(T& x, ReadBuffer& buf, UInt32
precision, UInt32 scal
// only to match the is_all_read() check to prevent return null
buf.position() = buf.end();
- x.value = binary_cast<DecimalV2Value, Int128>(dv);
+ x.value = dv.value();
return ans;
}
diff --git a/be/src/vec/sink/vtablet_sink.cpp b/be/src/vec/sink/vtablet_sink.cpp
index 1dbcc05daa..825c67b2a6 100644
--- a/be/src/vec/sink/vtablet_sink.cpp
+++ b/be/src/vec/sink/vtablet_sink.cpp
@@ -573,8 +573,7 @@ Status VOlapTableSink::_validate_data(RuntimeState* state,
vectorized::Block* bl
if (dec_val.greater_than_scale(desc->type().scale)) {
auto code = dec_val.round(&dec_val,
desc->type().scale, HALF_UP);
- column_decimal->get_data()[j] =
- binary_cast<DecimalV2Value,
vectorized::Int128>(dec_val);
+ column_decimal->get_data()[j] = dec_val.value();
if (code != E_DEC_OK) {
fmt::format_to(error_msg, "round one decimal
failed.value={}; ",
diff --git a/be/test/vec/utils/arrow_column_to_doris_column_test.cpp
b/be/test/vec/utils/arrow_column_to_doris_column_test.cpp
index 4eec72ae65..afa5bf7c6f 100644
--- a/be/test/vec/utils/arrow_column_to_doris_column_test.cpp
+++ b/be/test/vec/utils/arrow_column_to_doris_column_test.cpp
@@ -396,8 +396,7 @@ void test_decimalv2(std::shared_ptr<arrow::Decimal128Type>
type,
MutableColumnPtr data_column = data_type->create_column();
ColumnWithTypeAndName column(std::move(data_column), data_type,
"test_numeric_column");
for (auto& str : test_cases) {
- DecimalV2Value decimal_value(str);
- int128_t value = binary_cast<DecimalV2Value, int128_t>(decimal_value);
+ int128_t value = DecimalV2Value(str).value();
int128_t expect_value =
convert_decimals<vectorized::DataTypeDecimal<vectorized::Decimal128>,
vectorized::DataTypeDecimal<vectorized::Decimal128>>(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]