feat: add type extension for column (#122)

* feat: decimal128 proto

* chore: make all

* chore: empty line

* refactor: remove precision and scale

* chore: cr comment

Co-authored-by: Yingwen <realevenyag@gmail.com>

---------

Co-authored-by: Yingwen <realevenyag@gmail.com>
This commit is contained in:
Wei
2023-11-24 10:40:50 +08:00
committed by GitHub
parent 2ffdcae9f9
commit a11efce55d
20 changed files with 6320 additions and 494 deletions
+193
View File
@@ -371,6 +371,7 @@ class ColumnSchema final :
enum : int {
kColumnNameFieldNumber = 1,
kDatatypeExtensionFieldNumber = 4,
kDatatypeFieldNumber = 2,
kSemanticTypeFieldNumber = 3,
};
@@ -388,6 +389,24 @@ class ColumnSchema final :
std::string* _internal_mutable_column_name();
public:
// .greptime.v1.ColumnDataTypeExtension datatype_extension = 4;
bool has_datatype_extension() const;
private:
bool _internal_has_datatype_extension() const;
public:
void clear_datatype_extension();
const ::greptime::v1::ColumnDataTypeExtension& datatype_extension() const;
PROTOBUF_NODISCARD ::greptime::v1::ColumnDataTypeExtension* release_datatype_extension();
::greptime::v1::ColumnDataTypeExtension* mutable_datatype_extension();
void set_allocated_datatype_extension(::greptime::v1::ColumnDataTypeExtension* datatype_extension);
private:
const ::greptime::v1::ColumnDataTypeExtension& _internal_datatype_extension() const;
::greptime::v1::ColumnDataTypeExtension* _internal_mutable_datatype_extension();
public:
void unsafe_arena_set_allocated_datatype_extension(
::greptime::v1::ColumnDataTypeExtension* datatype_extension);
::greptime::v1::ColumnDataTypeExtension* unsafe_arena_release_datatype_extension();
// .greptime.v1.ColumnDataType datatype = 2;
void clear_datatype();
::greptime::v1::ColumnDataType datatype() const;
@@ -415,6 +434,7 @@ class ColumnSchema final :
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr column_name_;
::greptime::v1::ColumnDataTypeExtension* datatype_extension_;
int datatype_;
int semantic_type_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
@@ -655,6 +675,7 @@ class Value final :
kDurationMillisecondValue = 28,
kDurationMicrosecondValue = 29,
kDurationNanosecondValue = 30,
kDecimal128Value = 31,
VALUE_DATA_NOT_SET = 0,
};
@@ -766,6 +787,7 @@ class Value final :
kDurationMillisecondValueFieldNumber = 28,
kDurationMicrosecondValueFieldNumber = 29,
kDurationNanosecondValueFieldNumber = 30,
kDecimal128ValueFieldNumber = 31,
};
// int32 i8_value = 1;
bool has_i8_value() const;
@@ -1172,6 +1194,24 @@ class Value final :
void _internal_set_duration_nanosecond_value(int64_t value);
public:
// .greptime.v1.Decimal128 decimal128_value = 31;
bool has_decimal128_value() const;
private:
bool _internal_has_decimal128_value() const;
public:
void clear_decimal128_value();
const ::greptime::v1::Decimal128& decimal128_value() const;
PROTOBUF_NODISCARD ::greptime::v1::Decimal128* release_decimal128_value();
::greptime::v1::Decimal128* mutable_decimal128_value();
void set_allocated_decimal128_value(::greptime::v1::Decimal128* decimal128_value);
private:
const ::greptime::v1::Decimal128& _internal_decimal128_value() const;
::greptime::v1::Decimal128* _internal_mutable_decimal128_value();
public:
void unsafe_arena_set_allocated_decimal128_value(
::greptime::v1::Decimal128* decimal128_value);
::greptime::v1::Decimal128* unsafe_arena_release_decimal128_value();
void clear_value_data();
ValueDataCase value_data_case() const;
// @@protoc_insertion_point(class_scope:greptime.v1.Value)
@@ -1207,6 +1247,7 @@ class Value final :
void set_has_duration_millisecond_value();
void set_has_duration_microsecond_value();
void set_has_duration_nanosecond_value();
void set_has_decimal128_value();
inline bool has_value_data() const;
inline void clear_has_value_data();
@@ -1248,6 +1289,7 @@ class Value final :
int64_t duration_millisecond_value_;
int64_t duration_microsecond_value_;
int64_t duration_nanosecond_value_;
::greptime::v1::Decimal128* decimal128_value_;
} value_data_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
uint32_t _oneof_case_[1];
@@ -1441,6 +1483,91 @@ inline void ColumnSchema::set_semantic_type(::greptime::v1::SemanticType value)
// @@protoc_insertion_point(field_set:greptime.v1.ColumnSchema.semantic_type)
}
// .greptime.v1.ColumnDataTypeExtension datatype_extension = 4;
inline bool ColumnSchema::_internal_has_datatype_extension() const {
return this != internal_default_instance() && _impl_.datatype_extension_ != nullptr;
}
inline bool ColumnSchema::has_datatype_extension() const {
return _internal_has_datatype_extension();
}
inline const ::greptime::v1::ColumnDataTypeExtension& ColumnSchema::_internal_datatype_extension() const {
const ::greptime::v1::ColumnDataTypeExtension* p = _impl_.datatype_extension_;
return p != nullptr ? *p : reinterpret_cast<const ::greptime::v1::ColumnDataTypeExtension&>(
::greptime::v1::_ColumnDataTypeExtension_default_instance_);
}
inline const ::greptime::v1::ColumnDataTypeExtension& ColumnSchema::datatype_extension() const {
// @@protoc_insertion_point(field_get:greptime.v1.ColumnSchema.datatype_extension)
return _internal_datatype_extension();
}
inline void ColumnSchema::unsafe_arena_set_allocated_datatype_extension(
::greptime::v1::ColumnDataTypeExtension* datatype_extension) {
if (GetArenaForAllocation() == nullptr) {
delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.datatype_extension_);
}
_impl_.datatype_extension_ = datatype_extension;
if (datatype_extension) {
} else {
}
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:greptime.v1.ColumnSchema.datatype_extension)
}
inline ::greptime::v1::ColumnDataTypeExtension* ColumnSchema::release_datatype_extension() {
::greptime::v1::ColumnDataTypeExtension* temp = _impl_.datatype_extension_;
_impl_.datatype_extension_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
if (GetArenaForAllocation() == nullptr) { delete old; }
#else // PROTOBUF_FORCE_COPY_IN_RELEASE
if (GetArenaForAllocation() != nullptr) {
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
}
#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
return temp;
}
inline ::greptime::v1::ColumnDataTypeExtension* ColumnSchema::unsafe_arena_release_datatype_extension() {
// @@protoc_insertion_point(field_release:greptime.v1.ColumnSchema.datatype_extension)
::greptime::v1::ColumnDataTypeExtension* temp = _impl_.datatype_extension_;
_impl_.datatype_extension_ = nullptr;
return temp;
}
inline ::greptime::v1::ColumnDataTypeExtension* ColumnSchema::_internal_mutable_datatype_extension() {
if (_impl_.datatype_extension_ == nullptr) {
auto* p = CreateMaybeMessage<::greptime::v1::ColumnDataTypeExtension>(GetArenaForAllocation());
_impl_.datatype_extension_ = p;
}
return _impl_.datatype_extension_;
}
inline ::greptime::v1::ColumnDataTypeExtension* ColumnSchema::mutable_datatype_extension() {
::greptime::v1::ColumnDataTypeExtension* _msg = _internal_mutable_datatype_extension();
// @@protoc_insertion_point(field_mutable:greptime.v1.ColumnSchema.datatype_extension)
return _msg;
}
inline void ColumnSchema::set_allocated_datatype_extension(::greptime::v1::ColumnDataTypeExtension* datatype_extension) {
::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
if (message_arena == nullptr) {
delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.datatype_extension_);
}
if (datatype_extension) {
::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(datatype_extension));
if (message_arena != submessage_arena) {
datatype_extension = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
message_arena, datatype_extension, submessage_arena);
}
} else {
}
_impl_.datatype_extension_ = datatype_extension;
// @@protoc_insertion_point(field_set_allocated:greptime.v1.ColumnSchema.datatype_extension)
}
// -------------------------------------------------------------------
// Row
@@ -2735,6 +2862,72 @@ inline void Value::set_duration_nanosecond_value(int64_t value) {
// @@protoc_insertion_point(field_set:greptime.v1.Value.duration_nanosecond_value)
}
// .greptime.v1.Decimal128 decimal128_value = 31;
inline bool Value::_internal_has_decimal128_value() const {
return value_data_case() == kDecimal128Value;
}
inline bool Value::has_decimal128_value() const {
return _internal_has_decimal128_value();
}
inline void Value::set_has_decimal128_value() {
_impl_._oneof_case_[0] = kDecimal128Value;
}
inline ::greptime::v1::Decimal128* Value::release_decimal128_value() {
// @@protoc_insertion_point(field_release:greptime.v1.Value.decimal128_value)
if (_internal_has_decimal128_value()) {
clear_has_value_data();
::greptime::v1::Decimal128* temp = _impl_.value_data_.decimal128_value_;
if (GetArenaForAllocation() != nullptr) {
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
}
_impl_.value_data_.decimal128_value_ = nullptr;
return temp;
} else {
return nullptr;
}
}
inline const ::greptime::v1::Decimal128& Value::_internal_decimal128_value() const {
return _internal_has_decimal128_value()
? *_impl_.value_data_.decimal128_value_
: reinterpret_cast< ::greptime::v1::Decimal128&>(::greptime::v1::_Decimal128_default_instance_);
}
inline const ::greptime::v1::Decimal128& Value::decimal128_value() const {
// @@protoc_insertion_point(field_get:greptime.v1.Value.decimal128_value)
return _internal_decimal128_value();
}
inline ::greptime::v1::Decimal128* Value::unsafe_arena_release_decimal128_value() {
// @@protoc_insertion_point(field_unsafe_arena_release:greptime.v1.Value.decimal128_value)
if (_internal_has_decimal128_value()) {
clear_has_value_data();
::greptime::v1::Decimal128* temp = _impl_.value_data_.decimal128_value_;
_impl_.value_data_.decimal128_value_ = nullptr;
return temp;
} else {
return nullptr;
}
}
inline void Value::unsafe_arena_set_allocated_decimal128_value(::greptime::v1::Decimal128* decimal128_value) {
clear_value_data();
if (decimal128_value) {
set_has_decimal128_value();
_impl_.value_data_.decimal128_value_ = decimal128_value;
}
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:greptime.v1.Value.decimal128_value)
}
inline ::greptime::v1::Decimal128* Value::_internal_mutable_decimal128_value() {
if (!_internal_has_decimal128_value()) {
clear_value_data();
set_has_decimal128_value();
_impl_.value_data_.decimal128_value_ = CreateMaybeMessage< ::greptime::v1::Decimal128 >(GetArenaForAllocation());
}
return _impl_.value_data_.decimal128_value_;
}
inline ::greptime::v1::Decimal128* Value::mutable_decimal128_value() {
::greptime::v1::Decimal128* _msg = _internal_mutable_decimal128_value();
// @@protoc_insertion_point(field_mutable:greptime.v1.Value.decimal128_value)
return _msg;
}
inline bool Value::has_value_data() const {
return value_data_case() != VALUE_DATA_NOT_SET;
}