diff --git a/be/src/vec/common/schema_util.cpp b/be/src/vec/common/schema_util.cpp index 42167b6b8c..a42181e967 100644 --- a/be/src/vec/common/schema_util.cpp +++ b/be/src/vec/common/schema_util.cpp @@ -199,8 +199,7 @@ void get_column_by_type(const vectorized::DataTypePtr& data_type, const std::str TabletColumn child; get_column_by_type(assert_cast(data_type.get())->get_nested_type(), "", child, {}); - column.set_length(TabletColumn::get_field_length_by_type( - data_type->get_type_as_tprimitive_type(), 0)); + column.set_length(TabletColumn::get_field_length_by_type(TPrimitiveType::ARRAY, 0)); column.add_sub_column(child); column.set_default_value("[]"); return; diff --git a/be/src/vec/data_types/data_type.h b/be/src/vec/data_types/data_type.h index 549b32f989..3bcc9b064f 100644 --- a/be/src/vec/data_types/data_type.h +++ b/be/src/vec/data_types/data_type.h @@ -78,7 +78,6 @@ public: virtual TypeIndex get_type_id() const = 0; virtual TypeDescriptor get_type_as_type_descriptor() const = 0; - virtual TPrimitiveType::type get_type_as_tprimitive_type() const = 0; virtual doris::FieldType get_storage_field_type() const = 0; virtual void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const; @@ -148,20 +147,6 @@ public: * The same for nullable of comparable types: they are comparable (but not totally-comparable). */ virtual bool is_comparable() const { return false; } - /** Values of data type can be summed (possibly with overflow, within the same data type). - * Example: numbers, even nullable. Not Date/DateTime. Not Enum. - * Enums can be passed to aggregate function 'sum', but the result is Int64, not Enum, so they are not summable. - */ - virtual bool is_summable() const { return false; } - - /** Can be used in operations like bit and, bit shift, bit not, etc. - */ - virtual bool can_be_used_in_bit_operations() const { return false; } - - /** Can be used in boolean context (WHERE, HAVING). - * UInt8, maybe nullable. - */ - virtual bool can_be_used_in_boolean_context() const { return false; } /** Numbers, Enums, Date, DateTime. Not nullable. */ diff --git a/be/src/vec/data_types/data_type_agg_state.h b/be/src/vec/data_types/data_type_agg_state.h index 596ed79203..264f300897 100644 --- a/be/src/vec/data_types/data_type_agg_state.h +++ b/be/src/vec/data_types/data_type_agg_state.h @@ -78,9 +78,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_AGG_STATE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::AGG_STATE; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_AGG_STATE; diff --git a/be/src/vec/data_types/data_type_array.h b/be/src/vec/data_types/data_type_array.h index 6335f18e12..bca53d62fd 100644 --- a/be/src/vec/data_types/data_type_array.h +++ b/be/src/vec/data_types/data_type_array.h @@ -64,9 +64,6 @@ public: desc.add_sub_type(nested->get_type_as_type_descriptor()); return desc; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::ARRAY; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_ARRAY; diff --git a/be/src/vec/data_types/data_type_bitmap.h b/be/src/vec/data_types/data_type_bitmap.h index 93fe7391a9..90ed1620b7 100644 --- a/be/src/vec/data_types/data_type_bitmap.h +++ b/be/src/vec/data_types/data_type_bitmap.h @@ -61,9 +61,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_OBJECT); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::OBJECT; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_OBJECT; diff --git a/be/src/vec/data_types/data_type_date.h b/be/src/vec/data_types/data_type_date.h index 3db3f9396f..1ae78678bd 100644 --- a/be/src/vec/data_types/data_type_date.h +++ b/be/src/vec/data_types/data_type_date.h @@ -50,9 +50,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_DATE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::DATE; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_DATE; 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 c8872e9a35..5633449bc4 100644 --- a/be/src/vec/data_types/data_type_date_time.h +++ b/be/src/vec/data_types/data_type_date_time.h @@ -76,9 +76,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_DATETIME); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::DATETIME; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_DATETIME; diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index ff24b56712..fa45539e7e 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -168,23 +168,6 @@ public: return desc; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::DECIMAL32; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::DECIMAL64; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::DECIMAL128I; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::DECIMAL256; - } - LOG(FATAL) << "__builtin_unreachable"; - __builtin_unreachable(); - } - doris::FieldType get_storage_field_type() const override { if constexpr (std::is_same_v, TypeId>) { return doris::FieldType::OLAP_FIELD_TYPE_DECIMAL32; @@ -247,8 +230,6 @@ public: bool have_maximum_size_of_value() const override { return true; } size_t get_size_of_value_in_memory() const override { return sizeof(T); } - bool is_summable() const override { return true; } - bool can_be_used_in_boolean_context() const override { return true; } 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; Status from_string(ReadBuffer& rb, IColumn* column) const override; diff --git a/be/src/vec/data_types/data_type_fixed_length_object.h b/be/src/vec/data_types/data_type_fixed_length_object.h index 2b709d5dd3..699972ccc2 100644 --- a/be/src/vec/data_types/data_type_fixed_length_object.h +++ b/be/src/vec/data_types/data_type_fixed_length_object.h @@ -56,10 +56,6 @@ public: return TypeDescriptor(INVALID_TYPE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::INVALID_TYPE; - } - doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_NONE; } diff --git a/be/src/vec/data_types/data_type_hll.h b/be/src/vec/data_types/data_type_hll.h index 0c40868e9e..92397025f8 100644 --- a/be/src/vec/data_types/data_type_hll.h +++ b/be/src/vec/data_types/data_type_hll.h @@ -57,9 +57,6 @@ public: TypeIndex get_type_id() const override { return TypeIndex::HLL; } TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_HLL); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::HLL; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_HLL; diff --git a/be/src/vec/data_types/data_type_ipv4.h b/be/src/vec/data_types/data_type_ipv4.h index 6270840155..4f0c44dfaf 100644 --- a/be/src/vec/data_types/data_type_ipv4.h +++ b/be/src/vec/data_types/data_type_ipv4.h @@ -44,9 +44,6 @@ namespace doris::vectorized { class DataTypeIPv4 final : public DataTypeNumberBase { public: TypeIndex get_type_id() const override { return TypeIndex::IPv4; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::IPV4; - } const char* get_family_name() const override { return "IPv4"; } std::string do_get_name() const override { return "IPv4"; } diff --git a/be/src/vec/data_types/data_type_ipv6.h b/be/src/vec/data_types/data_type_ipv6.h index 74e2cd3d54..b6cf52f7b8 100755 --- a/be/src/vec/data_types/data_type_ipv6.h +++ b/be/src/vec/data_types/data_type_ipv6.h @@ -45,9 +45,6 @@ namespace doris::vectorized { class DataTypeIPv6 final : public DataTypeNumberBase { public: TypeIndex get_type_id() const override { return TypeIndex::IPv6; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::IPV6; - } const char* get_family_name() const override { return "IPv6"; } std::string do_get_name() const override { return "IPv6"; } diff --git a/be/src/vec/data_types/data_type_jsonb.h b/be/src/vec/data_types/data_type_jsonb.h index e6800f436e..53c57d70ee 100644 --- a/be/src/vec/data_types/data_type_jsonb.h +++ b/be/src/vec/data_types/data_type_jsonb.h @@ -56,10 +56,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_JSONB); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::JSONB; - } - doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_JSONB; } diff --git a/be/src/vec/data_types/data_type_map.h b/be/src/vec/data_types/data_type_map.h index d5b4b61ccb..d9a080097a 100644 --- a/be/src/vec/data_types/data_type_map.h +++ b/be/src/vec/data_types/data_type_map.h @@ -65,9 +65,6 @@ public: desc.add_sub_type(value_type->get_type_as_type_descriptor()); return desc; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::MAP; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_MAP; diff --git a/be/src/vec/data_types/data_type_nothing.h b/be/src/vec/data_types/data_type_nothing.h index 43079f5bd2..4df7c8a082 100644 --- a/be/src/vec/data_types/data_type_nothing.h +++ b/be/src/vec/data_types/data_type_nothing.h @@ -55,9 +55,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(INVALID_TYPE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::INVALID_TYPE; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_NONE; diff --git a/be/src/vec/data_types/data_type_nullable.h b/be/src/vec/data_types/data_type_nullable.h index 5d468bba67..fc958096ad 100644 --- a/be/src/vec/data_types/data_type_nullable.h +++ b/be/src/vec/data_types/data_type_nullable.h @@ -63,9 +63,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(nested_data_type->get_type_as_type_descriptor()); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return nested_data_type->get_type_as_tprimitive_type(); - } doris::FieldType get_storage_field_type() const override { return nested_data_type->get_storage_field_type(); @@ -104,10 +101,6 @@ public: return nested_data_type->text_can_contain_only_valid_utf8(); } bool is_comparable() const override { return nested_data_type->is_comparable(); } - bool is_summable() const override { return nested_data_type->is_summable(); } - bool can_be_used_in_boolean_context() const override { - return nested_data_type->can_be_used_in_boolean_context(); - } bool have_maximum_size_of_value() const override { return nested_data_type->have_maximum_size_of_value(); } diff --git a/be/src/vec/data_types/data_type_number.h b/be/src/vec/data_types/data_type_number.h index 2960a0bf44..6db0f97898 100644 --- a/be/src/vec/data_types/data_type_number.h +++ b/be/src/vec/data_types/data_type_number.h @@ -30,10 +30,6 @@ namespace doris::vectorized { template class DataTypeNumber final : public DataTypeNumberBase { bool equals(const IDataType& rhs) const override { return typeid(rhs) == typeid(*this); } - - bool is_summable() const override { return true; } - bool can_be_used_in_bit_operations() const override { return true; } - bool can_be_used_in_boolean_context() const override { return true; } }; using DataTypeUInt8 = DataTypeNumber; 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 97e3cdbf1d..8099ac4ba0 100644 --- a/be/src/vec/data_types/data_type_number_base.h +++ b/be/src/vec/data_types/data_type_number_base.h @@ -98,32 +98,6 @@ public: return TypeDescriptor(INVALID_TYPE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::TINYINT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::SMALLINT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::INT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::BIGINT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::LARGEINT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::FLOAT; - } - if constexpr (std::is_same_v, TypeId>) { - return TPrimitiveType::DOUBLE; - } - LOG(FATAL) << "__builtin_unreachable"; - __builtin_unreachable(); - } - doris::FieldType get_storage_field_type() const override { if constexpr (std::is_same_v, TypeId>) { return doris::FieldType::OLAP_FIELD_TYPE_TINYINT; diff --git a/be/src/vec/data_types/data_type_object.h b/be/src/vec/data_types/data_type_object.h index 0eb2868148..8d2d04361d 100644 --- a/be/src/vec/data_types/data_type_object.h +++ b/be/src/vec/data_types/data_type_object.h @@ -58,9 +58,7 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_VARIANT); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::VARIANT; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_VARIANT; } diff --git a/be/src/vec/data_types/data_type_quantilestate.h b/be/src/vec/data_types/data_type_quantilestate.h index 770b8ae7ad..6ef1e31dea 100644 --- a/be/src/vec/data_types/data_type_quantilestate.h +++ b/be/src/vec/data_types/data_type_quantilestate.h @@ -56,9 +56,7 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_QUANTILE_STATE); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::QUANTILE_STATE; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_QUANTILE_STATE; } diff --git a/be/src/vec/data_types/data_type_string.h b/be/src/vec/data_types/data_type_string.h index 6e4018bb34..a03e32f787 100644 --- a/be/src/vec/data_types/data_type_string.h +++ b/be/src/vec/data_types/data_type_string.h @@ -59,9 +59,6 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_STRING); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::STRING; - } doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_STRING; } diff --git a/be/src/vec/data_types/data_type_struct.h b/be/src/vec/data_types/data_type_struct.h index af2dd09f36..ad1a42a011 100644 --- a/be/src/vec/data_types/data_type_struct.h +++ b/be/src/vec/data_types/data_type_struct.h @@ -82,9 +82,7 @@ public: } return desc; } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::STRUCT; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_STRUCT; } diff --git a/be/src/vec/data_types/data_type_time.h b/be/src/vec/data_types/data_type_time.h index 5f45dbb721..27b1f931bc 100644 --- a/be/src/vec/data_types/data_type_time.h +++ b/be/src/vec/data_types/data_type_time.h @@ -56,9 +56,7 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_TIME); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::TIME; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_TIMEV2; } @@ -67,10 +65,6 @@ public: MutableColumnPtr create_column() const override; - bool is_summable() const override { return true; } - bool can_be_used_in_bit_operations() const override { return true; } - bool can_be_used_in_boolean_context() const override { return true; } - DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override { return std::make_shared(nesting_level); }; @@ -94,18 +88,11 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_TIMEV2); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::TIMEV2; - } void to_string(const IColumn& column, size_t row_num, BufferWritable& ostr) const override; MutableColumnPtr create_column() const override; - bool is_summable() const override { return true; } - bool can_be_used_in_bit_operations() const override { return true; } - bool can_be_used_in_boolean_context() const override { return true; } - void to_pb_column_meta(PColumnMeta* col_meta) const override; DataTypeSerDeSPtr get_serde(int nesting_level = 1) const override { return std::make_shared(_scale, nesting_level); 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 369d382cbd..07b7e520bd 100644 --- a/be/src/vec/data_types/data_type_time_v2.h +++ b/be/src/vec/data_types/data_type_time_v2.h @@ -60,9 +60,7 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_DATEV2); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::DATEV2; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_DATEV2; } @@ -117,9 +115,7 @@ public: TypeDescriptor get_type_as_type_descriptor() const override { return TypeDescriptor(TYPE_DATETIMEV2); } - TPrimitiveType::type get_type_as_tprimitive_type() const override { - return TPrimitiveType::DATETIMEV2; - } + doris::FieldType get_storage_field_type() const override { return doris::FieldType::OLAP_FIELD_TYPE_DATETIMEV2; }