diff --git a/build.rs b/build.rs index 0eacba3..8bd42e9 100644 --- a/build.rs +++ b/build.rs @@ -49,6 +49,7 @@ fn main() { "proto/greptime/v1/index/inverted_index.proto", "proto/prometheus/remote/remote.proto", "proto/substrait_extension/promql_plan.proto", + "proto/substrait_extension/dist_plan.proto", ], &["proto"], ) diff --git a/c++/greptime/v1/ddl.pb.cc b/c++/greptime/v1/ddl.pb.cc index c30c3ae..537cd58 100644 --- a/c++/greptime/v1/ddl.pb.cc +++ b/c++/greptime/v1/ddl.pb.cc @@ -87,7 +87,8 @@ struct DropFlowExprDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DropFlowExprDefaultTypeInternal _DropFlowExpr_default_instance_; PROTOBUF_CONSTEXPR CreateViewExpr::CreateViewExpr( ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.catalog_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + /*decltype(_impl_.table_names_)*/{} + , /*decltype(_impl_.catalog_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.schema_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.view_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.logical_plan_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} @@ -470,6 +471,7 @@ const uint32_t TableStruct_greptime_2fv1_2fddl_2eproto::offsets[] PROTOBUF_SECTI PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateViewExpr, _impl_.logical_plan_), PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateViewExpr, _impl_.create_if_not_exists_), PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateViewExpr, _impl_.or_replace_), + PROTOBUF_FIELD_OFFSET(::greptime::v1::CreateViewExpr, _impl_.table_names_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::greptime::v1::DropViewExpr, _internal_metadata_), ~0u, // no _extensions_ @@ -666,26 +668,26 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 26, -1, -1, sizeof(::greptime::v1::CreateFlowExpr)}, { 42, -1, -1, sizeof(::greptime::v1::DropFlowExpr)}, { 52, -1, -1, sizeof(::greptime::v1::CreateViewExpr)}, - { 64, -1, -1, sizeof(::greptime::v1::DropViewExpr)}, - { 75, 83, -1, sizeof(::greptime::v1::CreateTableExpr_TableOptionsEntry_DoNotUse)}, - { 85, -1, -1, sizeof(::greptime::v1::CreateTableExpr)}, - { 102, -1, -1, sizeof(::greptime::v1::AlterExpr)}, - { 116, -1, -1, sizeof(::greptime::v1::DropTableExpr)}, - { 127, 135, -1, sizeof(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse)}, - { 137, -1, -1, sizeof(::greptime::v1::CreateDatabaseExpr)}, - { 147, -1, -1, sizeof(::greptime::v1::TruncateTableExpr)}, - { 157, -1, -1, sizeof(::greptime::v1::DropDatabaseExpr)}, - { 166, -1, -1, sizeof(::greptime::v1::AddColumns)}, - { 173, -1, -1, sizeof(::greptime::v1::DropColumns)}, - { 180, -1, -1, sizeof(::greptime::v1::ChangeColumnTypes)}, - { 187, -1, -1, sizeof(::greptime::v1::RenameTable)}, - { 194, -1, -1, sizeof(::greptime::v1::AddColumn)}, - { 202, -1, -1, sizeof(::greptime::v1::ChangeColumnType)}, - { 211, -1, -1, sizeof(::greptime::v1::DropColumn)}, - { 218, -1, -1, sizeof(::greptime::v1::TableId)}, - { 225, -1, -1, sizeof(::greptime::v1::FlowId)}, - { 232, -1, -1, sizeof(::greptime::v1::ColumnDef)}, - { 245, -1, -1, sizeof(::greptime::v1::AddColumnLocation)}, + { 65, -1, -1, sizeof(::greptime::v1::DropViewExpr)}, + { 76, 84, -1, sizeof(::greptime::v1::CreateTableExpr_TableOptionsEntry_DoNotUse)}, + { 86, -1, -1, sizeof(::greptime::v1::CreateTableExpr)}, + { 103, -1, -1, sizeof(::greptime::v1::AlterExpr)}, + { 117, -1, -1, sizeof(::greptime::v1::DropTableExpr)}, + { 128, 136, -1, sizeof(::greptime::v1::CreateDatabaseExpr_OptionsEntry_DoNotUse)}, + { 138, -1, -1, sizeof(::greptime::v1::CreateDatabaseExpr)}, + { 148, -1, -1, sizeof(::greptime::v1::TruncateTableExpr)}, + { 158, -1, -1, sizeof(::greptime::v1::DropDatabaseExpr)}, + { 167, -1, -1, sizeof(::greptime::v1::AddColumns)}, + { 174, -1, -1, sizeof(::greptime::v1::DropColumns)}, + { 181, -1, -1, sizeof(::greptime::v1::ChangeColumnTypes)}, + { 188, -1, -1, sizeof(::greptime::v1::RenameTable)}, + { 195, -1, -1, sizeof(::greptime::v1::AddColumn)}, + { 203, -1, -1, sizeof(::greptime::v1::ChangeColumnType)}, + { 212, -1, -1, sizeof(::greptime::v1::DropColumn)}, + { 219, -1, -1, sizeof(::greptime::v1::TableId)}, + { 226, -1, -1, sizeof(::greptime::v1::FlowId)}, + { 233, -1, -1, sizeof(::greptime::v1::ColumnDef)}, + { 246, -1, -1, sizeof(::greptime::v1::AddColumnLocation)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -743,80 +745,81 @@ const char descriptor_table_protodef_greptime_2fv1_2fddl_2eproto[] PROTOBUF_SECT "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n" "\014DropFlowExpr\022\024\n\014catalog_name\030\001 \001(\t\022\021\n\tf" "low_name\030\002 \001(\t\022$\n\007flow_id\030\003 \001(\0132\023.grepti" - "me.v1.FlowId\022\026\n\016drop_if_exists\030\005 \001(\010\"\226\001\n" + "me.v1.FlowId\022\026\n\016drop_if_exists\030\005 \001(\010\"\303\001\n" "\016CreateViewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n" "\013schema_name\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022\024\n" "\014logical_plan\030\004 \001(\014\022\034\n\024create_if_not_exi" - "sts\030\005 \001(\010\022\022\n\nor_replace\030\006 \001(\010\"\213\001\n\014DropVi" - "ewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_n" - "ame\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022%\n\007view_id\030" + "sts\030\005 \001(\010\022\022\n\nor_replace\030\006 \001(\010\022+\n\013table_n" + "ames\030\007 \003(\0132\026.greptime.v1.TableName\"\213\001\n\014D" + "ropViewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013sch" + "ema_name\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022%\n\007vie" + "w_id\030\004 \001(\0132\024.greptime.v1.TableId\022\026\n\016drop" + "_if_exists\030\005 \001(\010\"\207\003\n\017CreateTableExpr\022\024\n\014" + "catalog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022" + "\022\n\ntable_name\030\003 \001(\t\022\014\n\004desc\030\004 \001(\t\022+\n\013col" + "umn_defs\030\005 \003(\0132\026.greptime.v1.ColumnDef\022\022" + "\n\ntime_index\030\006 \001(\t\022\024\n\014primary_keys\030\007 \003(\t" + "\022\034\n\024create_if_not_exists\030\010 \001(\010\022E\n\rtable_" + "options\030\t \003(\0132..greptime.v1.CreateTableE" + "xpr.TableOptionsEntry\022&\n\010table_id\030\n \001(\0132" + "\024.greptime.v1.TableId\022\016\n\006engine\030\014 \001(\t\0323\n" + "\021TableOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value" + "\030\002 \001(\t:\0028\001\"\245\002\n\tAlterExpr\022\024\n\014catalog_name" + "\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_nam" + "e\030\003 \001(\t\022.\n\013add_columns\030\004 \001(\0132\027.greptime." + "v1.AddColumnsH\000\0220\n\014drop_columns\030\005 \001(\0132\030." + "greptime.v1.DropColumnsH\000\0220\n\014rename_tabl" + "e\030\006 \001(\0132\030.greptime.v1.RenameTableH\000\022=\n\023c" + "hange_column_types\030\007 \001(\0132\036.greptime.v1.C" + "hangeColumnTypesH\000B\006\n\004kind\"\216\001\n\rDropTable" + "Expr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_nam" + "e\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\022\026\n\016drop_if_e" - "xists\030\005 \001(\010\"\207\003\n\017CreateTableExpr\022\024\n\014catal" - "og_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\nta" - "ble_name\030\003 \001(\t\022\014\n\004desc\030\004 \001(\t\022+\n\013column_d" - "efs\030\005 \003(\0132\026.greptime.v1.ColumnDef\022\022\n\ntim" - "e_index\030\006 \001(\t\022\024\n\014primary_keys\030\007 \003(\t\022\034\n\024c" - "reate_if_not_exists\030\010 \001(\010\022E\n\rtable_optio" - "ns\030\t \003(\0132..greptime.v1.CreateTableExpr.T" - "ableOptionsEntry\022&\n\010table_id\030\n \001(\0132\024.gre" - "ptime.v1.TableId\022\016\n\006engine\030\014 \001(\t\0323\n\021Tabl" - "eOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" - "\t:\0028\001\"\245\002\n\tAlterExpr\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\013add_columns\030\004 \001(\0132\027.greptime.v1.Ad" - "dColumnsH\000\0220\n\014drop_columns\030\005 \001(\0132\030.grept" - "ime.v1.DropColumnsH\000\0220\n\014rename_table\030\006 \001" - "(\0132\030.greptime.v1.RenameTableH\000\022=\n\023change" - "_column_types\030\007 \001(\0132\036.greptime.v1.Change" - "ColumnTypesH\000B\006\n\004kind\"\216\001\n\rDropTableExpr\022" + "xists\030\005 \001(\010\"\314\001\n\022CreateDatabaseExpr\022\024\n\014ca" + "talog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\034\n" + "\024create_if_not_exists\030\003 \001(\010\022=\n\007options\030\004" + " \003(\0132,.greptime.v1.CreateDatabaseExpr.Op" + "tionsEntry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022" + "\r\n\005value\030\002 \001(\t:\0028\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(\013" - "2\024.greptime.v1.TableId\022\026\n\016drop_if_exists" - "\030\005 \001(\010\"\314\001\n\022CreateDatabaseExpr\022\024\n\014catalog" - "_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\034\n\024crea" - "te_if_not_exists\030\003 \001(\010\022=\n\007options\030\004 \003(\0132" - ",.greptime.v1.CreateDatabaseExpr.Options" - "Entry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va" - "lue\030\002 \001(\t:\0028\001\"z\n\021TruncateTableExpr\022\024\n\014ca" - "talog_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.gr" - "eptime.v1.TableId\"U\n\020DropDatabaseExpr\022\024\n" - "\014catalog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t" - "\022\026\n\016drop_if_exists\030\003 \001(\010\"9\n\nAddColumns\022+" - "\n\013add_columns\030\001 \003(\0132\026.greptime.v1.AddCol" - "umn\"<\n\013DropColumns\022-\n\014drop_columns\030\001 \003(\013" - "2\027.greptime.v1.DropColumn\"O\n\021ChangeColum" - "nTypes\022:\n\023change_column_types\030\001 \003(\0132\035.gr" - "eptime.v1.ChangeColumnType\"%\n\013RenameTabl" - "e\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddColumn\022*" - "\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.ColumnD" - "ef\0220\n\010location\030\003 \001(\0132\036.greptime.v1.AddCo" - "lumnLocation\"\236\001\n\020ChangeColumnType\022\023\n\013col" - "umn_name\030\001 \001(\t\0220\n\013target_type\030\002 \001(\0162\033.gr" - "eptime.v1.ColumnDataType\022C\n\025target_type_" - "extension\030\003 \001(\0132$.greptime.v1.ColumnData" - "TypeExtension\"\032\n\nDropColumn\022\014\n\004name\030\001 \001(" - "\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\024\n\006FlowId\022\n\n\002id" - "\030\001 \001(\r\"\377\001\n\tColumnDef\022\014\n\004name\030\001 \001(\t\022.\n\tda" - "ta_type\030\002 \001(\0162\033.greptime.v1.ColumnDataTy" - "pe\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_const" - "raint\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162\031.gre" - "ptime.v1.SemanticType\022\017\n\007comment\030\006 \001(\t\022@" - "\n\022datatype_extension\030\007 \001(\0132$.greptime.v1" - ".ColumnDataTypeExtension\"\230\001\n\021AddColumnLo" - "cation\022B\n\rlocation_type\030\001 \001(\0162+.greptime" - ".v1.AddColumnLocation.LocationType\022\031\n\021af" - "ter_column_name\030\002 \001(\t\"$\n\014LocationType\022\t\n" - "\005FIRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime.v1B\003D" - "dlZ5github.com/GreptimeTeam/greptime-pro" - "to/go/greptime/v1b\006proto3" + "2\024.greptime.v1.TableId\"U\n\020DropDatabaseEx" + "pr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_name\030" + "\002 \001(\t\022\026\n\016drop_if_exists\030\003 \001(\010\"9\n\nAddColu" + "mns\022+\n\013add_columns\030\001 \003(\0132\026.greptime.v1.A" + "ddColumn\"<\n\013DropColumns\022-\n\014drop_columns\030" + "\001 \003(\0132\027.greptime.v1.DropColumn\"O\n\021Change" + "ColumnTypes\022:\n\023change_column_types\030\001 \003(\013" + "2\035.greptime.v1.ChangeColumnType\"%\n\013Renam" + "eTable\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddCol" + "umn\022*\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.Co" + "lumnDef\0220\n\010location\030\003 \001(\0132\036.greptime.v1." + "AddColumnLocation\"\236\001\n\020ChangeColumnType\022\023" + "\n\013column_name\030\001 \001(\t\0220\n\013target_type\030\002 \001(\016" + "2\033.greptime.v1.ColumnDataType\022C\n\025target_" + "type_extension\030\003 \001(\0132$.greptime.v1.Colum" + "nDataTypeExtension\"\032\n\nDropColumn\022\014\n\004name" + "\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\024\n\006FlowId\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.ColumnD" + "ataType\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_" + "constraint\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162" + "\031.greptime.v1.SemanticType\022\017\n\007comment\030\006 " + "\001(\t\022@\n\022datatype_extension\030\007 \001(\0132$.grepti" + "me.v1.ColumnDataTypeExtension\"\230\001\n\021AddCol" + "umnLocation\022B\n\rlocation_type\030\001 \001(\0162+.gre" + "ptime.v1.AddColumnLocation.LocationType\022" + "\031\n\021after_column_name\030\002 \001(\t\"$\n\014LocationTy" + "pe\022\t\n\005FIRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime." + "v1B\003DdlZ5github.com/GreptimeTeam/greptim" + "e-proto/go/greptime/v1b\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, 3705, descriptor_table_protodef_greptime_2fv1_2fddl_2eproto, + false, false, 3750, 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, 25, schemas, file_default_instances, TableStruct_greptime_2fv1_2fddl_2eproto::offsets, @@ -2522,6 +2525,9 @@ class CreateViewExpr::_Internal { public: }; +void CreateViewExpr::clear_table_names() { + _impl_.table_names_.Clear(); +} CreateViewExpr::CreateViewExpr(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned) : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { @@ -2532,7 +2538,8 @@ CreateViewExpr::CreateViewExpr(const CreateViewExpr& from) : ::PROTOBUF_NAMESPACE_ID::Message() { CreateViewExpr* const _this = this; (void)_this; new (&_impl_) Impl_{ - decltype(_impl_.catalog_name_){} + decltype(_impl_.table_names_){from._impl_.table_names_} + , decltype(_impl_.catalog_name_){} , decltype(_impl_.schema_name_){} , decltype(_impl_.view_name_){} , decltype(_impl_.logical_plan_){} @@ -2584,7 +2591,8 @@ inline void CreateViewExpr::SharedCtor( (void)arena; (void)is_message_owned; new (&_impl_) Impl_{ - decltype(_impl_.catalog_name_){} + decltype(_impl_.table_names_){arena} + , decltype(_impl_.catalog_name_){} , decltype(_impl_.schema_name_){} , decltype(_impl_.view_name_){} , decltype(_impl_.logical_plan_){} @@ -2621,6 +2629,7 @@ CreateViewExpr::~CreateViewExpr() { inline void CreateViewExpr::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.table_names_.~RepeatedPtrField(); _impl_.catalog_name_.Destroy(); _impl_.schema_name_.Destroy(); _impl_.view_name_.Destroy(); @@ -2637,6 +2646,7 @@ void CreateViewExpr::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.table_names_.Clear(); _impl_.catalog_name_.ClearToEmpty(); _impl_.schema_name_.ClearToEmpty(); _impl_.view_name_.ClearToEmpty(); @@ -2708,6 +2718,19 @@ const char* CreateViewExpr::_InternalParse(const char* ptr, ::_pbi::ParseContext } else goto handle_unusual; continue; + // repeated .greptime.v1.TableName table_names = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 58)) { + ptr -= 1; + do { + ptr += 1; + ptr = ctx->ParseMessage(_internal_add_table_names(), ptr); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<58>(ptr)); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -2785,6 +2808,14 @@ uint8_t* CreateViewExpr::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_or_replace(), target); } + // repeated .greptime.v1.TableName table_names = 7; + for (unsigned i = 0, + n = static_cast(this->_internal_table_names_size()); i < n; i++) { + const auto& repfield = this->_internal_table_names(i); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(7, repfield, repfield.GetCachedSize(), target, stream); + } + 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); @@ -2801,6 +2832,13 @@ size_t CreateViewExpr::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated .greptime.v1.TableName table_names = 7; + total_size += 1UL * this->_internal_table_names_size(); + for (const auto& msg : this->_impl_.table_names_) { + total_size += + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); + } + // string catalog_name = 1; if (!this->_internal_catalog_name().empty()) { total_size += 1 + @@ -2857,6 +2895,7 @@ void CreateViewExpr::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const : uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_impl_.table_names_.MergeFrom(from._impl_.table_names_); if (!from._internal_catalog_name().empty()) { _this->_internal_set_catalog_name(from._internal_catalog_name()); } @@ -2894,6 +2933,7 @@ void CreateViewExpr::InternalSwap(CreateViewExpr* other) { auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.table_names_.InternalSwap(&other->_impl_.table_names_); ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( &_impl_.catalog_name_, lhs_arena, &other->_impl_.catalog_name_, rhs_arena diff --git a/c++/greptime/v1/ddl.pb.h b/c++/greptime/v1/ddl.pb.h index 4cd2ae2..ff64e46 100644 --- a/c++/greptime/v1/ddl.pb.h +++ b/c++/greptime/v1/ddl.pb.h @@ -1193,6 +1193,7 @@ class CreateViewExpr final : // accessors ------------------------------------------------------- enum : int { + kTableNamesFieldNumber = 7, kCatalogNameFieldNumber = 1, kSchemaNameFieldNumber = 2, kViewNameFieldNumber = 3, @@ -1200,6 +1201,24 @@ class CreateViewExpr final : kCreateIfNotExistsFieldNumber = 5, kOrReplaceFieldNumber = 6, }; + // repeated .greptime.v1.TableName table_names = 7; + int table_names_size() const; + private: + int _internal_table_names_size() const; + public: + void clear_table_names(); + ::greptime::v1::TableName* mutable_table_names(int index); + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::TableName >* + mutable_table_names(); + private: + const ::greptime::v1::TableName& _internal_table_names(int index) const; + ::greptime::v1::TableName* _internal_add_table_names(); + public: + const ::greptime::v1::TableName& table_names(int index) const; + ::greptime::v1::TableName* add_table_names(); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::TableName >& + table_names() const; + // string catalog_name = 1; void clear_catalog_name(); const std::string& catalog_name() const; @@ -1282,6 +1301,7 @@ class CreateViewExpr final : typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::TableName > table_names_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr catalog_name_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr schema_name_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr view_name_; @@ -6488,6 +6508,43 @@ inline void CreateViewExpr::set_or_replace(bool value) { // @@protoc_insertion_point(field_set:greptime.v1.CreateViewExpr.or_replace) } +// repeated .greptime.v1.TableName table_names = 7; +inline int CreateViewExpr::_internal_table_names_size() const { + return _impl_.table_names_.size(); +} +inline int CreateViewExpr::table_names_size() const { + return _internal_table_names_size(); +} +inline ::greptime::v1::TableName* CreateViewExpr::mutable_table_names(int index) { + // @@protoc_insertion_point(field_mutable:greptime.v1.CreateViewExpr.table_names) + return _impl_.table_names_.Mutable(index); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::TableName >* +CreateViewExpr::mutable_table_names() { + // @@protoc_insertion_point(field_mutable_list:greptime.v1.CreateViewExpr.table_names) + return &_impl_.table_names_; +} +inline const ::greptime::v1::TableName& CreateViewExpr::_internal_table_names(int index) const { + return _impl_.table_names_.Get(index); +} +inline const ::greptime::v1::TableName& CreateViewExpr::table_names(int index) const { + // @@protoc_insertion_point(field_get:greptime.v1.CreateViewExpr.table_names) + return _internal_table_names(index); +} +inline ::greptime::v1::TableName* CreateViewExpr::_internal_add_table_names() { + return _impl_.table_names_.Add(); +} +inline ::greptime::v1::TableName* CreateViewExpr::add_table_names() { + ::greptime::v1::TableName* _add = _internal_add_table_names(); + // @@protoc_insertion_point(field_add:greptime.v1.CreateViewExpr.table_names) + return _add; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::TableName >& +CreateViewExpr::table_names() const { + // @@protoc_insertion_point(field_list:greptime.v1.CreateViewExpr.table_names) + return _impl_.table_names_; +} + // ------------------------------------------------------------------- // DropViewExpr diff --git a/c++/substrait_extension/dist_plan.grpc.pb.cc b/c++/substrait_extension/dist_plan.grpc.pb.cc new file mode 100644 index 0000000..46bbef1 --- /dev/null +++ b/c++/substrait_extension/dist_plan.grpc.pb.cc @@ -0,0 +1,25 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: substrait_extension/dist_plan.proto + +#include "substrait_extension/dist_plan.pb.h" +#include "substrait_extension/dist_plan.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace substrait_extension { + +} // namespace substrait_extension + diff --git a/c++/substrait_extension/dist_plan.grpc.pb.h b/c++/substrait_extension/dist_plan.grpc.pb.h new file mode 100644 index 0000000..8f6d7e9 --- /dev/null +++ b/c++/substrait_extension/dist_plan.grpc.pb.h @@ -0,0 +1,48 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: substrait_extension/dist_plan.proto +// Original file comments: +// Copyright 2023 Greptime Team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef GRPC_substrait_5fextension_2fdist_5fplan_2eproto__INCLUDED +#define GRPC_substrait_5fextension_2fdist_5fplan_2eproto__INCLUDED + +#include "substrait_extension/dist_plan.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace substrait_extension { + +} // namespace substrait_extension + + +#endif // GRPC_substrait_5fextension_2fdist_5fplan_2eproto__INCLUDED diff --git a/c++/substrait_extension/dist_plan.pb.cc b/c++/substrait_extension/dist_plan.pb.cc new file mode 100644 index 0000000..32ef578 --- /dev/null +++ b/c++/substrait_extension/dist_plan.pb.cc @@ -0,0 +1,320 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: substrait_extension/dist_plan.proto + +#include "substrait_extension/dist_plan.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace substrait_extension { +PROTOBUF_CONSTEXPR MergeScan::MergeScan( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.input_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.is_placeholder_)*/false + , /*decltype(_impl_._cached_size_)*/{}} {} +struct MergeScanDefaultTypeInternal { + PROTOBUF_CONSTEXPR MergeScanDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~MergeScanDefaultTypeInternal() {} + union { + MergeScan _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MergeScanDefaultTypeInternal _MergeScan_default_instance_; +} // namespace substrait_extension +static ::_pb::Metadata file_level_metadata_substrait_5fextension_2fdist_5fplan_2eproto[1]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_substrait_5fextension_2fdist_5fplan_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_substrait_5fextension_2fdist_5fplan_2eproto = nullptr; + +const uint32_t TableStruct_substrait_5fextension_2fdist_5fplan_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::substrait_extension::MergeScan, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::substrait_extension::MergeScan, _impl_.input_), + PROTOBUF_FIELD_OFFSET(::substrait_extension::MergeScan, _impl_.is_placeholder_), +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::substrait_extension::MergeScan)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::substrait_extension::_MergeScan_default_instance_._instance, +}; + +const char descriptor_table_protodef_substrait_5fextension_2fdist_5fplan_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n#substrait_extension/dist_plan.proto\022\023s" + "ubstrait_extension\"2\n\tMergeScan\022\r\n\005input" + "\030\001 \001(\014\022\026\n\016is_placeholder\030\002 \001(\010B\?Z=github" + ".com/GreptimeTeam/greptime-proto/go/subs" + "trait_extensionb\006proto3" + ; +static ::_pbi::once_flag descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto = { + false, false, 183, descriptor_table_protodef_substrait_5fextension_2fdist_5fplan_2eproto, + "substrait_extension/dist_plan.proto", + &descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto_once, nullptr, 0, 1, + schemas, file_default_instances, TableStruct_substrait_5fextension_2fdist_5fplan_2eproto::offsets, + file_level_metadata_substrait_5fextension_2fdist_5fplan_2eproto, file_level_enum_descriptors_substrait_5fextension_2fdist_5fplan_2eproto, + file_level_service_descriptors_substrait_5fextension_2fdist_5fplan_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto_getter() { + return &descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_substrait_5fextension_2fdist_5fplan_2eproto(&descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto); +namespace substrait_extension { + +// =================================================================== + +class MergeScan::_Internal { + public: +}; + +MergeScan::MergeScan(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:substrait_extension.MergeScan) +} +MergeScan::MergeScan(const MergeScan& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + MergeScan* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.input_){} + , decltype(_impl_.is_placeholder_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.input_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.input_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_input().empty()) { + _this->_impl_.input_.Set(from._internal_input(), + _this->GetArenaForAllocation()); + } + _this->_impl_.is_placeholder_ = from._impl_.is_placeholder_; + // @@protoc_insertion_point(copy_constructor:substrait_extension.MergeScan) +} + +inline void MergeScan::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.input_){} + , decltype(_impl_.is_placeholder_){false} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.input_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.input_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +MergeScan::~MergeScan() { + // @@protoc_insertion_point(destructor:substrait_extension.MergeScan) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void MergeScan::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.input_.Destroy(); +} + +void MergeScan::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void MergeScan::Clear() { +// @@protoc_insertion_point(message_clear_start:substrait_extension.MergeScan) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.input_.ClearToEmpty(); + _impl_.is_placeholder_ = false; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* MergeScan::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // bytes input = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_input(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // bool is_placeholder = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _impl_.is_placeholder_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* MergeScan::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:substrait_extension.MergeScan) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // bytes input = 1; + if (!this->_internal_input().empty()) { + target = stream->WriteBytesMaybeAliased( + 1, this->_internal_input(), target); + } + + // bool is_placeholder = 2; + if (this->_internal_is_placeholder() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_is_placeholder(), 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); + } + // @@protoc_insertion_point(serialize_to_array_end:substrait_extension.MergeScan) + return target; +} + +size_t MergeScan::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:substrait_extension.MergeScan) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // bytes input = 1; + if (!this->_internal_input().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( + this->_internal_input()); + } + + // bool is_placeholder = 2; + if (this->_internal_is_placeholder() != 0) { + total_size += 1 + 1; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MergeScan::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + MergeScan::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MergeScan::GetClassData() const { return &_class_data_; } + + +void MergeScan::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:substrait_extension.MergeScan) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_input().empty()) { + _this->_internal_set_input(from._internal_input()); + } + if (from._internal_is_placeholder() != 0) { + _this->_internal_set_is_placeholder(from._internal_is_placeholder()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void MergeScan::CopyFrom(const MergeScan& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:substrait_extension.MergeScan) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool MergeScan::IsInitialized() const { + return true; +} + +void MergeScan::InternalSwap(MergeScan* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.input_, lhs_arena, + &other->_impl_.input_, rhs_arena + ); + swap(_impl_.is_placeholder_, other->_impl_.is_placeholder_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata MergeScan::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto_getter, &descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto_once, + file_level_metadata_substrait_5fextension_2fdist_5fplan_2eproto[0]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace substrait_extension +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::substrait_extension::MergeScan* +Arena::CreateMaybeMessage< ::substrait_extension::MergeScan >(Arena* arena) { + return Arena::CreateMessageInternal< ::substrait_extension::MergeScan >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/c++/substrait_extension/dist_plan.pb.h b/c++/substrait_extension/dist_plan.pb.h new file mode 100644 index 0000000..d0233ee --- /dev/null +++ b/c++/substrait_extension/dist_plan.pb.h @@ -0,0 +1,313 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: substrait_extension/dist_plan.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_substrait_5fextension_2fdist_5fplan_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_substrait_5fextension_2fdist_5fplan_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3021000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3021006 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_substrait_5fextension_2fdist_5fplan_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_substrait_5fextension_2fdist_5fplan_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_substrait_5fextension_2fdist_5fplan_2eproto; +namespace substrait_extension { +class MergeScan; +struct MergeScanDefaultTypeInternal; +extern MergeScanDefaultTypeInternal _MergeScan_default_instance_; +} // namespace substrait_extension +PROTOBUF_NAMESPACE_OPEN +template<> ::substrait_extension::MergeScan* Arena::CreateMaybeMessage<::substrait_extension::MergeScan>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace substrait_extension { + +// =================================================================== + +class MergeScan final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:substrait_extension.MergeScan) */ { + public: + inline MergeScan() : MergeScan(nullptr) {} + ~MergeScan() override; + explicit PROTOBUF_CONSTEXPR MergeScan(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + MergeScan(const MergeScan& from); + MergeScan(MergeScan&& from) noexcept + : MergeScan() { + *this = ::std::move(from); + } + + inline MergeScan& operator=(const MergeScan& from) { + CopyFrom(from); + return *this; + } + inline MergeScan& operator=(MergeScan&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const MergeScan& default_instance() { + return *internal_default_instance(); + } + static inline const MergeScan* internal_default_instance() { + return reinterpret_cast( + &_MergeScan_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(MergeScan& a, MergeScan& b) { + a.Swap(&b); + } + inline void Swap(MergeScan* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(MergeScan* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + MergeScan* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const MergeScan& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const MergeScan& from) { + MergeScan::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(MergeScan* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "substrait_extension.MergeScan"; + } + protected: + explicit MergeScan(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kInputFieldNumber = 1, + kIsPlaceholderFieldNumber = 2, + }; + // bytes input = 1; + void clear_input(); + const std::string& input() const; + template + void set_input(ArgT0&& arg0, ArgT... args); + std::string* mutable_input(); + PROTOBUF_NODISCARD std::string* release_input(); + void set_allocated_input(std::string* input); + private: + const std::string& _internal_input() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_input(const std::string& value); + std::string* _internal_mutable_input(); + public: + + // bool is_placeholder = 2; + void clear_is_placeholder(); + bool is_placeholder() const; + void set_is_placeholder(bool value); + private: + bool _internal_is_placeholder() const; + void _internal_set_is_placeholder(bool value); + public: + + // @@protoc_insertion_point(class_scope:substrait_extension.MergeScan) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr input_; + bool is_placeholder_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_substrait_5fextension_2fdist_5fplan_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// MergeScan + +// bytes input = 1; +inline void MergeScan::clear_input() { + _impl_.input_.ClearToEmpty(); +} +inline const std::string& MergeScan::input() const { + // @@protoc_insertion_point(field_get:substrait_extension.MergeScan.input) + return _internal_input(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void MergeScan::set_input(ArgT0&& arg0, ArgT... args) { + + _impl_.input_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:substrait_extension.MergeScan.input) +} +inline std::string* MergeScan::mutable_input() { + std::string* _s = _internal_mutable_input(); + // @@protoc_insertion_point(field_mutable:substrait_extension.MergeScan.input) + return _s; +} +inline const std::string& MergeScan::_internal_input() const { + return _impl_.input_.Get(); +} +inline void MergeScan::_internal_set_input(const std::string& value) { + + _impl_.input_.Set(value, GetArenaForAllocation()); +} +inline std::string* MergeScan::_internal_mutable_input() { + + return _impl_.input_.Mutable(GetArenaForAllocation()); +} +inline std::string* MergeScan::release_input() { + // @@protoc_insertion_point(field_release:substrait_extension.MergeScan.input) + return _impl_.input_.Release(); +} +inline void MergeScan::set_allocated_input(std::string* input) { + if (input != nullptr) { + + } else { + + } + _impl_.input_.SetAllocated(input, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.input_.IsDefault()) { + _impl_.input_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:substrait_extension.MergeScan.input) +} + +// bool is_placeholder = 2; +inline void MergeScan::clear_is_placeholder() { + _impl_.is_placeholder_ = false; +} +inline bool MergeScan::_internal_is_placeholder() const { + return _impl_.is_placeholder_; +} +inline bool MergeScan::is_placeholder() const { + // @@protoc_insertion_point(field_get:substrait_extension.MergeScan.is_placeholder) + return _internal_is_placeholder(); +} +inline void MergeScan::_internal_set_is_placeholder(bool value) { + + _impl_.is_placeholder_ = value; +} +inline void MergeScan::set_is_placeholder(bool value) { + _internal_set_is_placeholder(value); + // @@protoc_insertion_point(field_set:substrait_extension.MergeScan.is_placeholder) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ + +// @@protoc_insertion_point(namespace_scope) + +} // namespace substrait_extension + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_substrait_5fextension_2fdist_5fplan_2eproto diff --git a/go/greptime/v1/ddl.pb.go b/go/greptime/v1/ddl.pb.go index d3ae4f6..8254633 100644 --- a/go/greptime/v1/ddl.pb.go +++ b/go/greptime/v1/ddl.pb.go @@ -462,12 +462,13 @@ type CreateViewExpr 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"` - ViewName string `protobuf:"bytes,3,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` - LogicalPlan []byte `protobuf:"bytes,4,opt,name=logical_plan,json=logicalPlan,proto3" json:"logical_plan,omitempty"` - CreateIfNotExists bool `protobuf:"varint,5,opt,name=create_if_not_exists,json=createIfNotExists,proto3" json:"create_if_not_exists,omitempty"` - OrReplace bool `protobuf:"varint,6,opt,name=or_replace,json=orReplace,proto3" json:"or_replace,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"` + ViewName string `protobuf:"bytes,3,opt,name=view_name,json=viewName,proto3" json:"view_name,omitempty"` + LogicalPlan []byte `protobuf:"bytes,4,opt,name=logical_plan,json=logicalPlan,proto3" json:"logical_plan,omitempty"` + CreateIfNotExists bool `protobuf:"varint,5,opt,name=create_if_not_exists,json=createIfNotExists,proto3" json:"create_if_not_exists,omitempty"` + OrReplace bool `protobuf:"varint,6,opt,name=or_replace,json=orReplace,proto3" json:"or_replace,omitempty"` + TableNames []*TableName `protobuf:"bytes,7,rep,name=table_names,json=tableNames,proto3" json:"table_names,omitempty"` } func (x *CreateViewExpr) Reset() { @@ -544,6 +545,13 @@ func (x *CreateViewExpr) GetOrReplace() bool { return false } +func (x *CreateViewExpr) GetTableNames() []*TableName { + if x != nil { + return x.TableNames + } + return nil +} + // Drop a view type DropViewExpr struct { state protoimpl.MessageState @@ -1854,7 +1862,7 @@ var file_greptime_v1_ddl_proto_rawDesc = []byte{ 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 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, 0xe4, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, 0x9d, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 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, @@ -1868,209 +1876,213 @@ var file_greptime_v1_ddl_proto_rawDesc = []byte{ 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x22, 0xc4, 0x01, - 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x69, 0x65, 0x77, 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, 0x1b, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x2d, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, 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, 0x06, 0x76, 0x69, 0x65, 0x77, 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, 0x93, 0x04, 0x0a, 0x0f, 0x43, 0x72, 0x65, 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, 0x12, 0x0a, 0x04, 0x64, - 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, - 0x37, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x05, - 0x20, 0x03, 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, 0x0a, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 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, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, - 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 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, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, - 0x6c, 0x65, 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, 0x82, 0x03, 0x0a, 0x09, 0x41, - 0x6c, 0x74, 0x65, 0x72, 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, 0x3a, 0x0a, 0x0b, 0x61, - 0x64, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x6f, 0x70, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 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, 0x12, 0x50, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, - 0xc9, 0x01, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, + 0x28, 0x08, 0x52, 0x09, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x37, 0x0a, + 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x0c, 0x44, 0x72, 0x6f, 0x70, 0x56, + 0x69, 0x65, 0x77, 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, 0x1b, 0x0a, 0x09, 0x76, + 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x76, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, + 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, + 0x06, 0x76, 0x69, 0x65, 0x77, 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, 0x93, 0x04, + 0x0a, 0x0f, 0x43, 0x72, 0x65, 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, 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, 0x8d, 0x02, 0x0a, 0x12, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 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, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x44, 0x65, 0x66, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, + 0x65, 0x79, 0x73, 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, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x72, + 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 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, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 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, 0x82, 0x03, 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x65, 0x72, 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, 0x3a, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x65, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, + 0x48, 0x00, 0x52, 0x0b, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, + 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x06, 0x20, 0x01, 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, 0x12, 0x50, + 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, + 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x42, 0x06, 0x0a, 0x04, 0x6b, 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, 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, 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, 0x8d, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 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, + 0x2f, 0x0a, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, 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, 0x04, 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, 0x7c, + 0x0a, 0x10, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 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, 0x2f, 0x0a, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, - 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, 0x04, 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, 0x7c, 0x0a, 0x10, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 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, 0x24, 0x0a, - 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x69, 0x66, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x49, 0x66, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x73, 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, 0x62, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x13, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 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, + 0x6d, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x69, + 0x66, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x64, 0x72, 0x6f, 0x70, 0x49, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 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, 0x62, + 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, + 0x65, 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, 0xcb, 0x01, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, + 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, + 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x15, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 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, 0x18, 0x0a, 0x06, 0x46, 0x6c, 0x6f, 0x77, 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, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcb, - 0x01, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x58, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 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, 0x18, 0x0a, 0x06, 0x46, 0x6c, 0x6f, - 0x77, 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, + 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 ( @@ -2135,33 +2147,34 @@ var file_greptime_v1_ddl_proto_depIdxs = []int32{ 27, // 11: greptime.v1.CreateFlowExpr.expire_after:type_name -> greptime.v1.ExpireAfter 23, // 12: greptime.v1.CreateFlowExpr.flow_options:type_name -> greptime.v1.CreateFlowExpr.FlowOptionsEntry 20, // 13: greptime.v1.DropFlowExpr.flow_id:type_name -> greptime.v1.FlowId - 19, // 14: greptime.v1.DropViewExpr.view_id:type_name -> greptime.v1.TableId - 21, // 15: greptime.v1.CreateTableExpr.column_defs:type_name -> greptime.v1.ColumnDef - 24, // 16: greptime.v1.CreateTableExpr.table_options:type_name -> greptime.v1.CreateTableExpr.TableOptionsEntry - 19, // 17: greptime.v1.CreateTableExpr.table_id:type_name -> greptime.v1.TableId - 12, // 18: greptime.v1.AlterExpr.add_columns:type_name -> greptime.v1.AddColumns - 13, // 19: greptime.v1.AlterExpr.drop_columns:type_name -> greptime.v1.DropColumns - 15, // 20: greptime.v1.AlterExpr.rename_table:type_name -> greptime.v1.RenameTable - 14, // 21: greptime.v1.AlterExpr.change_column_types:type_name -> greptime.v1.ChangeColumnTypes - 19, // 22: greptime.v1.DropTableExpr.table_id:type_name -> greptime.v1.TableId - 25, // 23: greptime.v1.CreateDatabaseExpr.options:type_name -> greptime.v1.CreateDatabaseExpr.OptionsEntry - 19, // 24: greptime.v1.TruncateTableExpr.table_id:type_name -> greptime.v1.TableId - 16, // 25: greptime.v1.AddColumns.add_columns:type_name -> greptime.v1.AddColumn - 18, // 26: greptime.v1.DropColumns.drop_columns:type_name -> greptime.v1.DropColumn - 17, // 27: greptime.v1.ChangeColumnTypes.change_column_types:type_name -> greptime.v1.ChangeColumnType - 21, // 28: greptime.v1.AddColumn.column_def:type_name -> greptime.v1.ColumnDef - 22, // 29: greptime.v1.AddColumn.location:type_name -> greptime.v1.AddColumnLocation - 28, // 30: greptime.v1.ChangeColumnType.target_type:type_name -> greptime.v1.ColumnDataType - 29, // 31: greptime.v1.ChangeColumnType.target_type_extension:type_name -> greptime.v1.ColumnDataTypeExtension - 28, // 32: greptime.v1.ColumnDef.data_type:type_name -> greptime.v1.ColumnDataType - 30, // 33: greptime.v1.ColumnDef.semantic_type:type_name -> greptime.v1.SemanticType - 29, // 34: greptime.v1.ColumnDef.datatype_extension:type_name -> greptime.v1.ColumnDataTypeExtension - 0, // 35: greptime.v1.AddColumnLocation.location_type:type_name -> greptime.v1.AddColumnLocation.LocationType - 36, // [36:36] is the sub-list for method output_type - 36, // [36:36] is the sub-list for method input_type - 36, // [36:36] is the sub-list for extension type_name - 36, // [36:36] is the sub-list for extension extendee - 0, // [0:36] is the sub-list for field type_name + 26, // 14: greptime.v1.CreateViewExpr.table_names:type_name -> greptime.v1.TableName + 19, // 15: greptime.v1.DropViewExpr.view_id:type_name -> greptime.v1.TableId + 21, // 16: greptime.v1.CreateTableExpr.column_defs:type_name -> greptime.v1.ColumnDef + 24, // 17: greptime.v1.CreateTableExpr.table_options:type_name -> greptime.v1.CreateTableExpr.TableOptionsEntry + 19, // 18: greptime.v1.CreateTableExpr.table_id:type_name -> greptime.v1.TableId + 12, // 19: greptime.v1.AlterExpr.add_columns:type_name -> greptime.v1.AddColumns + 13, // 20: greptime.v1.AlterExpr.drop_columns:type_name -> greptime.v1.DropColumns + 15, // 21: greptime.v1.AlterExpr.rename_table:type_name -> greptime.v1.RenameTable + 14, // 22: greptime.v1.AlterExpr.change_column_types:type_name -> greptime.v1.ChangeColumnTypes + 19, // 23: greptime.v1.DropTableExpr.table_id:type_name -> greptime.v1.TableId + 25, // 24: greptime.v1.CreateDatabaseExpr.options:type_name -> greptime.v1.CreateDatabaseExpr.OptionsEntry + 19, // 25: greptime.v1.TruncateTableExpr.table_id:type_name -> greptime.v1.TableId + 16, // 26: greptime.v1.AddColumns.add_columns:type_name -> greptime.v1.AddColumn + 18, // 27: greptime.v1.DropColumns.drop_columns:type_name -> greptime.v1.DropColumn + 17, // 28: greptime.v1.ChangeColumnTypes.change_column_types:type_name -> greptime.v1.ChangeColumnType + 21, // 29: greptime.v1.AddColumn.column_def:type_name -> greptime.v1.ColumnDef + 22, // 30: greptime.v1.AddColumn.location:type_name -> greptime.v1.AddColumnLocation + 28, // 31: greptime.v1.ChangeColumnType.target_type:type_name -> greptime.v1.ColumnDataType + 29, // 32: greptime.v1.ChangeColumnType.target_type_extension:type_name -> greptime.v1.ColumnDataTypeExtension + 28, // 33: greptime.v1.ColumnDef.data_type:type_name -> greptime.v1.ColumnDataType + 30, // 34: greptime.v1.ColumnDef.semantic_type:type_name -> greptime.v1.SemanticType + 29, // 35: greptime.v1.ColumnDef.datatype_extension:type_name -> greptime.v1.ColumnDataTypeExtension + 0, // 36: greptime.v1.AddColumnLocation.location_type:type_name -> greptime.v1.AddColumnLocation.LocationType + 37, // [37:37] is the sub-list for method output_type + 37, // [37:37] is the sub-list for method input_type + 37, // [37:37] is the sub-list for extension type_name + 37, // [37:37] is the sub-list for extension extendee + 0, // [0:37] is the sub-list for field type_name } func init() { file_greptime_v1_ddl_proto_init() } diff --git a/go/substrait_extension/dist_plan.pb.go b/go/substrait_extension/dist_plan.pb.go new file mode 100644 index 0000000..86fea74 --- /dev/null +++ b/go/substrait_extension/dist_plan.pb.go @@ -0,0 +1,173 @@ +// Copyright 2023 Greptime Team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.6 +// source: substrait_extension/dist_plan.proto + +package substrait_extension + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type MergeScan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the input logical plan + Input []byte `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + // whether this plan is a placeholder + IsPlaceholder bool `protobuf:"varint,2,opt,name=is_placeholder,json=isPlaceholder,proto3" json:"is_placeholder,omitempty"` +} + +func (x *MergeScan) Reset() { + *x = MergeScan{} + if protoimpl.UnsafeEnabled { + mi := &file_substrait_extension_dist_plan_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MergeScan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MergeScan) ProtoMessage() {} + +func (x *MergeScan) ProtoReflect() protoreflect.Message { + mi := &file_substrait_extension_dist_plan_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MergeScan.ProtoReflect.Descriptor instead. +func (*MergeScan) Descriptor() ([]byte, []int) { + return file_substrait_extension_dist_plan_proto_rawDescGZIP(), []int{0} +} + +func (x *MergeScan) GetInput() []byte { + if x != nil { + return x.Input + } + return nil +} + +func (x *MergeScan) GetIsPlaceholder() bool { + if x != nil { + return x.IsPlaceholder + } + return false +} + +var File_substrait_extension_dist_plan_proto protoreflect.FileDescriptor + +var file_substrait_extension_dist_plan_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x09, 0x4d, 0x65, + 0x72, 0x67, 0x65, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x69, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x42, 0x3f, 0x5a, 0x3d, 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, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_substrait_extension_dist_plan_proto_rawDescOnce sync.Once + file_substrait_extension_dist_plan_proto_rawDescData = file_substrait_extension_dist_plan_proto_rawDesc +) + +func file_substrait_extension_dist_plan_proto_rawDescGZIP() []byte { + file_substrait_extension_dist_plan_proto_rawDescOnce.Do(func() { + file_substrait_extension_dist_plan_proto_rawDescData = protoimpl.X.CompressGZIP(file_substrait_extension_dist_plan_proto_rawDescData) + }) + return file_substrait_extension_dist_plan_proto_rawDescData +} + +var file_substrait_extension_dist_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_substrait_extension_dist_plan_proto_goTypes = []interface{}{ + (*MergeScan)(nil), // 0: substrait_extension.MergeScan +} +var file_substrait_extension_dist_plan_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_substrait_extension_dist_plan_proto_init() } +func file_substrait_extension_dist_plan_proto_init() { + if File_substrait_extension_dist_plan_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_substrait_extension_dist_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MergeScan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_substrait_extension_dist_plan_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_substrait_extension_dist_plan_proto_goTypes, + DependencyIndexes: file_substrait_extension_dist_plan_proto_depIdxs, + MessageInfos: file_substrait_extension_dist_plan_proto_msgTypes, + }.Build() + File_substrait_extension_dist_plan_proto = out.File + file_substrait_extension_dist_plan_proto_rawDesc = nil + file_substrait_extension_dist_plan_proto_goTypes = nil + file_substrait_extension_dist_plan_proto_depIdxs = nil +} diff --git a/java/src/main/java/io/greptime/v1/Ddl.java b/java/src/main/java/io/greptime/v1/Ddl.java index 31ebf9a..6ededc4 100644 --- a/java/src/main/java/io/greptime/v1/Ddl.java +++ b/java/src/main/java/io/greptime/v1/Ddl.java @@ -5981,6 +5981,30 @@ java.lang.String defaultValue); * @return The orReplace. */ boolean getOrReplace(); + + /** + * repeated .greptime.v1.TableName table_names = 7; + */ + java.util.List + getTableNamesList(); + /** + * repeated .greptime.v1.TableName table_names = 7; + */ + io.greptime.v1.Common.TableName getTableNames(int index); + /** + * repeated .greptime.v1.TableName table_names = 7; + */ + int getTableNamesCount(); + /** + * repeated .greptime.v1.TableName table_names = 7; + */ + java.util.List + getTableNamesOrBuilderList(); + /** + * repeated .greptime.v1.TableName table_names = 7; + */ + io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder( + int index); } /** *
@@ -6003,6 +6027,7 @@ java.lang.String defaultValue);
       schemaName_ = "";
       viewName_ = "";
       logicalPlan_ = com.google.protobuf.ByteString.EMPTY;
