From 913282b29b780e47ad4beebaaf307c8ec79c54cd Mon Sep 17 00:00:00 2001 From: lihangyu <15605149486@163.com> Date: Tue, 10 Oct 2023 20:27:15 +0800 Subject: [PATCH] [refactor](column) remove `get_data_type` in IColumn (#25242) --- be/src/vec/columns/column.h | 5 ----- be/src/vec/columns/column_array.h | 1 - be/src/vec/columns/column_complex.h | 4 ---- be/src/vec/columns/column_const.h | 2 -- be/src/vec/columns/column_decimal.h | 2 -- be/src/vec/columns/column_dictionary.h | 4 ---- be/src/vec/columns/column_fixed_length_object.h | 2 -- be/src/vec/columns/column_map.h | 1 - be/src/vec/columns/column_nullable.h | 2 -- be/src/vec/columns/column_object.cpp | 17 ++--------------- be/src/vec/columns/column_object.h | 2 -- be/src/vec/columns/column_string.h | 2 -- be/src/vec/columns/column_struct.h | 1 - be/src/vec/columns/column_vector.h | 1 - be/src/vec/columns/predicate_column.h | 4 ---- 15 files changed, 2 insertions(+), 48 deletions(-) diff --git a/be/src/vec/columns/column.h b/be/src/vec/columns/column.h index c278940f53..1f7b4271a5 100644 --- a/be/src/vec/columns/column.h +++ b/be/src/vec/columns/column.h @@ -148,11 +148,6 @@ public: virtual void set_rowset_segment_id(std::pair rowset_segment_id) {} virtual std::pair get_rowset_segment_id() const { return {}; } - // todo(Amory) from column to get data type is not correct ,column is memory data,can not to assume memory data belong to which data type - virtual TypeIndex get_data_type() const { - LOG(FATAL) << "Cannot get_data_type() column " << get_name(); - __builtin_unreachable(); - } /// Returns number of values in column. virtual size_t size() const = 0; diff --git a/be/src/vec/columns/column_array.h b/be/src/vec/columns/column_array.h index 6d5506b554..42d263dea3 100644 --- a/be/src/vec/columns/column_array.h +++ b/be/src/vec/columns/column_array.h @@ -127,7 +127,6 @@ public: const char* get_family_name() const override { return "Array"; } bool is_column_array() const override { return true; } bool can_be_inside_nullable() const override { return true; } - TypeIndex get_data_type() const override { return TypeIndex::Array; } MutableColumnPtr clone_resized(size_t size) const override; size_t size() const override; void resize(size_t n) override; diff --git a/be/src/vec/columns/column_complex.h b/be/src/vec/columns/column_complex.h index 43d71af70f..9e959d4a64 100644 --- a/be/src/vec/columns/column_complex.h +++ b/be/src/vec/columns/column_complex.h @@ -127,10 +127,6 @@ public: LOG(FATAL) << "get_permutation not implemented"; } - [[noreturn]] TypeIndex get_data_type() const override { - LOG(FATAL) << "ColumnComplexType get_data_type not implemeted"; - } - void get_indices_of_non_default_rows(IColumn::Offsets64& indices, size_t from, size_t limit) const override { LOG(FATAL) << "get_indices_of_non_default_rows not implemented"; diff --git a/be/src/vec/columns/column_const.h b/be/src/vec/columns/column_const.h index 2162c79b34..eb647f8a04 100644 --- a/be/src/vec/columns/column_const.h +++ b/be/src/vec/columns/column_const.h @@ -95,8 +95,6 @@ public: StringRef get_data_at(size_t) const override { return data->get_data_at(0); } - TypeIndex get_data_type() const override { return data->get_data_type(); } - UInt64 get64(size_t) const override { return data->get64(0); } UInt64 get_uint(size_t) const override { return data->get_uint(0); } diff --git a/be/src/vec/columns/column_decimal.h b/be/src/vec/columns/column_decimal.h index 4c07231569..ca38303ae2 100644 --- a/be/src/vec/columns/column_decimal.h +++ b/be/src/vec/columns/column_decimal.h @@ -229,8 +229,6 @@ public: void replicate(const uint32_t* indexs, size_t target_size, IColumn& column) const override; - TypeIndex get_data_type() const override { return TypeId::value; } - MutableColumns scatter(IColumn::ColumnIndex num_columns, const IColumn::Selector& selector) const override { return this->template scatter_impl(num_columns, selector); diff --git a/be/src/vec/columns/column_dictionary.h b/be/src/vec/columns/column_dictionary.h index 06d186fc69..3c9b64b654 100644 --- a/be/src/vec/columns/column_dictionary.h +++ b/be/src/vec/columns/column_dictionary.h @@ -114,10 +114,6 @@ public: void reserve(size_t n) override { _codes.reserve(n); } - [[noreturn]] TypeIndex get_data_type() const override { - LOG(FATAL) << "ColumnDictionary get_data_type not implemeted"; - } - const char* get_family_name() const override { return "ColumnDictionary"; } [[noreturn]] MutableColumnPtr clone_resized(size_t size) const override { diff --git a/be/src/vec/columns/column_fixed_length_object.h b/be/src/vec/columns/column_fixed_length_object.h index e8a2612a97..0536ab0219 100644 --- a/be/src/vec/columns/column_fixed_length_object.h +++ b/be/src/vec/columns/column_fixed_length_object.h @@ -200,8 +200,6 @@ public: LOG(FATAL) << "not support"; } - TypeIndex get_data_type() const override { LOG(FATAL) << "get_data_type not supported"; } - ColumnPtr index(const IColumn& indexes, size_t limit) const override { LOG(FATAL) << "index not supported"; } diff --git a/be/src/vec/columns/column_map.h b/be/src/vec/columns/column_map.h index a7e098f1a7..acb1bc964b 100644 --- a/be/src/vec/columns/column_map.h +++ b/be/src/vec/columns/column_map.h @@ -77,7 +77,6 @@ public: std::string get_name() const override; const char* get_family_name() const override { return "Map"; } - TypeIndex get_data_type() const override { return TypeIndex::Map; } void for_each_subcolumn(ColumnCallback callback) override { callback(keys_column); diff --git a/be/src/vec/columns/column_nullable.h b/be/src/vec/columns/column_nullable.h index 6fda0f629a..223e8eb9ae 100644 --- a/be/src/vec/columns/column_nullable.h +++ b/be/src/vec/columns/column_nullable.h @@ -116,8 +116,6 @@ public: Float64 get_float64(size_t n) const override { return nested_column->get_float64(n); } StringRef get_data_at(size_t n) const override; - TypeIndex get_data_type() const override { return TypeIndex::Nullable; } - /// Will insert null value if pos=nullptr void insert_data(const char* pos, size_t length) override; diff --git a/be/src/vec/columns/column_object.cpp b/be/src/vec/columns/column_object.cpp index b3dec81155..e66b9aa968 100644 --- a/be/src/vec/columns/column_object.cpp +++ b/be/src/vec/columns/column_object.cpp @@ -84,21 +84,8 @@ size_t getNumberOfDimensions(const IDataType& type) { } DataTypePtr get_data_type_by_column(const IColumn& column) { - auto idx = column.get_data_type(); - if (WhichDataType(idx).is_simple()) { - return DataTypeFactory::instance().create_data_type(idx); - } - if (WhichDataType(idx).is_nothing()) { - return std::make_shared(); - } - if (const auto* column_array = check_and_get_column(&column)) { - return std::make_shared(get_data_type_by_column(column_array->get_data())); - } - if (const auto* column_nullable = check_and_get_column(&column)) { - return make_nullable(get_data_type_by_column(column_nullable->get_nested_column())); - } - // TODO add more types - assert(false); + // Removed in the future PR + // assert(false); return nullptr; } diff --git a/be/src/vec/columns/column_object.h b/be/src/vec/columns/column_object.h index e9fd33e258..6bff69b1e6 100644 --- a/be/src/vec/columns/column_object.h +++ b/be/src/vec/columns/column_object.h @@ -266,8 +266,6 @@ public: /// Part of interface const char* get_family_name() const override { return "Variant"; } - TypeIndex get_data_type() const override { return TypeIndex::VARIANT; } - size_t size() const override; MutableColumnPtr clone_resized(size_t new_size) const override; diff --git a/be/src/vec/columns/column_string.h b/be/src/vec/columns/column_string.h index 1f29fc8cbf..2701a39e89 100644 --- a/be/src/vec/columns/column_string.h +++ b/be/src/vec/columns/column_string.h @@ -585,8 +585,6 @@ public: return shrinked_column; } - TypeIndex get_data_type() const override { return TypeIndex::String; } - void get_indices_of_non_default_rows(Offsets64& indices, size_t from, size_t limit) const override { return get_indices_of_non_default_rows_impl(indices, from, limit); diff --git a/be/src/vec/columns/column_struct.h b/be/src/vec/columns/column_struct.h index 2487a3b658..59587ce04e 100644 --- a/be/src/vec/columns/column_struct.h +++ b/be/src/vec/columns/column_struct.h @@ -83,7 +83,6 @@ public: std::string get_name() const override; const char* get_family_name() const override { return "Struct"; } - TypeIndex get_data_type() const override { return TypeIndex::Struct; } bool can_be_inside_nullable() const override { return true; } MutableColumnPtr clone_empty() const override; MutableColumnPtr clone_resized(size_t size) const override; diff --git a/be/src/vec/columns/column_vector.h b/be/src/vec/columns/column_vector.h index 65e20587f0..ec13696102 100644 --- a/be/src/vec/columns/column_vector.h +++ b/be/src/vec/columns/column_vector.h @@ -468,7 +468,6 @@ public: void compare_internal(size_t rhs_row_id, const IColumn& rhs, int nan_direction_hint, int direction, std::vector& cmp_res, uint8* __restrict filter) const override; - TypeIndex get_data_type() const override { return TypeId::value; } void get_indices_of_non_default_rows(IColumn::Offsets64& indices, size_t from, size_t limit) const override { return this->template get_indices_of_non_default_rows_impl(indices, from, limit); diff --git a/be/src/vec/columns/predicate_column.h b/be/src/vec/columns/predicate_column.h index 0d4257d8cf..652488f9ab 100644 --- a/be/src/vec/columns/predicate_column.h +++ b/be/src/vec/columns/predicate_column.h @@ -459,10 +459,6 @@ public: LOG(FATAL) << "append_data_by_selector is not supported in PredicateColumnType!"; } - [[noreturn]] TypeIndex get_data_type() const override { - LOG(FATAL) << "PredicateColumnType get_data_type not implemeted"; - } - Status filter_by_selector(const uint16_t* sel, size_t sel_size, IColumn* col_ptr) override { ColumnType* column = assert_cast(col_ptr); // DateV1 and DateTimeV1 is special, its storage format is different from compute format