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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]