+      tableNames_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -6025,6 +6050,7 @@ java.lang.String defaultValue);
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
+      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -6068,6 +6094,15 @@ java.lang.String defaultValue);
               orReplace_ = input.readBool();
               break;
             }
+            case 58: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                tableNames_ = new java.util.ArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              tableNames_.add(
+                  input.readMessage(io.greptime.v1.Common.TableName.parser(), extensionRegistry));
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -6085,6 +6120,9 @@ java.lang.String defaultValue);
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          tableNames_ = java.util.Collections.unmodifiableList(tableNames_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -6249,6 +6287,46 @@ java.lang.String defaultValue);
       return orReplace_;
     }
 
+    public static final int TABLE_NAMES_FIELD_NUMBER = 7;
+    private java.util.List tableNames_;
+    /**
+     * repeated .greptime.v1.TableName table_names = 7;
+     */
+    @java.lang.Override
+    public java.util.List getTableNamesList() {
+      return tableNames_;
+    }
+    /**
+     * repeated .greptime.v1.TableName table_names = 7;
+     */
+    @java.lang.Override
+    public java.util.List 
+        getTableNamesOrBuilderList() {
+      return tableNames_;
+    }
+    /**
+     * repeated .greptime.v1.TableName table_names = 7;
+     */
+    @java.lang.Override
+    public int getTableNamesCount() {
+      return tableNames_.size();
+    }
+    /**
+     * repeated .greptime.v1.TableName table_names = 7;
+     */
+    @java.lang.Override
+    public io.greptime.v1.Common.TableName getTableNames(int index) {
+      return tableNames_.get(index);
+    }
+    /**
+     * repeated .greptime.v1.TableName table_names = 7;
+     */
+    @java.lang.Override
+    public io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder(
+        int index) {
+      return tableNames_.get(index);
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -6281,6 +6359,9 @@ java.lang.String defaultValue);
       if (orReplace_ != false) {
         output.writeBool(6, orReplace_);
       }
