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 c19ace05750 [refactor](datatype)delete useless code in datatype and fix push_number func (#37693) c19ace05750 is described below commit c19ace057505b3c537e5234c1e74eea80eb7e052 Author: amory <amorywang...@gmail.com> AuthorDate: Tue Jul 16 19:09:09 2024 +0800 [refactor](datatype)delete useless code in datatype and fix push_number func (#37693) ## Proposed changes 1. delete useless code 2. change push_bumber to push_number Issue Number: close #xxx <!--Describe your changes.--> --- be/src/vec/data_types/data_type.cpp | 4 --- be/src/vec/data_types/data_type.h | 5 --- be/src/vec/data_types/data_type_array.cpp | 11 ------- be/src/vec/data_types/data_type_date.cpp | 2 +- be/src/vec/data_types/data_type_date.h | 2 +- be/src/vec/data_types/data_type_date_time.cpp | 2 +- be/src/vec/data_types/data_type_date_time.h | 2 +- be/src/vec/data_types/data_type_decimal.h | 41 ------------------------ be/src/vec/data_types/data_type_ipv4.cpp | 2 +- be/src/vec/data_types/data_type_ipv4.h | 2 +- be/src/vec/data_types/data_type_ipv6.cpp | 2 +- be/src/vec/data_types/data_type_ipv6.h | 2 +- be/src/vec/data_types/data_type_nothing.h | 5 --- be/src/vec/data_types/data_type_number.cpp | 2 +- be/src/vec/data_types/data_type_number.h | 2 +- be/src/vec/data_types/data_type_number_base.h | 2 +- be/src/vec/data_types/data_type_struct.cpp | 45 --------------------------- be/src/vec/data_types/data_type_struct.h | 2 -- be/src/vec/data_types/data_type_time.cpp | 4 +-- be/src/vec/data_types/data_type_time.h | 4 +-- be/src/vec/data_types/data_type_time_v2.cpp | 4 +-- be/src/vec/data_types/data_type_time_v2.h | 4 +-- 22 files changed, 19 insertions(+), 132 deletions(-) diff --git a/be/src/vec/data_types/data_type.cpp b/be/src/vec/data_types/data_type.cpp index 1e55d72a805..88e30db6080 100644 --- a/be/src/vec/data_types/data_type.cpp +++ b/be/src/vec/data_types/data_type.cpp @@ -107,10 +107,6 @@ void IDataType::to_string_batch(const IColumn& column, ColumnString& column_to) } } -void IDataType::insert_default_into(IColumn& column) const { - column.insert_default(); -} - void IDataType::to_pb_column_meta(PColumnMeta* col_meta) const { col_meta->set_type(get_pdata_type(this)); } diff --git a/be/src/vec/data_types/data_type.h b/be/src/vec/data_types/data_type.h index 59836145849..48743c926a5 100644 --- a/be/src/vec/data_types/data_type.h +++ b/be/src/vec/data_types/data_type.h @@ -115,11 +115,6 @@ public: virtual Field get_field(const TExprNode& node) const = 0; - /** Directly insert default value into a column. Default implementation use method IColumn::insert_default. - * This should be overridden if data type default value differs from column default value (example: Enum data types). - */ - virtual void insert_default_into(IColumn& column) const; - /// Checks that two instances belong to the same type virtual bool equals(const IDataType& rhs) const = 0; diff --git a/be/src/vec/data_types/data_type_array.cpp b/be/src/vec/data_types/data_type_array.cpp index f79f660a51d..a4303b74d39 100644 --- a/be/src/vec/data_types/data_type_array.cpp +++ b/be/src/vec/data_types/data_type_array.cpp @@ -118,17 +118,6 @@ void DataTypeArray::to_pb_column_meta(PColumnMeta* col_meta) const { get_nested_type()->to_pb_column_meta(children); } -void get_decimal_value(const IColumn& nested_column, DecimalV2Value& decimal_value, size_t pos) { - const IColumn* nested_col = &nested_column; - if (nested_column.is_nullable()) { - nested_col = - reinterpret_cast<const ColumnNullable*>(&nested_column)->get_nested_column_ptr(); - } - decimal_value = (DecimalV2Value)(reinterpret_cast<const PackedInt128*>( - nested_col->get_data_at(pos).data) - ->value); -} - void DataTypeArray::to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const { auto result = check_column_const_set_readability(column, row_num); ColumnPtr ptr = result.first; diff --git a/be/src/vec/data_types/data_type_date.cpp b/be/src/vec/data_types/data_type_date.cpp index a01769bbece..da2b939ccfc 100644 --- a/be/src/vec/data_types/data_type_date.cpp +++ b/be/src/vec/data_types/data_type_date.cpp @@ -44,7 +44,7 @@ bool DataTypeDate::equals(const IDataType& rhs) const { size_t DataTypeDate::number_length() const { return 10; } -void DataTypeDate::push_bumber(ColumnString::Chars& chars, const Int64& num) const { +void DataTypeDate::push_number(ColumnString::Chars& chars, const Int64& num) const { doris::VecDateTimeValue value = binary_cast<Int64, doris::VecDateTimeValue>(num); char buf[64]; char* pos = value.to_string(buf); diff --git a/be/src/vec/data_types/data_type_date.h b/be/src/vec/data_types/data_type_date.h index b8afbbc0c66..0d62230a9b0 100644 --- a/be/src/vec/data_types/data_type_date.h +++ b/be/src/vec/data_types/data_type_date.h @@ -65,7 +65,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const Int64& num) const; + void push_number(ColumnString::Chars& chars, const Int64& num) const; std::string to_string(Int64 int_val) const { doris::VecDateTimeValue value = binary_cast<Int64, doris::VecDateTimeValue>(int_val); char buf[64]; diff --git a/be/src/vec/data_types/data_type_date_time.cpp b/be/src/vec/data_types/data_type_date_time.cpp index b9c2c87324c..14982d668e7 100644 --- a/be/src/vec/data_types/data_type_date_time.cpp +++ b/be/src/vec/data_types/data_type_date_time.cpp @@ -47,7 +47,7 @@ size_t DataTypeDateTime::number_length() const { return 20; } -void DataTypeDateTime::push_bumber(ColumnString::Chars& chars, const Int64& num) const { +void DataTypeDateTime::push_number(ColumnString::Chars& chars, const Int64& num) const { doris::VecDateTimeValue value = binary_cast<Int64, doris::VecDateTimeValue>(num); char buf[64]; diff --git a/be/src/vec/data_types/data_type_date_time.h b/be/src/vec/data_types/data_type_date_time.h index cb86d5141ad..99507a37039 100644 --- a/be/src/vec/data_types/data_type_date_time.h +++ b/be/src/vec/data_types/data_type_date_time.h @@ -108,7 +108,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const Int64& num) const; + void push_number(ColumnString::Chars& chars, const Int64& num) const; Status from_string(ReadBuffer& rb, IColumn* column) const override; diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index 7b6ea532b74..5a17bbf314c 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -98,30 +98,6 @@ constexpr size_t max_decimal_precision<Decimal256>() { DataTypePtr create_decimal(UInt64 precision, UInt64 scale, bool use_v2); -inline UInt32 least_decimal_precision_for(TypeIndex int_type) { - switch (int_type) { - case TypeIndex::Int8: - [[fallthrough]]; - case TypeIndex::UInt8: - return 3; - case TypeIndex::Int16: - [[fallthrough]]; - case TypeIndex::UInt16: - return 5; - case TypeIndex::Int32: - [[fallthrough]]; - case TypeIndex::UInt32: - return 10; - case TypeIndex::Int64: - return 19; - case TypeIndex::UInt64: - return 20; - default: - break; - } - return 0; -} - /// Implements Decimal(P, S), where P is precision, S is scale. /// Maximum precisions for underlying types are: /// Int32 9 @@ -271,23 +247,6 @@ public: } T get_scale_multiplier() const { return get_scale_multiplier(scale); } - T whole_part(T x) const { - if (scale == 0) { - return x; - } - return x / get_scale_multiplier(); - } - - T fractional_part(T x) const { - if (scale == 0) { - return T(); - } - if (x < T()) { - x *= -1; - } - return x % get_scale_multiplier(); - } - /// @returns multiplier for U to become T with correct scale template <typename U> T scale_factor_for(const DataTypeDecimal<U>& x, bool) const { diff --git a/be/src/vec/data_types/data_type_ipv4.cpp b/be/src/vec/data_types/data_type_ipv4.cpp index 5da71f2a66d..170613ce352 100644 --- a/be/src/vec/data_types/data_type_ipv4.cpp +++ b/be/src/vec/data_types/data_type_ipv4.cpp @@ -36,7 +36,7 @@ size_t DataTypeIPv4::number_length() const { //255.255.255.255 return 16; } -void DataTypeIPv4::push_bumber(ColumnString::Chars& chars, const IPv4& num) const { +void DataTypeIPv4::push_number(ColumnString::Chars& chars, const IPv4& num) const { auto value = IPv4Value(num); auto ipv4_str = value.to_string(); chars.insert(ipv4_str.begin(), ipv4_str.end()); diff --git a/be/src/vec/data_types/data_type_ipv4.h b/be/src/vec/data_types/data_type_ipv4.h index 6543dc98a06..88e6a3756bc 100644 --- a/be/src/vec/data_types/data_type_ipv4.h +++ b/be/src/vec/data_types/data_type_ipv4.h @@ -63,7 +63,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const IPv4& num) const; + void push_number(ColumnString::Chars& chars, const IPv4& num) const; std::string to_string(const IPv4& value) const; Status from_string(ReadBuffer& rb, IColumn* column) const override; diff --git a/be/src/vec/data_types/data_type_ipv6.cpp b/be/src/vec/data_types/data_type_ipv6.cpp index 51d5ebb3246..4a81727870e 100755 --- a/be/src/vec/data_types/data_type_ipv6.cpp +++ b/be/src/vec/data_types/data_type_ipv6.cpp @@ -36,7 +36,7 @@ size_t DataTypeIPv6::number_length() const { //ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff return 40; } -void DataTypeIPv6::push_bumber(ColumnString::Chars& chars, const IPv6& num) const { +void DataTypeIPv6::push_number(ColumnString::Chars& chars, const IPv6& num) const { auto value = IPv6Value(num); auto ipv6_str = value.to_string(); chars.insert(ipv6_str.begin(), ipv6_str.end()); diff --git a/be/src/vec/data_types/data_type_ipv6.h b/be/src/vec/data_types/data_type_ipv6.h index 54b26fbd3ba..89a42aca862 100755 --- a/be/src/vec/data_types/data_type_ipv6.h +++ b/be/src/vec/data_types/data_type_ipv6.h @@ -60,7 +60,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const IPv6& num) const; + void push_number(ColumnString::Chars& chars, const IPv6& num) const; std::string to_string(const IColumn& column, size_t row_num) const override; void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override; std::string to_string(const IPv6& value) const; diff --git a/be/src/vec/data_types/data_type_nothing.h b/be/src/vec/data_types/data_type_nothing.h index 71733d6d34c..6dcbe259102 100644 --- a/be/src/vec/data_types/data_type_nothing.h +++ b/be/src/vec/data_types/data_type_nothing.h @@ -86,11 +86,6 @@ public: __builtin_unreachable(); } - void insert_default_into(IColumn&) const override { - LOG(FATAL) << "Method insert_default_into() is not implemented for data type " - << get_name(); - } - bool have_subtypes() const override { return false; } DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override { LOG(FATAL) << get_name() << " not support serde"; diff --git a/be/src/vec/data_types/data_type_number.cpp b/be/src/vec/data_types/data_type_number.cpp index b834823a43f..644cd8e610c 100644 --- a/be/src/vec/data_types/data_type_number.cpp +++ b/be/src/vec/data_types/data_type_number.cpp @@ -43,7 +43,7 @@ size_t DataTypeNumber<T>::number_length() const { } template <typename T> -void DataTypeNumber<T>::push_bumber(ColumnString::Chars& chars, const T& num) const { +void DataTypeNumber<T>::push_number(ColumnString::Chars& chars, const T& num) const { if constexpr (std::is_same<T, UInt128>::value) { std::string hex = int128_to_string(num); chars.insert(hex.begin(), hex.end()); diff --git a/be/src/vec/data_types/data_type_number.h b/be/src/vec/data_types/data_type_number.h index 2ed1e08a977..aa3a9ca21e5 100644 --- a/be/src/vec/data_types/data_type_number.h +++ b/be/src/vec/data_types/data_type_number.h @@ -35,7 +35,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const T& num) const; + void push_number(ColumnString::Chars& chars, const T& num) const; }; using DataTypeUInt8 = DataTypeNumber<UInt8>; diff --git a/be/src/vec/data_types/data_type_number_base.h b/be/src/vec/data_types/data_type_number_base.h index 1d31cee4fd5..5859300b846 100644 --- a/be/src/vec/data_types/data_type_number_base.h +++ b/be/src/vec/data_types/data_type_number_base.h @@ -187,7 +187,7 @@ protected: chars.reserve(static_cast<const Derived*>(this)->number_length() * size); for (int row_num = 0; row_num < size; row_num++) { auto num = is_const ? col_vec.get_element(0) : col_vec.get_element(row_num); - static_cast<const Derived*>(this)->push_bumber(chars, num); + static_cast<const Derived*>(this)->push_number(chars, num); offsets[row_num] = chars.size(); } } diff --git a/be/src/vec/data_types/data_type_struct.cpp b/be/src/vec/data_types/data_type_struct.cpp index 8a28a0998cc..38c28cc4894 100644 --- a/be/src/vec/data_types/data_type_struct.cpp +++ b/be/src/vec/data_types/data_type_struct.cpp @@ -252,43 +252,6 @@ void DataTypeStruct::to_string(const IColumn& column, size_t row_num, BufferWrit ostr.write("}", 1); } -static inline IColumn& extract_element_column(IColumn& column, size_t idx) { - return assert_cast<ColumnStruct&>(column).get_column(idx); -} - -template <typename F> -void add_element_safe(const DataTypes& elems, IColumn& column, F&& impl) { - /// We use the assumption that tuples of zero size do not exist. - size_t old_size = column.size(); - - try { - impl(); - - // Check that all columns now have the same size. - size_t new_size = column.size(); - - for (auto i = 0; i < elems.size(); i++) { - const auto& element_column = extract_element_column(column, i); - if (element_column.size() != new_size) { - // This is not a logical error because it may work with - // user-supplied data. - LOG(FATAL) << "Cannot read a tuple because not all elements are present"; - __builtin_unreachable(); - } - } - } catch (...) { - for (auto i = 0; i < elems.size(); i++) { - auto& element_column = extract_element_column(column, i); - - if (element_column.size() > old_size) { - element_column.pop_back(1); - } - } - - throw; - } -} - MutableColumnPtr DataTypeStruct::create_column() const { size_t size = elems.size(); MutableColumns tuple_columns(size); @@ -307,14 +270,6 @@ Field DataTypeStruct::get_default() const { return t; } -void DataTypeStruct::insert_default_into(IColumn& column) const { - add_element_safe(elems, column, [&] { - for (auto i = 0; i < elems.size(); i++) { - elems[i]->insert_default_into(extract_element_column(column, i)); - } - }); -} - bool DataTypeStruct::equals(const IDataType& rhs) const { if (typeid(rhs) != typeid(*this)) { return false; diff --git a/be/src/vec/data_types/data_type_struct.h b/be/src/vec/data_types/data_type_struct.h index 172e5ec3ff5..47a0fd931b8 100644 --- a/be/src/vec/data_types/data_type_struct.h +++ b/be/src/vec/data_types/data_type_struct.h @@ -100,8 +100,6 @@ public: __builtin_unreachable(); } - void insert_default_into(IColumn& column) const override; - bool equals(const IDataType& rhs) const override; bool get_is_parametric() const override { return true; } diff --git a/be/src/vec/data_types/data_type_time.cpp b/be/src/vec/data_types/data_type_time.cpp index c0ab993a710..22e5b9ba9ea 100644 --- a/be/src/vec/data_types/data_type_time.cpp +++ b/be/src/vec/data_types/data_type_time.cpp @@ -48,7 +48,7 @@ size_t DataTypeTime::number_length() const { //59:59:59 return 8; } -void DataTypeTime::push_bumber(ColumnString::Chars& chars, const Float64& num) const { +void DataTypeTime::push_number(ColumnString::Chars& chars, const Float64& num) const { auto time_str = time_to_buffer_from_double(num); chars.insert(time_str.begin(), time_str.end()); } @@ -87,7 +87,7 @@ size_t DataTypeTimeV2::number_length() const { //59:59:59:000000 return 14; } -void DataTypeTimeV2::push_bumber(ColumnString::Chars& chars, const Float64& num) const { +void DataTypeTimeV2::push_number(ColumnString::Chars& chars, const Float64& num) const { auto timev2_str = timev2_to_buffer_from_double(num, _scale); chars.insert(timev2_str.begin(), timev2_str.end()); } diff --git a/be/src/vec/data_types/data_type_time.h b/be/src/vec/data_types/data_type_time.h index d97acbcf03b..b8e0af76603 100644 --- a/be/src/vec/data_types/data_type_time.h +++ b/be/src/vec/data_types/data_type_time.h @@ -68,7 +68,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const Float64& num) const; + void push_number(ColumnString::Chars& chars, const Float64& num) const; MutableColumnPtr create_column() const override; DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override { @@ -103,7 +103,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const Float64& num) const; + void push_number(ColumnString::Chars& chars, const Float64& num) const; MutableColumnPtr create_column() const override; void to_pb_column_meta(PColumnMeta* col_meta) const override; diff --git a/be/src/vec/data_types/data_type_time_v2.cpp b/be/src/vec/data_types/data_type_time_v2.cpp index f344f7601dc..53560fac4ba 100644 --- a/be/src/vec/data_types/data_type_time_v2.cpp +++ b/be/src/vec/data_types/data_type_time_v2.cpp @@ -51,7 +51,7 @@ size_t DataTypeDateV2::number_length() const { //2024-01-01 return 10; } -void DataTypeDateV2::push_bumber(ColumnString::Chars& chars, const UInt32& num) const { +void DataTypeDateV2::push_number(ColumnString::Chars& chars, const UInt32& num) const { DateV2Value<DateV2ValueType> val = binary_cast<UInt32, DateV2Value<DateV2ValueType>>(num); char buf[64]; @@ -171,7 +171,7 @@ size_t DataTypeDateTimeV2::number_length() const { //2024-01-01 00:00:00-000000 return 32; } -void DataTypeDateTimeV2::push_bumber(ColumnString::Chars& chars, const UInt64& num) const { +void DataTypeDateTimeV2::push_number(ColumnString::Chars& chars, const UInt64& num) const { DateV2Value<DateTimeV2ValueType> val = binary_cast<UInt64, DateV2Value<DateTimeV2ValueType>>(num); char buf[64]; diff --git a/be/src/vec/data_types/data_type_time_v2.h b/be/src/vec/data_types/data_type_time_v2.h index 380c3687c16..11becb80fd0 100644 --- a/be/src/vec/data_types/data_type_time_v2.h +++ b/be/src/vec/data_types/data_type_time_v2.h @@ -87,7 +87,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const UInt32& num) const; + void push_number(ColumnString::Chars& chars, const UInt32& num) const; std::string to_string(const IColumn& column, size_t row_num) const override; void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override; std::string to_string(UInt32 int_val) const; @@ -138,7 +138,7 @@ public: } size_t number_length() const; - void push_bumber(ColumnString::Chars& chars, const UInt64& num) const; + void push_number(ColumnString::Chars& chars, const UInt64& num) const; void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override; std::string to_string(UInt64 int_val) const; Status from_string(ReadBuffer& rb, IColumn* column) const override; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org