diff --git a/be/src/vec/data_types/data_type_nullable.cpp b/be/src/vec/data_types/data_type_nullable.cpp index 1a1e302cad..cfacd22b1e 100644 --- a/be/src/vec/data_types/data_type_nullable.cpp +++ b/be/src/vec/data_types/data_type_nullable.cpp @@ -43,9 +43,12 @@ namespace doris::vectorized { DataTypeNullable::DataTypeNullable(const DataTypePtr& nested_data_type_) : nested_data_type {nested_data_type_} { + if (!nested_data_type) { + throw Exception(ErrorCode::INTERNAL_ERROR, "DataTypeNullable input nested type is nullptr"); + } if (!nested_data_type->can_be_inside_nullable()) { - LOG(FATAL) << fmt::format("Nested type {} cannot be inside Nullable type", - nested_data_type->get_name()); + throw Exception(ErrorCode::INTERNAL_ERROR, "Nested type {} cannot be inside Nullable type", + nested_data_type->get_name()); } } 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 2f8260c0bb..6ed8047f34 100644 --- a/be/src/vec/data_types/data_type_number_base.h +++ b/be/src/vec/data_types/data_type_number_base.h @@ -66,6 +66,9 @@ public: const char* get_family_name() const override { return TypeName::get(); } TypeIndex get_type_id() const override { return TypeId::value; } PrimitiveType get_type_as_primitive_type() const override { + if constexpr (std::is_same_v, TypeId>) { + return TYPE_BOOLEAN; + } if constexpr (std::is_same_v, TypeId>) { return TYPE_TINYINT; } @@ -87,7 +90,7 @@ public: if constexpr (std::is_same_v, TypeId>) { return TYPE_DOUBLE; } - __builtin_unreachable(); + return INVALID_TYPE; } TPrimitiveType::type get_type_as_tprimitive_type() const override { if constexpr (std::is_same_v, TypeId>) {