+      for (int i = 0; i < tableNames_.size(); i++) {
+        output.writeMessage(7, tableNames_.get(i));
+      }
       unknownFields.writeTo(output);
     }
 
@@ -6311,6 +6392,10 @@ java.lang.String defaultValue);
         size += com.google.protobuf.CodedOutputStream
           .computeBoolSize(6, orReplace_);
       }
+      for (int i = 0; i < tableNames_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(7, tableNames_.get(i));
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -6338,6 +6423,8 @@ java.lang.String defaultValue);
           != other.getCreateIfNotExists()) return false;
       if (getOrReplace()
           != other.getOrReplace()) return false;
+      if (!getTableNamesList()
+          .equals(other.getTableNamesList())) return false;
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -6363,6 +6450,10 @@ java.lang.String defaultValue);
       hash = (37 * hash) + OR_REPLACE_FIELD_NUMBER;
       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
           getOrReplace());
+      if (getTableNamesCount() > 0) {
+        hash = (37 * hash) + TABLE_NAMES_FIELD_NUMBER;
+        hash = (53 * hash) + getTableNamesList().hashCode();
+      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -6495,6 +6586,7 @@ java.lang.String defaultValue);
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
+          getTableNamesFieldBuilder();
         }
       }
       @java.lang.Override
@@ -6512,6 +6604,12 @@ java.lang.String defaultValue);
 
         orReplace_ = false;
 
