From 2aaee38de81047537dfa42af9df63bcfb866e06c Mon Sep 17 00:00:00 2001 From: Junfan Zhang Date: Fri, 24 Nov 2023 16:40:12 +0800 Subject: [PATCH] feat: add `IF EXISTS` for `DROP` (#123) * feat: add IF EXISTS for DROP For https://github.com/GreptimeTeam/greptimedb/issues/2794 * generate code Signed-off-by: Ruihang Xia --------- Signed-off-by: Ruihang Xia Co-authored-by: Ruihang Xia --- c++/greptime/v1/ddl.pb.cc | 124 +++++++---- c++/greptime/v1/ddl.pb.h | 31 +++ go/greptime/v1/ddl.pb.go | 200 +++++++++--------- java/src/main/java/io/greptime/v1/Ddl.java | 138 +++++++++--- .../main/java/io/greptime/v1/index/Index.java | 4 +- proto/greptime/v1/ddl.proto | 1 + 6 files changed, 323 insertions(+), 175 deletions(-) diff --git a/c++/greptime/v1/ddl.pb.cc b/c++/greptime/v1/ddl.pb.cc index 4e60b39..7e52ed5 100644 --- a/c++/greptime/v1/ddl.pb.cc +++ b/c++/greptime/v1/ddl.pb.cc @@ -93,6 +93,7 @@ PROTOBUF_CONSTEXPR DropTableExpr::DropTableExpr( , /*decltype(_impl_.schema_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.table_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.table_id_)*/nullptr + , /*decltype(_impl_.drop_if_exists_)*/false , /*decltype(_impl_._cached_size_)*/{}} {} struct DropTableExprDefaultTypeInternal { PROTOBUF_CONSTEXPR DropTableExprDefaultTypeInternal() @@ -326,6 +327,7 @@ const uint32_t TableStruct_greptime_2fv1_2fddl_2eproto::offsets[] PROTOBUF_SECTI PROTOBUF_FIELD_OFFSET(::greptime::v1::DropTableExpr, _impl_.schema_name_), PROTOBUF_FIELD_OFFSET(::greptime::v1::DropTableExpr, _impl_.table_name_), PROTOBUF_FIELD_OFFSET(::greptime::v1::DropTableExpr, _impl_.table_id_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::DropTableExpr, _impl_.drop_if_exists_), PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse, _has_bits_), PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse, _internal_metadata_), ~0u, // no _extensions_ @@ -426,17 +428,17 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 22, -1, -1, sizeof(::greptime::v1::CreateTableExpr)}, { 39, -1, -1, sizeof(::greptime::v1::AlterExpr)}, { 52, -1, -1, sizeof(::greptime::v1::DropTableExpr)}, - { 62, 70, -1, sizeof(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse)}, - { 72, -1, -1, sizeof(::greptime::v1::CreateDatabaseExpr)}, - { 81, -1, -1, sizeof(::greptime::v1::TruncateTableExpr)}, - { 91, -1, -1, sizeof(::greptime::v1::AddColumns)}, - { 98, -1, -1, sizeof(::greptime::v1::DropColumns)}, - { 105, -1, -1, sizeof(::greptime::v1::RenameTable)}, - { 112, -1, -1, sizeof(::greptime::v1::AddColumn)}, - { 120, -1, -1, sizeof(::greptime::v1::DropColumn)}, - { 127, -1, -1, sizeof(::greptime::v1::TableId)}, - { 134, -1, -1, sizeof(::greptime::v1::ColumnDef)}, - { 147, -1, -1, sizeof(::greptime::v1::AddColumnLocation)}, + { 63, 71, -1, sizeof(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse)}, + { 73, -1, -1, sizeof(::greptime::v1::CreateDatabaseExpr)}, + { 82, -1, -1, sizeof(::greptime::v1::TruncateTableExpr)}, + { 92, -1, -1, sizeof(::greptime::v1::AddColumns)}, + { 99, -1, -1, sizeof(::greptime::v1::DropColumns)}, + { 106, -1, -1, sizeof(::greptime::v1::RenameTable)}, + { 113, -1, -1, sizeof(::greptime::v1::AddColumn)}, + { 121, -1, -1, sizeof(::greptime::v1::DropColumn)}, + { 128, -1, -1, sizeof(::greptime::v1::TableId)}, + { 135, -1, -1, sizeof(::greptime::v1::ColumnDef)}, + { 148, -1, -1, sizeof(::greptime::v1::AddColumnLocation)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -483,45 +485,46 @@ const char descriptor_table_protodef_greptime_2fv1_2fddl_2eproto[] PROTOBUF_SECT "2\027.greptime.v1.AddColumnsH\000\0220\n\014drop_colu" "mns\030\005 \001(\0132\030.greptime.v1.DropColumnsH\000\0220\n" "\014rename_table\030\006 \001(\0132\030.greptime.v1.Rename" - "TableH\000B\006\n\004kind\"v\n\rDropTableExpr\022\024\n\014cata" - "log_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\nt" - "able_name\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.grep" - "time.v1.TableId\"\270\001\n\022CreateDatabaseExpr\022\025" - "\n\rdatabase_name\030\001 \001(\t\022\034\n\024create_if_not_e" - "xists\030\002 \001(\010\022=\n\007options\030\003 \003(\0132,.greptime." - "v1.CreateDatabaseExpr.OptionsEntry\032.\n\014Op" - "tionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\002" - "8\001\"z\n\021TruncateTableExpr\022\024\n\014catalog_name\030" - "\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_name" - "\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.greptime.v1.T" - "ableId\"9\n\nAddColumns\022+\n\013add_columns\030\001 \003(" - "\0132\026.greptime.v1.AddColumn\"<\n\013DropColumns" - "\022-\n\014drop_columns\030\001 \003(\0132\027.greptime.v1.Dro" - "pColumn\"%\n\013RenameTable\022\026\n\016new_table_name" - "\030\001 \001(\t\"i\n\tAddColumn\022*\n\ncolumn_def\030\001 \001(\0132" - "\026.greptime.v1.ColumnDef\0220\n\010location\030\003 \001(" - "\0132\036.greptime.v1.AddColumnLocation\"\032\n\nDro" - "pColumn\022\014\n\004name\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001" - " \001(\r\"\377\001\n\tColumnDef\022\014\n\004name\030\001 \001(\t\022.\n\tdata" - "_type\030\002 \001(\0162\033.greptime.v1.ColumnDataType" - "\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_constra" - "int\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162\031.grept" - "ime.v1.SemanticType\022\017\n\007comment\030\006 \001(\t\022@\n\022" - "datatype_extension\030\007 \001(\0132$.greptime.v1.C" - "olumnDataTypeExtension\"\230\001\n\021AddColumnLoca" - "tion\022B\n\rlocation_type\030\001 \001(\0162+.greptime.v" - "1.AddColumnLocation.LocationType\022\031\n\021afte" - "r_column_name\030\002 \001(\t\"$\n\014LocationType\022\t\n\005F" - "IRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime.v1B\003Ddl" - "Z5github.com/GreptimeTeam/greptime-proto" - "/go/greptime/v1b\006proto3" + "TableH\000B\006\n\004kind\"\216\001\n\rDropTableExpr\022\024\n\014cat" + "alog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\n" + "table_name\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.gre" + "ptime.v1.TableId\022\026\n\016drop_if_exists\030\005 \001(\010" + "\"\270\001\n\022CreateDatabaseExpr\022\025\n\rdatabase_name" + "\030\001 \001(\t\022\034\n\024create_if_not_exists\030\002 \001(\010\022=\n\007" + "options\030\003 \003(\0132,.greptime.v1.CreateDataba" + "seExpr.OptionsEntry\032.\n\014OptionsEntry\022\013\n\003k" + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"z\n\021TruncateT" + "ableExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema" + "_name\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022&\n\010table" + "_id\030\004 \001(\0132\024.greptime.v1.TableId\"9\n\nAddCo" + "lumns\022+\n\013add_columns\030\001 \003(\0132\026.greptime.v1" + ".AddColumn\"<\n\013DropColumns\022-\n\014drop_column" + "s\030\001 \003(\0132\027.greptime.v1.DropColumn\"%\n\013Rena" + "meTable\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddCo" + "lumn\022*\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.C" + "olumnDef\0220\n\010location\030\003 \001(\0132\036.greptime.v1" + ".AddColumnLocation\"\032\n\nDropColumn\022\014\n\004name" + "\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\377\001\n\tColumn" + "Def\022\014\n\004name\030\001 \001(\t\022.\n\tdata_type\030\002 \001(\0162\033.g" + "reptime.v1.ColumnDataType\022\023\n\013is_nullable" + "\030\003 \001(\010\022\032\n\022default_constraint\030\004 \001(\014\0220\n\rse" + "mantic_type\030\005 \001(\0162\031.greptime.v1.Semantic" + "Type\022\017\n\007comment\030\006 \001(\t\022@\n\022datatype_extens" + "ion\030\007 \001(\0132$.greptime.v1.ColumnDataTypeEx" + "tension\"\230\001\n\021AddColumnLocation\022B\n\rlocatio" + "n_type\030\001 \001(\0162+.greptime.v1.AddColumnLoca" + "tion.LocationType\022\031\n\021after_column_name\030\002" + " \001(\t\"$\n\014LocationType\022\t\n\005FIRST\020\000\022\t\n\005AFTER" + "\020\001BL\n\016io.greptime.v1B\003DdlZ5github.com/Gr" + "eptimeTeam/greptime-proto/go/greptime/v1" + "b\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_greptime_2fv1_2fddl_2eproto_deps[1] = { &::descriptor_table_greptime_2fv1_2fcommon_2eproto, }; static ::_pbi::once_flag descriptor_table_greptime_2fv1_2fddl_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_greptime_2fv1_2fddl_2eproto = { - false, false, 2223, descriptor_table_protodef_greptime_2fv1_2fddl_2eproto, + false, false, 2248, descriptor_table_protodef_greptime_2fv1_2fddl_2eproto, "greptime/v1/ddl.proto", &descriptor_table_greptime_2fv1_2fddl_2eproto_once, descriptor_table_greptime_2fv1_2fddl_2eproto_deps, 1, 16, schemas, file_default_instances, TableStruct_greptime_2fv1_2fddl_2eproto::offsets, @@ -2258,6 +2261,7 @@ DropTableExpr::DropTableExpr(const DropTableExpr& from) , decltype(_impl_.schema_name_){} , decltype(_impl_.table_name_){} , decltype(_impl_.table_id_){nullptr} + , decltype(_impl_.drop_if_exists_){} , /*decltype(_impl_._cached_size_)*/{}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); @@ -2288,6 +2292,7 @@ DropTableExpr::DropTableExpr(const DropTableExpr& from) if (from._internal_has_table_id()) { _this->_impl_.table_id_ = new ::greptime::v1::TableId(*from._impl_.table_id_); } + _this->_impl_.drop_if_exists_ = from._impl_.drop_if_exists_; // @@protoc_insertion_point(copy_constructor:greptime.v1.DropTableExpr) } @@ -2300,6 +2305,7 @@ inline void DropTableExpr::SharedCtor( , decltype(_impl_.schema_name_){} , decltype(_impl_.table_name_){} , decltype(_impl_.table_id_){nullptr} + , decltype(_impl_.drop_if_exists_){false} , /*decltype(_impl_._cached_size_)*/{} }; _impl_.catalog_name_.InitDefault(); @@ -2350,6 +2356,7 @@ void DropTableExpr::Clear() { delete _impl_.table_id_; } _impl_.table_id_ = nullptr; + _impl_.drop_if_exists_ = false; _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } @@ -2397,6 +2404,14 @@ const char* DropTableExpr::_InternalParse(const char* ptr, ::_pbi::ParseContext* } else goto handle_unusual; continue; + // bool drop_if_exists = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { + _impl_.drop_if_exists_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -2463,6 +2478,12 @@ uint8_t* DropTableExpr::_InternalSerialize( _Internal::table_id(this).GetCachedSize(), target, stream); } + // bool drop_if_exists = 5; + if (this->_internal_drop_if_exists() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(5, this->_internal_drop_if_exists(), target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -2507,6 +2528,11 @@ size_t DropTableExpr::ByteSizeLong() const { *_impl_.table_id_); } + // bool drop_if_exists = 5; + if (this->_internal_drop_if_exists() != 0) { + total_size += 1 + 1; + } + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -2538,6 +2564,9 @@ void DropTableExpr::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const :: _this->_internal_mutable_table_id()->::greptime::v1::TableId::MergeFrom( from._internal_table_id()); } + if (from._internal_drop_if_exists() != 0) { + _this->_internal_set_drop_if_exists(from._internal_drop_if_exists()); + } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } @@ -2569,7 +2598,12 @@ void DropTableExpr::InternalSwap(DropTableExpr* other) { &_impl_.table_name_, lhs_arena, &other->_impl_.table_name_, rhs_arena ); - swap(_impl_.table_id_, other->_impl_.table_id_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(DropTableExpr, _impl_.drop_if_exists_) + + sizeof(DropTableExpr::_impl_.drop_if_exists_) + - PROTOBUF_FIELD_OFFSET(DropTableExpr, _impl_.table_id_)>( + reinterpret_cast(&_impl_.table_id_), + reinterpret_cast(&other->_impl_.table_id_)); } ::PROTOBUF_NAMESPACE_ID::Metadata DropTableExpr::GetMetadata() const { diff --git a/c++/greptime/v1/ddl.pb.h b/c++/greptime/v1/ddl.pb.h index 8a44b63..e9b6c3d 100644 --- a/c++/greptime/v1/ddl.pb.h +++ b/c++/greptime/v1/ddl.pb.h @@ -1166,6 +1166,7 @@ class DropTableExpr final : kSchemaNameFieldNumber = 2, kTableNameFieldNumber = 3, kTableIdFieldNumber = 4, + kDropIfExistsFieldNumber = 5, }; // string catalog_name = 1; void clear_catalog_name(); @@ -1227,6 +1228,15 @@ class DropTableExpr final : ::greptime::v1::TableId* table_id); ::greptime::v1::TableId* unsafe_arena_release_table_id(); + // bool drop_if_exists = 5; + void clear_drop_if_exists(); + bool drop_if_exists() const; + void set_drop_if_exists(bool value); + private: + bool _internal_drop_if_exists() const; + void _internal_set_drop_if_exists(bool value); + public: + // @@protoc_insertion_point(class_scope:greptime.v1.DropTableExpr) private: class _Internal; @@ -1239,6 +1249,7 @@ class DropTableExpr final : ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr schema_name_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr table_name_; ::greptime::v1::TableId* table_id_; + bool drop_if_exists_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; union { Impl_ _impl_; }; @@ -4623,6 +4634,26 @@ inline void DropTableExpr::set_allocated_table_id(::greptime::v1::TableId* table // @@protoc_insertion_point(field_set_allocated:greptime.v1.DropTableExpr.table_id) } +// bool drop_if_exists = 5; +inline void DropTableExpr::clear_drop_if_exists() { + _impl_.drop_if_exists_ = false; +} +inline bool DropTableExpr::_internal_drop_if_exists() const { + return _impl_.drop_if_exists_; +} +inline bool DropTableExpr::drop_if_exists() const { + // @@protoc_insertion_point(field_get:greptime.v1.DropTableExpr.drop_if_exists) + return _internal_drop_if_exists(); +} +inline void DropTableExpr::_internal_set_drop_if_exists(bool value) { + + _impl_.drop_if_exists_ = value; +} +inline void DropTableExpr::set_drop_if_exists(bool value) { + _internal_set_drop_if_exists(value); + // @@protoc_insertion_point(field_set:greptime.v1.DropTableExpr.drop_if_exists) +} + // ------------------------------------------------------------------- // ------------------------------------------------------------------- diff --git a/go/greptime/v1/ddl.pb.go b/go/greptime/v1/ddl.pb.go index 0fcb490..9e04e9b 100644 --- a/go/greptime/v1/ddl.pb.go +++ b/go/greptime/v1/ddl.pb.go @@ -458,10 +458,11 @@ type DropTableExpr struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CatalogName string `protobuf:"bytes,1,opt,name=catalog_name,json=catalogName,proto3" json:"catalog_name,omitempty"` - SchemaName string `protobuf:"bytes,2,opt,name=schema_name,json=schemaName,proto3" json:"schema_name,omitempty"` - TableName string `protobuf:"bytes,3,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` - TableId *TableId `protobuf:"bytes,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + CatalogName string `protobuf:"bytes,1,opt,name=catalog_name,json=catalogName,proto3" json:"catalog_name,omitempty"` + SchemaName string `protobuf:"bytes,2,opt,name=schema_name,json=schemaName,proto3" json:"schema_name,omitempty"` + TableName string `protobuf:"bytes,3,opt,name=table_name,json=tableName,proto3" json:"table_name,omitempty"` + TableId *TableId `protobuf:"bytes,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + DropIfExists bool `protobuf:"varint,5,opt,name=drop_if_exists,json=dropIfExists,proto3" json:"drop_if_exists,omitempty"` } func (x *DropTableExpr) Reset() { @@ -524,6 +525,13 @@ func (x *DropTableExpr) GetTableId() *TableId { return nil } +func (x *DropTableExpr) GetDropIfExists() bool { + if x != nil { + return x.DropIfExists + } + return false +} + type CreateDatabaseExpr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1180,7 +1188,7 @@ var file_greptime_v1_ddl_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x62, 0x6c, + 0x69, 0x6e, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, @@ -1190,96 +1198,98 @@ var file_greptime_v1_ddl_proto_rawDesc = []byte{ 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, - 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x12, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, - 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, - 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, - 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x01, 0x0a, 0x11, 0x54, - 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, - 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x07, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, - 0x0a, 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x49, 0x0a, 0x0b, 0x44, - 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x64, 0x72, - 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x33, 0x0a, 0x0b, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, - 0x65, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x09, 0x41, - 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, - 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x44, 0x65, 0x66, 0x52, 0x09, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x12, - 0x3a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x0a, 0x44, - 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x19, 0x0a, - 0x07, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0xd8, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x72, - 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, - 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, - 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x65, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x49, 0x52, 0x53, 0x54, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x46, 0x54, 0x45, 0x52, 0x10, 0x01, 0x42, 0x4c, 0x0a, - 0x0e, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, - 0x03, 0x44, 0x64, 0x6c, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, - 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, - 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x69, 0x66, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x49, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, + 0xee, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xa7, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, + 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, + 0x64, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x0a, 0x41, 0x64, + 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x22, 0x49, 0x0a, 0x0b, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x3a, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x52, + 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x33, 0x0a, 0x0b, + 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6e, + 0x65, 0x77, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x7e, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x35, + 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x52, 0x09, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x12, 0x3a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x20, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x19, 0x0a, 0x07, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0xd8, + 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x65, + 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x73, 0x65, + 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x12, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x11, 0x41, 0x64, + 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x50, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, + 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, + 0x05, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x46, 0x54, 0x45, + 0x52, 0x10, 0x01, 0x42, 0x4c, 0x0a, 0x0e, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x03, 0x44, 0x64, 0x6c, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/java/src/main/java/io/greptime/v1/Ddl.java b/java/src/main/java/io/greptime/v1/Ddl.java index e5bcc80..c5b7b2f 100644 --- a/java/src/main/java/io/greptime/v1/Ddl.java +++ b/java/src/main/java/io/greptime/v1/Ddl.java @@ -5862,6 +5862,12 @@ java.lang.String defaultValue); * .greptime.v1.TableId table_id = 4; */ io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder(); + + /** + * bool drop_if_exists = 5; + * @return The dropIfExists. + */ + boolean getDropIfExists(); } /** * Protobuf type {@code greptime.v1.DropTableExpr} @@ -5942,6 +5948,11 @@ java.lang.String defaultValue); break; } + case 40: { + + dropIfExists_ = input.readBool(); + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -6116,6 +6127,17 @@ java.lang.String defaultValue); return getTableId(); } + public static final int DROP_IF_EXISTS_FIELD_NUMBER = 5; + private boolean dropIfExists_; + /** + * bool drop_if_exists = 5; + * @return The dropIfExists. + */ + @java.lang.Override + public boolean getDropIfExists() { + return dropIfExists_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -6142,6 +6164,9 @@ java.lang.String defaultValue); if (tableId_ != null) { output.writeMessage(4, getTableId()); } + if (dropIfExists_ != false) { + output.writeBool(5, dropIfExists_); + } unknownFields.writeTo(output); } @@ -6164,6 +6189,10 @@ java.lang.String defaultValue); size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getTableId()); } + if (dropIfExists_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, dropIfExists_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -6190,6 +6219,8 @@ java.lang.String defaultValue); if (!getTableId() .equals(other.getTableId())) return false; } + if (getDropIfExists() + != other.getDropIfExists()) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -6211,6 +6242,9 @@ java.lang.String defaultValue); hash = (37 * hash) + TABLE_ID_FIELD_NUMBER; hash = (53 * hash) + getTableId().hashCode(); } + hash = (37 * hash) + DROP_IF_EXISTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDropIfExists()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -6356,6 +6390,8 @@ java.lang.String defaultValue); tableId_ = null; tableIdBuilder_ = null; } + dropIfExists_ = false; + return this; } @@ -6390,6 +6426,7 @@ java.lang.String defaultValue); } else { result.tableId_ = tableIdBuilder_.build(); } + result.dropIfExists_ = dropIfExists_; onBuilt(); return result; } @@ -6453,6 +6490,9 @@ java.lang.String defaultValue); if (other.hasTableId()) { mergeTableId(other.getTableId()); } + if (other.getDropIfExists() != false) { + setDropIfExists(other.getDropIfExists()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6828,6 +6868,37 @@ java.lang.String defaultValue); } return tableIdBuilder_; } + + private boolean dropIfExists_ ; + /** + * bool drop_if_exists = 5; + * @return The dropIfExists. + */ + @java.lang.Override + public boolean getDropIfExists() { + return dropIfExists_; + } + /** + * bool drop_if_exists = 5; + * @param value The dropIfExists to set. + * @return This builder for chaining. + */ + public Builder setDropIfExists(boolean value) { + + dropIfExists_ = value; + onChanged(); + return this; + } + /** + * bool drop_if_exists = 5; + * @return This builder for chaining. + */ + public Builder clearDropIfExists() { + + dropIfExists_ = false; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -15206,38 +15277,39 @@ java.lang.String defaultValue); "2\027.greptime.v1.AddColumnsH\000\0220\n\014drop_colu" + "mns\030\005 \001(\0132\030.greptime.v1.DropColumnsH\000\0220\n" + "\014rename_table\030\006 \001(\0132\030.greptime.v1.Rename" + - "TableH\000B\006\n\004kind\"v\n\rDropTableExpr\022\024\n\014cata" + - "log_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\nt" + - "able_name\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.grep" + - "time.v1.TableId\"\270\001\n\022CreateDatabaseExpr\022\025" + - "\n\rdatabase_name\030\001 \001(\t\022\034\n\024create_if_not_e" + - "xists\030\002 \001(\010\022=\n\007options\030\003 \003(\0132,.greptime." + - "v1.CreateDatabaseExpr.OptionsEntry\032.\n\014Op" + - "tionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\002" + - "8\001\"z\n\021TruncateTableExpr\022\024\n\014catalog_name\030" + - "\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_name" + - "\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.greptime.v1.T" + - "ableId\"9\n\nAddColumns\022+\n\013add_columns\030\001 \003(" + - "\0132\026.greptime.v1.AddColumn\"<\n\013DropColumns" + - "\022-\n\014drop_columns\030\001 \003(\0132\027.greptime.v1.Dro" + - "pColumn\"%\n\013RenameTable\022\026\n\016new_table_name" + - "\030\001 \001(\t\"i\n\tAddColumn\022*\n\ncolumn_def\030\001 \001(\0132" + - "\026.greptime.v1.ColumnDef\0220\n\010location\030\003 \001(" + - "\0132\036.greptime.v1.AddColumnLocation\"\032\n\nDro" + - "pColumn\022\014\n\004name\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001" + - " \001(\r\"\377\001\n\tColumnDef\022\014\n\004name\030\001 \001(\t\022.\n\tdata" + - "_type\030\002 \001(\0162\033.greptime.v1.ColumnDataType" + - "\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_constra" + - "int\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162\031.grept" + - "ime.v1.SemanticType\022\017\n\007comment\030\006 \001(\t\022@\n\022" + - "datatype_extension\030\007 \001(\0132$.greptime.v1.C" + - "olumnDataTypeExtension\"\230\001\n\021AddColumnLoca" + - "tion\022B\n\rlocation_type\030\001 \001(\0162+.greptime.v" + - "1.AddColumnLocation.LocationType\022\031\n\021afte" + - "r_column_name\030\002 \001(\t\"$\n\014LocationType\022\t\n\005F" + - "IRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime.v1B\003Ddl" + - "Z5github.com/GreptimeTeam/greptime-proto" + - "/go/greptime/v1b\006proto3" + "TableH\000B\006\n\004kind\"\216\001\n\rDropTableExpr\022\024\n\014cat" + + "alog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\n" + + "table_name\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.gre" + + "ptime.v1.TableId\022\026\n\016drop_if_exists\030\005 \001(\010" + + "\"\270\001\n\022CreateDatabaseExpr\022\025\n\rdatabase_name" + + "\030\001 \001(\t\022\034\n\024create_if_not_exists\030\002 \001(\010\022=\n\007" + + "options\030\003 \003(\0132,.greptime.v1.CreateDataba" + + "seExpr.OptionsEntry\032.\n\014OptionsEntry\022\013\n\003k" + + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"z\n\021TruncateT" + + "ableExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema" + + "_name\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022&\n\010table" + + "_id\030\004 \001(\0132\024.greptime.v1.TableId\"9\n\nAddCo" + + "lumns\022+\n\013add_columns\030\001 \003(\0132\026.greptime.v1" + + ".AddColumn\"<\n\013DropColumns\022-\n\014drop_column" + + "s\030\001 \003(\0132\027.greptime.v1.DropColumn\"%\n\013Rena" + + "meTable\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddCo" + + "lumn\022*\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.C" + + "olumnDef\0220\n\010location\030\003 \001(\0132\036.greptime.v1" + + ".AddColumnLocation\"\032\n\nDropColumn\022\014\n\004name" + + "\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\377\001\n\tColumn" + + "Def\022\014\n\004name\030\001 \001(\t\022.\n\tdata_type\030\002 \001(\0162\033.g" + + "reptime.v1.ColumnDataType\022\023\n\013is_nullable" + + "\030\003 \001(\010\022\032\n\022default_constraint\030\004 \001(\014\0220\n\rse" + + "mantic_type\030\005 \001(\0162\031.greptime.v1.Semantic" + + "Type\022\017\n\007comment\030\006 \001(\t\022@\n\022datatype_extens" + + "ion\030\007 \001(\0132$.greptime.v1.ColumnDataTypeEx" + + "tension\"\230\001\n\021AddColumnLocation\022B\n\rlocatio" + + "n_type\030\001 \001(\0162+.greptime.v1.AddColumnLoca" + + "tion.LocationType\022\031\n\021after_column_name\030\002" + + " \001(\t\"$\n\014LocationType\022\t\n\005FIRST\020\000\022\t\n\005AFTER" + + "\020\001BL\n\016io.greptime.v1B\003DdlZ5github.com/Gr" + + "eptimeTeam/greptime-proto/go/greptime/v1" + + "b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -15273,7 +15345,7 @@ java.lang.String defaultValue); internal_static_greptime_v1_DropTableExpr_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_greptime_v1_DropTableExpr_descriptor, - new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "TableId", }); + new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "TableId", "DropIfExists", }); internal_static_greptime_v1_CreateDatabaseExpr_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_greptime_v1_CreateDatabaseExpr_fieldAccessorTable = new diff --git a/java/src/main/java/io/greptime/v1/index/Index.java b/java/src/main/java/io/greptime/v1/index/Index.java index 889caf9..33a0b2c 100644 --- a/java/src/main/java/io/greptime/v1/index/Index.java +++ b/java/src/main/java/io/greptime/v1/index/Index.java @@ -82,7 +82,7 @@ io.greptime.v1.index.Index.InvertedIndexMeta defaultValue); /** *
    * InvertedIndexMetas defines the metadata for an inverted index
-   * within a inverted index blob.
+   * within an inverted index blob.
    * 
* * Protobuf type {@code greptime.v1.index.InvertedIndexMetas} @@ -459,7 +459,7 @@ io.greptime.v1.index.Index.InvertedIndexMeta defaultValue); /** *
      * InvertedIndexMetas defines the metadata for an inverted index
-     * within a inverted index blob.
+     * within an inverted index blob.
      * 
* * Protobuf type {@code greptime.v1.index.InvertedIndexMetas} diff --git a/proto/greptime/v1/ddl.proto b/proto/greptime/v1/ddl.proto index 1c47abc..eb6ca3d 100644 --- a/proto/greptime/v1/ddl.proto +++ b/proto/greptime/v1/ddl.proto @@ -66,6 +66,7 @@ message DropTableExpr { string schema_name = 2; string table_name = 3; TableId table_id = 4; + bool drop_if_exists = 5; } message CreateDatabaseExpr {