yiguolei commented on code in PR #59488:
URL: https://github.com/apache/doris/pull/59488#discussion_r2667196658
##########
be/src/vec/core/field.h:
##########
@@ -479,92 +472,11 @@ class Field {
case PrimitiveType::TYPE_DECIMAL256:
return get<Decimal256>() <=> rhs.get<Decimal256>();
default:
- throw Exception(Status::FatalError("lhs type not equal with rhs,
lhs={}, rhs={}",
- get_type_name(),
rhs.get_type_name()));
- }
- }
-
- template <typename F,
- typename Field> /// Field template parameter may be const or
non-const Field.
- static void dispatch(F&& f, Field& field) {
- switch (field.type) {
- case PrimitiveType::TYPE_NULL:
- f(field.template get<Null>());
- return;
- case PrimitiveType::TYPE_DATETIMEV2:
- case PrimitiveType::TYPE_TIMESTAMPTZ:
- f(field.template get<UInt64>());
- return;
- case PrimitiveType::TYPE_DATETIME:
- case PrimitiveType::TYPE_DATE:
- case PrimitiveType::TYPE_BIGINT:
- f(field.template get<Int64>());
- return;
- case PrimitiveType::TYPE_LARGEINT:
- f(field.template get<Int128>());
- return;
- case PrimitiveType::TYPE_IPV6:
- f(field.template get<IPv6>());
- return;
- case PrimitiveType::TYPE_TIMEV2:
- case PrimitiveType::TYPE_DOUBLE:
- f(field.template get<Float64>());
- return;
- case PrimitiveType::TYPE_STRING:
- case PrimitiveType::TYPE_CHAR:
- case PrimitiveType::TYPE_VARCHAR:
- f(field.template get<String>());
- return;
- case PrimitiveType::TYPE_VARBINARY:
- f(field.template get<StringViewField>());
- return;
- case PrimitiveType::TYPE_JSONB:
- f(field.template get<JsonbField>());
- return;
- case PrimitiveType::TYPE_ARRAY:
- f(field.template get<Array>());
- return;
- case PrimitiveType::TYPE_STRUCT:
- f(field.template get<Tuple>());
- return;
- case PrimitiveType::TYPE_MAP:
- f(field.template get<Map>());
- return;
- case PrimitiveType::TYPE_DECIMAL32:
- f(field.template get<DecimalField<Decimal32>>());
- return;
- case PrimitiveType::TYPE_DECIMAL64:
- f(field.template get<DecimalField<Decimal64>>());
- return;
- case PrimitiveType::TYPE_DECIMALV2:
- f(field.template get<DecimalField<Decimal128V2>>());
- return;
- case PrimitiveType::TYPE_DECIMAL128I:
- f(field.template get<DecimalField<Decimal128V3>>());
- return;
- case PrimitiveType::TYPE_DECIMAL256:
- f(field.template get<DecimalField<Decimal256>>());
- return;
- case PrimitiveType::TYPE_VARIANT:
- f(field.template get<VariantMap>());
- return;
- case PrimitiveType::TYPE_BITMAP:
- f(field.template get<BitmapValue>());
- return;
- case PrimitiveType::TYPE_HLL:
- f(field.template get<HyperLogLog>());
- return;
- case PrimitiveType::TYPE_QUANTILE_STATE:
- f(field.template get<QuantileState>());
- return;
- default:
- throw Exception(
- Status::FatalError("type not supported, type={}",
field.get_type_name()));
+ throw Exception(Status::FatalError("Unsupported type: {}",
get_type_name()));
}
}
std::string_view as_string_view() const;
- std::string to_string() const;
private:
std::aligned_union_t<DBMS_MIN_FIELD_SIZE - sizeof(PrimitiveType), Null,
UInt64, UInt128, Int64,
Review Comment:
这里对于decimal 我们放的是什么?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]