+        if (tableNamesBuilder_ == null) {
+          tableNames_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          tableNamesBuilder_.clear();
+        }
         return this;
       }
 
@@ -6538,12 +6636,22 @@ java.lang.String defaultValue);
       @java.lang.Override
       public io.greptime.v1.Ddl.CreateViewExpr buildPartial() {
         io.greptime.v1.Ddl.CreateViewExpr result = new io.greptime.v1.Ddl.CreateViewExpr(this);
+        int from_bitField0_ = bitField0_;
         result.catalogName_ = catalogName_;
         result.schemaName_ = schemaName_;
         result.viewName_ = viewName_;
         result.logicalPlan_ = logicalPlan_;
         result.createIfNotExists_ = createIfNotExists_;
         result.orReplace_ = orReplace_;
+        if (tableNamesBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            tableNames_ = java.util.Collections.unmodifiableList(tableNames_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.tableNames_ = tableNames_;
+        } else {
+          result.tableNames_ = tableNamesBuilder_.build();
+        }
         onBuilt();
         return result;
       }
@@ -6613,6 +6721,32 @@ java.lang.String defaultValue);
         if (other.getOrReplace() != false) {
           setOrReplace(other.getOrReplace());
         }
+        if (tableNamesBuilder_ == null) {
+          if (!other.tableNames_.isEmpty()) {
+            if (tableNames_.isEmpty()) {
+              tableNames_ = other.tableNames_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureTableNamesIsMutable();
+              tableNames_.addAll(other.tableNames_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.tableNames_.isEmpty()) {
+            if (tableNamesBuilder_.isEmpty()) {
+              tableNamesBuilder_.dispose();
+              tableNamesBuilder_ = null;
+              tableNames_ = other.tableNames_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              tableNamesBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getTableNamesFieldBuilder() : null;
+            } else {
+              tableNamesBuilder_.addAllMessages(other.tableNames_);
+            }
+          }
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -6641,6 +6775,7 @@ java.lang.String defaultValue);
         }
         return this;
       }
