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

Reply via email to