+      private int bitField0_;
 
       private java.lang.Object catalogName_ = "";
       /**
@@ -6965,6 +7100,246 @@ java.lang.String defaultValue);
         onChanged();
         return this;
       }
+
+      private java.util.List tableNames_ =
+        java.util.Collections.emptyList();
+      private void ensureTableNamesIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          tableNames_ = new java.util.ArrayList(tableNames_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> tableNamesBuilder_;
+
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public java.util.List getTableNamesList() {
+        if (tableNamesBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(tableNames_);
+        } else {
+          return tableNamesBuilder_.getMessageList();
+        }
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public int getTableNamesCount() {
+        if (tableNamesBuilder_ == null) {
+          return tableNames_.size();
+        } else {
+          return tableNamesBuilder_.getCount();
+        }
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public io.greptime.v1.Common.TableName getTableNames(int index) {
+        if (tableNamesBuilder_ == null) {
+          return tableNames_.get(index);
+        } else {
+          return tableNamesBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder setTableNames(
+          int index, io.greptime.v1.Common.TableName value) {
+        if (tableNamesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTableNamesIsMutable();
+          tableNames_.set(index, value);
+          onChanged();
+        } else {
+          tableNamesBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder setTableNames(
+          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
+        if (tableNamesBuilder_ == null) {
+          ensureTableNamesIsMutable();
+          tableNames_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          tableNamesBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder addTableNames(io.greptime.v1.Common.TableName value) {
+        if (tableNamesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTableNamesIsMutable();
+          tableNames_.add(value);
+          onChanged();
+        } else {
+          tableNamesBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder addTableNames(
+          int index, io.greptime.v1.Common.TableName value) {
+        if (tableNamesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTableNamesIsMutable();
+          tableNames_.add(index, value);
+          onChanged();
+        } else {
+          tableNamesBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder addTableNames(
+          io.greptime.v1.Common.TableName.Builder builderForValue) {
+        if (tableNamesBuilder_ == null) {
+          ensureTableNamesIsMutable();
+          tableNames_.add(builderForValue.build());
+          onChanged();
+        } else {
+          tableNamesBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder addTableNames(
+          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
+        if (tableNamesBuilder_ == null) {
+          ensureTableNamesIsMutable();
+          tableNames_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          tableNamesBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder addAllTableNames(
+          java.lang.Iterable values) {
+        if (tableNamesBuilder_ == null) {
+          ensureTableNamesIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, tableNames_);
+          onChanged();
+        } else {
+          tableNamesBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder clearTableNames() {
+        if (tableNamesBuilder_ == null) {
+          tableNames_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          tableNamesBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public Builder removeTableNames(int index) {
+        if (tableNamesBuilder_ == null) {
+          ensureTableNamesIsMutable();
+          tableNames_.remove(index);
+          onChanged();
+        } else {
+          tableNamesBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public io.greptime.v1.Common.TableName.Builder getTableNamesBuilder(
+          int index) {
+        return getTableNamesFieldBuilder().getBuilder(index);
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder(
+          int index) {
+        if (tableNamesBuilder_ == null) {
+          return tableNames_.get(index);  } else {
+          return tableNamesBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public java.util.List 
+           getTableNamesOrBuilderList() {
+        if (tableNamesBuilder_ != null) {
+          return tableNamesBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(tableNames_);
+        }
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public io.greptime.v1.Common.TableName.Builder addTableNamesBuilder() {
+        return getTableNamesFieldBuilder().addBuilder(
+            io.greptime.v1.Common.TableName.getDefaultInstance());
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public io.greptime.v1.Common.TableName.Builder addTableNamesBuilder(
+          int index) {
+        return getTableNamesFieldBuilder().addBuilder(
+            index, io.greptime.v1.Common.TableName.getDefaultInstance());
+      }
+      /**
+       * repeated .greptime.v1.TableName table_names = 7;
+       */
+      public java.util.List 
+           getTableNamesBuilderList() {
+        return getTableNamesFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> 
+          getTableNamesFieldBuilder() {
+        if (tableNamesBuilder_ == null) {
+          tableNamesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder>(
+                  tableNames_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          tableNames_ = null;
+        }
+        return tableNamesBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -25161,73 +25536,74 @@ java.lang.String defaultValue);
       "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n" +
       "\014DropFlowExpr\022\024\n\014catalog_name\030\001 \001(\t\022\021\n\tf" +
       "low_name\030\002 \001(\t\022$\n\007flow_id\030\003 \001(\0132\023.grepti" +
-      "me.v1.FlowId\022\026\n\016drop_if_exists\030\005 \001(\010\"\226\001\n" +
+      "me.v1.FlowId\022\026\n\016drop_if_exists\030\005 \001(\010\"\303\001\n" +
       "\016CreateViewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n" +
       "\013schema_name\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022\024\n" +
       "\014logical_plan\030\004 \001(\014\022\034\n\024create_if_not_exi" +
-      "sts\030\005 \001(\010\022\022\n\nor_replace\030\006 \001(\010\"\213\001\n\014DropVi" +
-      "ewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_n" +
-      "ame\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022%\n\007view_id\030" +
+      "sts\030\005 \001(\010\022\022\n\nor_replace\030\006 \001(\010\022+\n\013table_n" +
+      "ames\030\007 \003(\0132\026.greptime.v1.TableName\"\213\001\n\014D" +
+      "ropViewExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013sch" +
+      "ema_name\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022%\n\007vie" +
+      "w_id\030\004 \001(\0132\024.greptime.v1.TableId\022\026\n\016drop" +
+      "_if_exists\030\005 \001(\010\"\207\003\n\017CreateTableExpr\022\024\n\014" +
+      "catalog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022" +
+      "\022\n\ntable_name\030\003 \001(\t\022\014\n\004desc\030\004 \001(\t\022+\n\013col" +
+      "umn_defs\030\005 \003(\0132\026.greptime.v1.ColumnDef\022\022" +
+      "\n\ntime_index\030\006 \001(\t\022\024\n\014primary_keys\030\007 \003(\t" +
+      "\022\034\n\024create_if_not_exists\030\010 \001(\010\022E\n\rtable_" +
+      "options\030\t \003(\0132..greptime.v1.CreateTableE" +
+      "xpr.TableOptionsEntry\022&\n\010table_id\030\n \001(\0132" +
+      "\024.greptime.v1.TableId\022\016\n\006engine\030\014 \001(\t\0323\n" +
+      "\021TableOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value" +
+      "\030\002 \001(\t:\0028\001\"\245\002\n\tAlterExpr\022\024\n\014catalog_name" +
+      "\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_nam" +
+      "e\030\003 \001(\t\022.\n\013add_columns\030\004 \001(\0132\027.greptime." +
+      "v1.AddColumnsH\000\0220\n\014drop_columns\030\005 \001(\0132\030." +
+      "greptime.v1.DropColumnsH\000\0220\n\014rename_tabl" +
+      "e\030\006 \001(\0132\030.greptime.v1.RenameTableH\000\022=\n\023c" +
+      "hange_column_types\030\007 \001(\0132\036.greptime.v1.C" +
+      "hangeColumnTypesH\000B\006\n\004kind\"\216\001\n\rDropTable" +
+      "Expr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_nam" +
+      "e\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\022\026\n\016drop_if_e" +
-      "xists\030\005 \001(\010\"\207\003\n\017CreateTableExpr\022\024\n\014catal" +
-      "og_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\nta" +
-      "ble_name\030\003 \001(\t\022\014\n\004desc\030\004 \001(\t\022+\n\013column_d" +
-      "efs\030\005 \003(\0132\026.greptime.v1.ColumnDef\022\022\n\ntim" +
-      "e_index\030\006 \001(\t\022\024\n\014primary_keys\030\007 \003(\t\022\034\n\024c" +
-      "reate_if_not_exists\030\010 \001(\010\022E\n\rtable_optio" +
-      "ns\030\t \003(\0132..greptime.v1.CreateTableExpr.T" +
-      "ableOptionsEntry\022&\n\010table_id\030\n \001(\0132\024.gre" +
-      "ptime.v1.TableId\022\016\n\006engine\030\014 \001(\t\0323\n\021Tabl" +
-      "eOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" +
-      "\t:\0028\001\"\245\002\n\tAlterExpr\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\013add_columns\030\004 \001(\0132\027.greptime.v1.Ad" +
-      "dColumnsH\000\0220\n\014drop_columns\030\005 \001(\0132\030.grept" +
-      "ime.v1.DropColumnsH\000\0220\n\014rename_table\030\006 \001" +
-      "(\0132\030.greptime.v1.RenameTableH\000\022=\n\023change" +
-      "_column_types\030\007 \001(\0132\036.greptime.v1.Change" +
-      "ColumnTypesH\000B\006\n\004kind\"\216\001\n\rDropTableExpr\022" +
+      "xists\030\005 \001(\010\"\314\001\n\022CreateDatabaseExpr\022\024\n\014ca" +
+      "talog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\034\n" +
+      "\024create_if_not_exists\030\003 \001(\010\022=\n\007options\030\004" +
+      " \003(\0132,.greptime.v1.CreateDatabaseExpr.Op" +
+      "tionsEntry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022" +
+      "\r\n\005value\030\002 \001(\t:\0028\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(\013" +
-      "2\024.greptime.v1.TableId\022\026\n\016drop_if_exists" +
-      "\030\005 \001(\010\"\314\001\n\022CreateDatabaseExpr\022\024\n\014catalog" +
-      "_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\034\n\024crea" +
-      "te_if_not_exists\030\003 \001(\010\022=\n\007options\030\004 \003(\0132" +
-      ",.greptime.v1.CreateDatabaseExpr.Options" +
-      "Entry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va" +
-      "lue\030\002 \001(\t:\0028\001\"z\n\021TruncateTableExpr\022\024\n\014ca" +
-      "talog_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.gr" +
-      "eptime.v1.TableId\"U\n\020DropDatabaseExpr\022\024\n" +
-      "\014catalog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t" +
-      "\022\026\n\016drop_if_exists\030\003 \001(\010\"9\n\nAddColumns\022+" +
-      "\n\013add_columns\030\001 \003(\0132\026.greptime.v1.AddCol" +
-      "umn\"<\n\013DropColumns\022-\n\014drop_columns\030\001 \003(\013" +
-      "2\027.greptime.v1.DropColumn\"O\n\021ChangeColum" +
-      "nTypes\022:\n\023change_column_types\030\001 \003(\0132\035.gr" +
-      "eptime.v1.ChangeColumnType\"%\n\013RenameTabl" +
-      "e\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddColumn\022*" +
-      "\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.ColumnD" +
-      "ef\0220\n\010location\030\003 \001(\0132\036.greptime.v1.AddCo" +
-      "lumnLocation\"\236\001\n\020ChangeColumnType\022\023\n\013col" +
-      "umn_name\030\001 \001(\t\0220\n\013target_type\030\002 \001(\0162\033.gr" +
-      "eptime.v1.ColumnDataType\022C\n\025target_type_" +
-      "extension\030\003 \001(\0132$.greptime.v1.ColumnData" +
-      "TypeExtension\"\032\n\nDropColumn\022\014\n\004name\030\001 \001(" +
-      "\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\024\n\006FlowId\022\n\n\002id" +
-      "\030\001 \001(\r\"\377\001\n\tColumnDef\022\014\n\004name\030\001 \001(\t\022.\n\tda" +
-      "ta_type\030\002 \001(\0162\033.greptime.v1.ColumnDataTy" +
-      "pe\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_const" +
-      "raint\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162\031.gre" +
-      "ptime.v1.SemanticType\022\017\n\007comment\030\006 \001(\t\022@" +
-      "\n\022datatype_extension\030\007 \001(\0132$.greptime.v1" +
-      ".ColumnDataTypeExtension\"\230\001\n\021AddColumnLo" +
-      "cation\022B\n\rlocation_type\030\001 \001(\0162+.greptime" +
-      ".v1.AddColumnLocation.LocationType\022\031\n\021af" +
-      "ter_column_name\030\002 \001(\t\"$\n\014LocationType\022\t\n" +
-      "\005FIRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime.v1B\003D" +
-      "dlZ5github.com/GreptimeTeam/greptime-pro" +
-      "to/go/greptime/v1b\006proto3"
+      "2\024.greptime.v1.TableId\"U\n\020DropDatabaseEx" +
+      "pr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_name\030" +
+      "\002 \001(\t\022\026\n\016drop_if_exists\030\003 \001(\010\"9\n\nAddColu" +
+      "mns\022+\n\013add_columns\030\001 \003(\0132\026.greptime.v1.A" +
+      "ddColumn\"<\n\013DropColumns\022-\n\014drop_columns\030" +
+      "\001 \003(\0132\027.greptime.v1.DropColumn\"O\n\021Change" +
+      "ColumnTypes\022:\n\023change_column_types\030\001 \003(\013" +
+      "2\035.greptime.v1.ChangeColumnType\"%\n\013Renam" +
+      "eTable\022\026\n\016new_table_name\030\001 \001(\t\"i\n\tAddCol" +
+      "umn\022*\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.Co" +
+      "lumnDef\0220\n\010location\030\003 \001(\0132\036.greptime.v1." +
+      "AddColumnLocation\"\236\001\n\020ChangeColumnType\022\023" +
+      "\n\013column_name\030\001 \001(\t\0220\n\013target_type\030\002 \001(\016" +
+      "2\033.greptime.v1.ColumnDataType\022C\n\025target_" +
+      "type_extension\030\003 \001(\0132$.greptime.v1.Colum" +
+      "nDataTypeExtension\"\032\n\nDropColumn\022\014\n\004name" +
+      "\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\024\n\006FlowId\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.ColumnD" +
+      "ataType\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_" +
+      "constraint\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001(\0162" +
+      "\031.greptime.v1.SemanticType\022\017\n\007comment\030\006 " +
+      "\001(\t\022@\n\022datatype_extension\030\007 \001(\0132$.grepti" +
+      "me.v1.ColumnDataTypeExtension\"\230\001\n\021AddCol" +
+      "umnLocation\022B\n\rlocation_type\030\001 \001(\0162+.gre" +
+      "ptime.v1.AddColumnLocation.LocationType\022" +
+      "\031\n\021after_column_name\030\002 \001(\t\"$\n\014LocationTy" +
+      "pe\022\t\n\005FIRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime." +
+      "v1B\003DdlZ5github.com/GreptimeTeam/greptim" +
+      "e-proto/go/greptime/v1b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -25263,7 +25639,7 @@ java.lang.String defaultValue);
     internal_static_greptime_v1_CreateViewExpr_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_greptime_v1_CreateViewExpr_descriptor,
-        new java.lang.String[] { "CatalogName", "SchemaName", "ViewName", "LogicalPlan", "CreateIfNotExists", "OrReplace", });
+        new java.lang.String[] { "CatalogName", "SchemaName", "ViewName", "LogicalPlan", "CreateIfNotExists", "OrReplace", "TableNames", });
     internal_static_greptime_v1_DropViewExpr_descriptor =
       getDescriptor().getMessageTypes().get(4);
     internal_static_greptime_v1_DropViewExpr_fieldAccessorTable = new
diff --git a/java/src/main/java/substrait_extension/DistPlan.java b/java/src/main/java/substrait_extension/DistPlan.java
new file mode 100644
index 0000000..62ba69e
--- /dev/null
+++ b/java/src/main/java/substrait_extension/DistPlan.java
@@ -0,0 +1,655 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: substrait_extension/dist_plan.proto
+
+package substrait_extension;
+
+public final class DistPlan {
+  private DistPlan() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface MergeScanOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:substrait_extension.MergeScan)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * 
+     * the input logical plan
+     * 
+ * + * bytes input = 1; + * @return The input. + */ + com.google.protobuf.ByteString getInput(); + + /** + *
+     * whether this plan is a placeholder
+     * 
+ * + * bool is_placeholder = 2; + * @return The isPlaceholder. + */ + boolean getIsPlaceholder(); + } + /** + * Protobuf type {@code substrait_extension.MergeScan} + */ + public static final class MergeScan extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:substrait_extension.MergeScan) + MergeScanOrBuilder { + private static final long serialVersionUID = 0L; + // Use MergeScan.newBuilder() to construct. + private MergeScan(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MergeScan() { + input_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MergeScan(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MergeScan( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + + input_ = input.readBytes(); + break; + } + case 16: { + + isPlaceholder_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return substrait_extension.DistPlan.internal_static_substrait_extension_MergeScan_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return substrait_extension.DistPlan.internal_static_substrait_extension_MergeScan_fieldAccessorTable + .ensureFieldAccessorsInitialized( + substrait_extension.DistPlan.MergeScan.class, substrait_extension.DistPlan.MergeScan.Builder.class); + } + + public static final int INPUT_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString input_; + /** + *
+     * the input logical plan
+     * 
+ * + * bytes input = 1; + * @return The input. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInput() { + return input_; + } + + public static final int IS_PLACEHOLDER_FIELD_NUMBER = 2; + private boolean isPlaceholder_; + /** + *
+     * whether this plan is a placeholder
+     * 
+ * + * bool is_placeholder = 2; + * @return The isPlaceholder. + */ + @java.lang.Override + public boolean getIsPlaceholder() { + return isPlaceholder_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!input_.isEmpty()) { + output.writeBytes(1, input_); + } + if (isPlaceholder_ != false) { + output.writeBool(2, isPlaceholder_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!input_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, input_); + } + if (isPlaceholder_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, isPlaceholder_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof substrait_extension.DistPlan.MergeScan)) { + return super.equals(obj); + } + substrait_extension.DistPlan.MergeScan other = (substrait_extension.DistPlan.MergeScan) obj; + + if (!getInput() + .equals(other.getInput())) return false; + if (getIsPlaceholder() + != other.getIsPlaceholder()) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + INPUT_FIELD_NUMBER; + hash = (53 * hash) + getInput().hashCode(); + hash = (37 * hash) + IS_PLACEHOLDER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsPlaceholder()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static substrait_extension.DistPlan.MergeScan parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static substrait_extension.DistPlan.MergeScan parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static substrait_extension.DistPlan.MergeScan parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static substrait_extension.DistPlan.MergeScan parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static substrait_extension.DistPlan.MergeScan parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static substrait_extension.DistPlan.MergeScan parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(substrait_extension.DistPlan.MergeScan prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code substrait_extension.MergeScan} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:substrait_extension.MergeScan) + substrait_extension.DistPlan.MergeScanOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return substrait_extension.DistPlan.internal_static_substrait_extension_MergeScan_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return substrait_extension.DistPlan.internal_static_substrait_extension_MergeScan_fieldAccessorTable + .ensureFieldAccessorsInitialized( + substrait_extension.DistPlan.MergeScan.class, substrait_extension.DistPlan.MergeScan.Builder.class); + } + + // Construct using substrait_extension.DistPlan.MergeScan.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + input_ = com.google.protobuf.ByteString.EMPTY; + + isPlaceholder_ = false; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return substrait_extension.DistPlan.internal_static_substrait_extension_MergeScan_descriptor; + } + + @java.lang.Override + public substrait_extension.DistPlan.MergeScan getDefaultInstanceForType() { + return substrait_extension.DistPlan.MergeScan.getDefaultInstance(); + } + + @java.lang.Override + public substrait_extension.DistPlan.MergeScan build() { + substrait_extension.DistPlan.MergeScan result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public substrait_extension.DistPlan.MergeScan buildPartial() { + substrait_extension.DistPlan.MergeScan result = new substrait_extension.DistPlan.MergeScan(this); + result.input_ = input_; + result.isPlaceholder_ = isPlaceholder_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof substrait_extension.DistPlan.MergeScan) { + return mergeFrom((substrait_extension.DistPlan.MergeScan)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(substrait_extension.DistPlan.MergeScan other) { + if (other == substrait_extension.DistPlan.MergeScan.getDefaultInstance()) return this; + if (other.getInput() != com.google.protobuf.ByteString.EMPTY) { + setInput(other.getInput()); + } + if (other.getIsPlaceholder() != false) { + setIsPlaceholder(other.getIsPlaceholder()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + substrait_extension.DistPlan.MergeScan parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (substrait_extension.DistPlan.MergeScan) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.protobuf.ByteString input_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+       * the input logical plan
+       * 
+ * + * bytes input = 1; + * @return The input. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInput() { + return input_; + } + /** + *
+       * the input logical plan
+       * 
+ * + * bytes input = 1; + * @param value The input to set. + * @return This builder for chaining. + */ + public Builder setInput(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + input_ = value; + onChanged(); + return this; + } + /** + *
+       * the input logical plan
+       * 
+ * + * bytes input = 1; + * @return This builder for chaining. + */ + public Builder clearInput() { + + input_ = getDefaultInstance().getInput(); + onChanged(); + return this; + } + + private boolean isPlaceholder_ ; + /** + *
+       * whether this plan is a placeholder
+       * 
+ * + * bool is_placeholder = 2; + * @return The isPlaceholder. + */ + @java.lang.Override + public boolean getIsPlaceholder() { + return isPlaceholder_; + } + /** + *
+       * whether this plan is a placeholder
+       * 
+ * + * bool is_placeholder = 2; + * @param value The isPlaceholder to set. + * @return This builder for chaining. + */ + public Builder setIsPlaceholder(boolean value) { + + isPlaceholder_ = value; + onChanged(); + return this; + } + /** + *
+       * whether this plan is a placeholder
+       * 
+ * + * bool is_placeholder = 2; + * @return This builder for chaining. + */ + public Builder clearIsPlaceholder() { + + isPlaceholder_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:substrait_extension.MergeScan) + } + + // @@protoc_insertion_point(class_scope:substrait_extension.MergeScan) + private static final substrait_extension.DistPlan.MergeScan DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new substrait_extension.DistPlan.MergeScan(); + } + + public static substrait_extension.DistPlan.MergeScan getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MergeScan parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MergeScan(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public substrait_extension.DistPlan.MergeScan getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_substrait_extension_MergeScan_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_substrait_extension_MergeScan_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n#substrait_extension/dist_plan.proto\022\023s" + + "ubstrait_extension\"2\n\tMergeScan\022\r\n\005input" + + "\030\001 \001(\014\022\026\n\016is_placeholder\030\002 \001(\010B?Z=github" + + ".com/GreptimeTeam/greptime-proto/go/subs" + + "trait_extensionb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_substrait_extension_MergeScan_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_substrait_extension_MergeScan_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_substrait_extension_MergeScan_descriptor, + new java.lang.String[] { "Input", "IsPlaceholder", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/proto/greptime/v1/ddl.proto b/proto/greptime/v1/ddl.proto index a364ad6..7fa181f 100644 --- a/proto/greptime/v1/ddl.proto +++ b/proto/greptime/v1/ddl.proto @@ -71,6 +71,7 @@ message CreateViewExpr { bytes logical_plan = 4; bool create_if_not_exists = 5; bool or_replace = 6; + repeated TableName table_names = 7; } // Drop a view diff --git a/proto/substrait_extension/dist_plan.proto b/proto/substrait_extension/dist_plan.proto new file mode 100644 index 0000000..cbae61f --- /dev/null +++ b/proto/substrait_extension/dist_plan.proto @@ -0,0 +1,26 @@ +// Copyright 2023 Greptime Team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +option go_package = "github.com/GreptimeTeam/greptime-proto/go/substrait_extension"; + +package substrait_extension; + +message MergeScan { + // the input logical plan + bytes input = 1; + // whether this plan is a placeholder + bool is_placeholder = 2; +}