From 4955c41b4e9b34a244f0b1286261c6b8be7cb1e2 Mon Sep 17 00:00:00 2001 From: Vitaly Isaev Date: Tue, 19 Nov 2024 20:53:12 +0000 Subject: [PATCH 1/5] Print stacktrace into logs when panic occures --- app/server/grpc_metrics.go | 16 ++++++++++++---- app/server/service_connector.go | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/server/grpc_metrics.go b/app/server/grpc_metrics.go index 31448b39..fc3fa588 100644 --- a/app/server/grpc_metrics.go +++ b/app/server/grpc_metrics.go @@ -3,8 +3,10 @@ package server import ( "context" "fmt" + "runtime" "time" + "go.uber.org/zap" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -73,7 +75,7 @@ func maybeRegisterStatusCode(statusCount metrics.CounterVec, opName string, stre }).Inc() } -func UnaryServerMetrics(registry metrics.Registry) grpc.UnaryServerInterceptor { +func UnaryServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.UnaryServerInterceptor { requestCount := registry.CounterVec("requests_total", []string{"protocol", "endpoint"}) requestDuration := registry.DurationHistogramVec( "request_duration_seconds", @@ -109,7 +111,10 @@ func UnaryServerMetrics(registry metrics.Registry) grpc.UnaryServerInterceptor { "protocol": "grpc", "endpoint": opName, }).Inc() - panic(p) + + stacktrace := make([]byte, 1024) + runtime.Stack(stacktrace, false) + logger.Error("panic occured", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) } } @@ -146,7 +151,7 @@ func UnaryServerMetrics(registry metrics.Registry) grpc.UnaryServerInterceptor { } } -func StreamServerMetrics(registry metrics.Registry) grpc.StreamServerInterceptor { +func StreamServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.StreamServerInterceptor { streamCount := registry.CounterVec("streams_total", []string{"protocol", "endpoint"}) streamDuration := registry.DurationHistogramVec( "stream_duration_seconds", @@ -187,7 +192,10 @@ func StreamServerMetrics(registry metrics.Registry) grpc.StreamServerInterceptor "protocol": "grpc", "endpoint": opName, }).Inc() - panic(p) + + stacktrace := make([]byte, 1024) + runtime.Stack(stacktrace, false) + logger.Error("panic occured", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) } } diff --git a/app/server/service_connector.go b/app/server/service_connector.go index 1457dec0..9422885a 100644 --- a/app/server/service_connector.go +++ b/app/server/service_connector.go @@ -231,9 +231,9 @@ func makeGRPCOptions(logger *zap.Logger, cfg *config.TServerConfig, registry *so tlsConfig *config.TServerTLSConfig ) - unaryInterceptors := []grpc.UnaryServerInterceptor{UnaryServerMetrics(registry), UnaryServerMetadata(logger)} + unaryInterceptors := []grpc.UnaryServerInterceptor{UnaryServerMetrics(logger, registry), UnaryServerMetadata(logger)} - streamInterceptors := []grpc.StreamServerInterceptor{StreamServerMetrics(registry), StreamServerMetadata(logger)} + streamInterceptors := []grpc.StreamServerInterceptor{StreamServerMetrics(logger, registry), StreamServerMetadata(logger)} opts = append(opts, grpc.ChainUnaryInterceptor(unaryInterceptors...), grpc.ChainStreamInterceptor(streamInterceptors...)) From c17749412b239e2d54a3f38c99d8479a83e1bc27 Mon Sep 17 00:00:00 2001 From: Vitaly Isaev Date: Wed, 20 Nov 2024 08:23:30 +0000 Subject: [PATCH 2/5] Regenerate protobufs and support logging --- api/common/data_source.pb.go | 24 +- api/service/protos/connector.pb.go | 995 ++++++++++++++++++++++------- app/server/service_connector.go | 6 +- common/errors.go | 4 +- 4 files changed, 778 insertions(+), 251 deletions(-) diff --git a/api/common/data_source.pb.go b/api/common/data_source.pb.go index 06ba1712..17d81717 100644 --- a/api/common/data_source.pb.go +++ b/api/common/data_source.pb.go @@ -34,6 +34,7 @@ const ( EDataSourceKind_MS_SQL_SERVER EDataSourceKind = 6 EDataSourceKind_GREENPLUM EDataSourceKind = 7 EDataSourceKind_ORACLE EDataSourceKind = 8 + EDataSourceKind_LOGGING EDataSourceKind = 9 ) // Enum value maps for EDataSourceKind. @@ -48,6 +49,7 @@ var ( 6: "MS_SQL_SERVER", 7: "GREENPLUM", 8: "ORACLE", + 9: "LOGGING", } EDataSourceKind_value = map[string]int32{ "DATA_SOURCE_KIND_UNSPECIFIED": 0, @@ -59,6 +61,7 @@ var ( "MS_SQL_SERVER": 6, "GREENPLUM": 7, "ORACLE": 8, + "LOGGING": 9, } ) @@ -855,7 +858,7 @@ var file_ydb_library_yql_providers_generic_connector_api_common_data_source_prot 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x9d, 0x01, 0x0a, + 0x73, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0xaa, 0x01, 0x0a, 0x0f, 0x45, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, @@ -865,15 +868,16 @@ var file_ydb_library_yql_providers_generic_connector_api_common_data_source_prot 0x42, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x53, 0x5f, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x50, 0x4c, 0x55, 0x4d, 0x10, 0x07, - 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x41, 0x43, 0x4c, 0x45, 0x10, 0x08, 0x2a, 0x3b, 0x0a, 0x09, - 0x45, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x10, 0x02, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x79, 0x64, 0x62, 0x2d, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x66, 0x71, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2d, 0x67, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x41, 0x43, 0x4c, 0x45, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, + 0x4c, 0x4f, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x2a, 0x3b, 0x0a, 0x09, 0x45, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, + 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x48, 0x54, 0x54, 0x50, 0x10, 0x02, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x79, 0x64, 0x62, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2f, 0x66, 0x71, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x67, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/service/protos/connector.pb.go b/api/service/protos/connector.pb.go index 4e81578a..62e6550c 100644 --- a/api/service/protos/connector.pb.go +++ b/api/service/protos/connector.pb.go @@ -236,6 +236,8 @@ const ( TExpression_TArithmeticalExpression_MUL TExpression_TArithmeticalExpression_EOperation = 1 // left_value * right_value TExpression_TArithmeticalExpression_ADD TExpression_TArithmeticalExpression_EOperation = 2 // left_value + right_value TExpression_TArithmeticalExpression_SUB TExpression_TArithmeticalExpression_EOperation = 3 // left_value - right_value + TExpression_TArithmeticalExpression_DIV TExpression_TArithmeticalExpression_EOperation = 7 // left_value / right_value + TExpression_TArithmeticalExpression_MOD TExpression_TArithmeticalExpression_EOperation = 8 // left_value % right_value TExpression_TArithmeticalExpression_BIT_AND TExpression_TArithmeticalExpression_EOperation = 4 // left_value & right_value TExpression_TArithmeticalExpression_BIT_OR TExpression_TArithmeticalExpression_EOperation = 5 // left_value | right_value TExpression_TArithmeticalExpression_BIT_XOR TExpression_TArithmeticalExpression_EOperation = 6 // left_value ^ right_value @@ -248,6 +250,8 @@ var ( 1: "MUL", 2: "ADD", 3: "SUB", + 7: "DIV", + 8: "MOD", 4: "BIT_AND", 5: "BIT_OR", 6: "BIT_XOR", @@ -257,6 +261,8 @@ var ( "MUL": 1, "ADD": 2, "SUB": 3, + "DIV": 7, + "MOD": 8, "BIT_AND": 4, "BIT_OR": 5, "BIT_XOR": 6, @@ -301,6 +307,8 @@ const ( TPredicate_TComparison_NE TPredicate_TComparison_EOperation = 4 // "$column != value" TPredicate_TComparison_GE TPredicate_TComparison_EOperation = 5 // "$column >= value" TPredicate_TComparison_G TPredicate_TComparison_EOperation = 6 // "$column > value" + TPredicate_TComparison_IND TPredicate_TComparison_EOperation = 7 // "$column IS NOT DISTINCT value" + TPredicate_TComparison_ID TPredicate_TComparison_EOperation = 8 // "$column IS DISTINCT value" ) // Enum value maps for TPredicate_TComparison_EOperation. @@ -313,6 +321,8 @@ var ( 4: "NE", 5: "GE", 6: "G", + 7: "IND", + 8: "ID", } TPredicate_TComparison_EOperation_value = map[string]int32{ "COMPARISON_OPERATION_UNSPECIFIED": 0, @@ -322,6 +332,8 @@ var ( "NE": 4, "GE": 5, "G": 6, + "IND": 7, + "ID": 8, } ) @@ -349,7 +361,7 @@ func (x TPredicate_TComparison_EOperation) Number() protoreflect.EnumNumber { // Deprecated: Use TPredicate_TComparison_EOperation.Descriptor instead. func (TPredicate_TComparison_EOperation) EnumDescriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 8, 0} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 10, 0} } // TListTablesRequest requests the list of tables in a particular database of the data source @@ -1342,7 +1354,7 @@ type TContinuation_Description struct { func (*TContinuation_Description) isTContinuation_Payload() {} -// Expression with value +// Expression with value (value can be expression of any type) // Can be a column, a constant or a result of, for example, // some arithmetical operation type TExpression struct { @@ -1356,6 +1368,8 @@ type TExpression struct { // *TExpression_Column // *TExpression_ArithmeticalExpression // *TExpression_Null + // *TExpression_Coalesce + // *TExpression_If Payload isTExpression_Payload `protobuf_oneof:"payload"` } @@ -1426,6 +1440,20 @@ func (x *TExpression) GetNull() *TExpression_TNull { return nil } +func (x *TExpression) GetCoalesce() *TExpression_TCoalesce { + if x, ok := x.GetPayload().(*TExpression_Coalesce); ok { + return x.Coalesce + } + return nil +} + +func (x *TExpression) GetIf() *TExpression_TIf { + if x, ok := x.GetPayload().(*TExpression_If); ok { + return x.If + } + return nil +} + type isTExpression_Payload interface { isTExpression_Payload() } @@ -1448,6 +1476,14 @@ type TExpression_Null struct { Null *TExpression_TNull `protobuf:"bytes,4,opt,name=null,proto3,oneof"` } +type TExpression_Coalesce struct { + Coalesce *TExpression_TCoalesce `protobuf:"bytes,5,opt,name=coalesce,proto3,oneof"` +} + +type TExpression_If struct { + If *TExpression_TIf `protobuf:"bytes,6,opt,name=if,proto3,oneof"` +} + func (*TExpression_TypedValue) isTExpression_Payload() {} func (*TExpression_Column) isTExpression_Payload() {} @@ -1456,7 +1492,11 @@ func (*TExpression_ArithmeticalExpression) isTExpression_Payload() {} func (*TExpression_Null) isTExpression_Payload() {} -// Predicate +func (*TExpression_Coalesce) isTExpression_Payload() {} + +func (*TExpression_If) isTExpression_Payload() {} + +// Predicate (use this types only for bool expressions) type TPredicate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1473,6 +1513,9 @@ type TPredicate struct { // *TPredicate_IsNotNull // *TPredicate_Comparison // *TPredicate_BoolExpression + // *TPredicate_Coalesce + // *TPredicate_If + // *TPredicate_Regexp Payload isTPredicate_Payload `protobuf_oneof:"payload"` } @@ -1578,6 +1621,27 @@ func (x *TPredicate) GetBoolExpression() *TPredicate_TBoolExpression { return nil } +func (x *TPredicate) GetCoalesce() *TPredicate_TCoalesce { + if x, ok := x.GetPayload().(*TPredicate_Coalesce); ok { + return x.Coalesce + } + return nil +} + +func (x *TPredicate) GetIf() *TPredicate_TIf { + if x, ok := x.GetPayload().(*TPredicate_If); ok { + return x.If + } + return nil +} + +func (x *TPredicate) GetRegexp() *TPredicate_TRegexp { + if x, ok := x.GetPayload().(*TPredicate_Regexp); ok { + return x.Regexp + } + return nil +} + type isTPredicate_Payload interface { isTPredicate_Payload() } @@ -1618,6 +1682,18 @@ type TPredicate_BoolExpression struct { BoolExpression *TPredicate_TBoolExpression `protobuf:"bytes,9,opt,name=bool_expression,json=boolExpression,proto3,oneof"` } +type TPredicate_Coalesce struct { + Coalesce *TPredicate_TCoalesce `protobuf:"bytes,10,opt,name=coalesce,proto3,oneof"` +} + +type TPredicate_If struct { + If *TPredicate_TIf `protobuf:"bytes,11,opt,name=if,proto3,oneof"` +} + +type TPredicate_Regexp struct { + Regexp *TPredicate_TRegexp `protobuf:"bytes,12,opt,name=regexp,proto3,oneof"` +} + func (*TPredicate_Negation) isTPredicate_Payload() {} func (*TPredicate_Conjunction) isTPredicate_Payload() {} @@ -1636,6 +1712,12 @@ func (*TPredicate_Comparison) isTPredicate_Payload() {} func (*TPredicate_BoolExpression) isTPredicate_Payload() {} +func (*TPredicate_Coalesce) isTPredicate_Payload() {} + +func (*TPredicate_If) isTPredicate_Payload() {} + +func (*TPredicate_Regexp) isTPredicate_Payload() {} + // Special type to describe the result of any operation type TError struct { state protoimpl.MessageState @@ -2308,6 +2390,120 @@ func (x *TExpression_TArithmeticalExpression) GetRightValue() *TExpression { return nil } +// "COALESCE($expression_1, $expression_2, ..., $expression_n)" +type TExpression_TCoalesce struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operands []*TExpression `protobuf:"bytes,1,rep,name=operands,proto3" json:"operands,omitempty"` +} + +func (x *TExpression_TCoalesce) Reset() { + *x = TExpression_TCoalesce{} + if protoimpl.UnsafeEnabled { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TExpression_TCoalesce) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TExpression_TCoalesce) ProtoMessage() {} + +func (x *TExpression_TCoalesce) ProtoReflect() protoreflect.Message { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[26] + 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 TExpression_TCoalesce.ProtoReflect.Descriptor instead. +func (*TExpression_TCoalesce) Descriptor() ([]byte, []int) { + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{13, 1} +} + +func (x *TExpression_TCoalesce) GetOperands() []*TExpression { + if x != nil { + return x.Operands + } + return nil +} + +// "IF($predicate, $then_expression, $else_expression)" +// Example predicate: +// WHERE IF($A IS NOT NULL, $A, $B) + $B = 0 +type TExpression_TIf struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Predicate *TPredicate `protobuf:"bytes,1,opt,name=predicate,proto3" json:"predicate,omitempty"` + ThenExpression *TExpression `protobuf:"bytes,2,opt,name=then_expression,json=thenExpression,proto3" json:"then_expression,omitempty"` + ElseExpression *TExpression `protobuf:"bytes,3,opt,name=else_expression,json=elseExpression,proto3" json:"else_expression,omitempty"` +} + +func (x *TExpression_TIf) Reset() { + *x = TExpression_TIf{} + if protoimpl.UnsafeEnabled { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TExpression_TIf) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TExpression_TIf) ProtoMessage() {} + +func (x *TExpression_TIf) ProtoReflect() protoreflect.Message { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[27] + 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 TExpression_TIf.ProtoReflect.Descriptor instead. +func (*TExpression_TIf) Descriptor() ([]byte, []int) { + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{13, 2} +} + +func (x *TExpression_TIf) GetPredicate() *TPredicate { + if x != nil { + return x.Predicate + } + return nil +} + +func (x *TExpression_TIf) GetThenExpression() *TExpression { + if x != nil { + return x.ThenExpression + } + return nil +} + +func (x *TExpression_TIf) GetElseExpression() *TExpression { + if x != nil { + return x.ElseExpression + } + return nil +} + type TExpression_TNull struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2317,7 +2513,7 @@ type TExpression_TNull struct { func (x *TExpression_TNull) Reset() { *x = TExpression_TNull{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[26] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2330,7 +2526,7 @@ func (x *TExpression_TNull) String() string { func (*TExpression_TNull) ProtoMessage() {} func (x *TExpression_TNull) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[26] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2343,7 +2539,7 @@ func (x *TExpression_TNull) ProtoReflect() protoreflect.Message { // Deprecated: Use TExpression_TNull.ProtoReflect.Descriptor instead. func (*TExpression_TNull) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{13, 1} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{13, 3} } // NOT @@ -2358,7 +2554,7 @@ type TPredicate_TNegation struct { func (x *TPredicate_TNegation) Reset() { *x = TPredicate_TNegation{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[27] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2371,7 +2567,7 @@ func (x *TPredicate_TNegation) String() string { func (*TPredicate_TNegation) ProtoMessage() {} func (x *TPredicate_TNegation) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[27] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2406,7 +2602,7 @@ type TPredicate_TConjunction struct { func (x *TPredicate_TConjunction) Reset() { *x = TPredicate_TConjunction{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[28] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2419,7 +2615,7 @@ func (x *TPredicate_TConjunction) String() string { func (*TPredicate_TConjunction) ProtoMessage() {} func (x *TPredicate_TConjunction) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[28] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2454,7 +2650,7 @@ type TPredicate_TDisjunction struct { func (x *TPredicate_TDisjunction) Reset() { *x = TPredicate_TDisjunction{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[29] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2467,7 +2663,7 @@ func (x *TPredicate_TDisjunction) String() string { func (*TPredicate_TDisjunction) ProtoMessage() {} func (x *TPredicate_TDisjunction) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[29] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2490,6 +2686,120 @@ func (x *TPredicate_TDisjunction) GetOperands() []*TPredicate { return nil } +// "COALESCE($predicate_1, $predicate_2, ..., $predicate_n)" +type TPredicate_TCoalesce struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Operands []*TPredicate `protobuf:"bytes,1,rep,name=operands,proto3" json:"operands,omitempty"` +} + +func (x *TPredicate_TCoalesce) Reset() { + *x = TPredicate_TCoalesce{} + if protoimpl.UnsafeEnabled { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TPredicate_TCoalesce) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TPredicate_TCoalesce) ProtoMessage() {} + +func (x *TPredicate_TCoalesce) ProtoReflect() protoreflect.Message { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[32] + 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 TPredicate_TCoalesce.ProtoReflect.Descriptor instead. +func (*TPredicate_TCoalesce) Descriptor() ([]byte, []int) { + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 3} +} + +func (x *TPredicate_TCoalesce) GetOperands() []*TPredicate { + if x != nil { + return x.Operands + } + return nil +} + +// "IF($predicate, $then_predicate, $else_predicate)" +// Example predicate: +// WHERE IF($A IS NOT NULL, $A + $B = 0, $B = 0) +type TPredicate_TIf struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Predicate *TPredicate `protobuf:"bytes,1,opt,name=predicate,proto3" json:"predicate,omitempty"` + ThenPredicate *TPredicate `protobuf:"bytes,2,opt,name=then_predicate,json=thenPredicate,proto3" json:"then_predicate,omitempty"` + ElsePredicate *TPredicate `protobuf:"bytes,3,opt,name=else_predicate,json=elsePredicate,proto3" json:"else_predicate,omitempty"` +} + +func (x *TPredicate_TIf) Reset() { + *x = TPredicate_TIf{} + if protoimpl.UnsafeEnabled { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TPredicate_TIf) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TPredicate_TIf) ProtoMessage() {} + +func (x *TPredicate_TIf) ProtoReflect() protoreflect.Message { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[33] + 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 TPredicate_TIf.ProtoReflect.Descriptor instead. +func (*TPredicate_TIf) Descriptor() ([]byte, []int) { + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 4} +} + +func (x *TPredicate_TIf) GetPredicate() *TPredicate { + if x != nil { + return x.Predicate + } + return nil +} + +func (x *TPredicate_TIf) GetThenPredicate() *TPredicate { + if x != nil { + return x.ThenPredicate + } + return nil +} + +func (x *TPredicate_TIf) GetElsePredicate() *TPredicate { + if x != nil { + return x.ElsePredicate + } + return nil +} + // "$column BETWEEN $least AND $greatest" type TPredicate_TBetween struct { state protoimpl.MessageState @@ -2504,7 +2814,7 @@ type TPredicate_TBetween struct { func (x *TPredicate_TBetween) Reset() { *x = TPredicate_TBetween{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[30] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2517,7 +2827,7 @@ func (x *TPredicate_TBetween) String() string { func (*TPredicate_TBetween) ProtoMessage() {} func (x *TPredicate_TBetween) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[30] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2530,7 +2840,7 @@ func (x *TPredicate_TBetween) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TBetween.ProtoReflect.Descriptor instead. func (*TPredicate_TBetween) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 3} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 5} } func (x *TPredicate_TBetween) GetValue() *TExpression { @@ -2567,7 +2877,7 @@ type TPredicate_TIn struct { func (x *TPredicate_TIn) Reset() { *x = TPredicate_TIn{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[31] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2580,7 +2890,7 @@ func (x *TPredicate_TIn) String() string { func (*TPredicate_TIn) ProtoMessage() {} func (x *TPredicate_TIn) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[31] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2593,7 +2903,7 @@ func (x *TPredicate_TIn) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TIn.ProtoReflect.Descriptor instead. func (*TPredicate_TIn) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 4} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 6} } func (x *TPredicate_TIn) GetValue() *TExpression { @@ -2622,7 +2932,7 @@ type TPredicate_TIsNull struct { func (x *TPredicate_TIsNull) Reset() { *x = TPredicate_TIsNull{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[32] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2635,7 +2945,7 @@ func (x *TPredicate_TIsNull) String() string { func (*TPredicate_TIsNull) ProtoMessage() {} func (x *TPredicate_TIsNull) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[32] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2648,7 +2958,7 @@ func (x *TPredicate_TIsNull) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TIsNull.ProtoReflect.Descriptor instead. func (*TPredicate_TIsNull) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 5} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 7} } func (x *TPredicate_TIsNull) GetValue() *TExpression { @@ -2671,7 +2981,7 @@ type TPredicate_TIsNotNull struct { func (x *TPredicate_TIsNotNull) Reset() { *x = TPredicate_TIsNotNull{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[33] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2684,7 +2994,7 @@ func (x *TPredicate_TIsNotNull) String() string { func (*TPredicate_TIsNotNull) ProtoMessage() {} func (x *TPredicate_TIsNotNull) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[33] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2697,7 +3007,7 @@ func (x *TPredicate_TIsNotNull) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TIsNotNull.ProtoReflect.Descriptor instead. func (*TPredicate_TIsNotNull) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 6} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 8} } func (x *TPredicate_TIsNotNull) GetValue() *TExpression { @@ -2720,7 +3030,7 @@ type TPredicate_TBoolExpression struct { func (x *TPredicate_TBoolExpression) Reset() { *x = TPredicate_TBoolExpression{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[34] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2733,7 +3043,7 @@ func (x *TPredicate_TBoolExpression) String() string { func (*TPredicate_TBoolExpression) ProtoMessage() {} func (x *TPredicate_TBoolExpression) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[34] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2746,7 +3056,7 @@ func (x *TPredicate_TBoolExpression) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TBoolExpression.ProtoReflect.Descriptor instead. func (*TPredicate_TBoolExpression) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 7} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 9} } func (x *TPredicate_TBoolExpression) GetValue() *TExpression { @@ -2770,7 +3080,7 @@ type TPredicate_TComparison struct { func (x *TPredicate_TComparison) Reset() { *x = TPredicate_TComparison{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[35] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2783,7 +3093,7 @@ func (x *TPredicate_TComparison) String() string { func (*TPredicate_TComparison) ProtoMessage() {} func (x *TPredicate_TComparison) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[35] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2796,7 +3106,7 @@ func (x *TPredicate_TComparison) ProtoReflect() protoreflect.Message { // Deprecated: Use TPredicate_TComparison.ProtoReflect.Descriptor instead. func (*TPredicate_TComparison) Descriptor() ([]byte, []int) { - return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 8} + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 10} } func (x *TPredicate_TComparison) GetOperation() TPredicate_TComparison_EOperation { @@ -2820,6 +3130,62 @@ func (x *TPredicate_TComparison) GetRightValue() *TExpression { return nil } +// "$column REGEXP $pattern" +type TPredicate_TRegexp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *TExpression `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Pattern *TExpression `protobuf:"bytes,2,opt,name=pattern,proto3" json:"pattern,omitempty"` +} + +func (x *TPredicate_TRegexp) Reset() { + *x = TPredicate_TRegexp{} + if protoimpl.UnsafeEnabled { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TPredicate_TRegexp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TPredicate_TRegexp) ProtoMessage() {} + +func (x *TPredicate_TRegexp) ProtoReflect() protoreflect.Message { + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[40] + 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 TPredicate_TRegexp.ProtoReflect.Descriptor instead. +func (*TPredicate_TRegexp) Descriptor() ([]byte, []int) { + return file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDescGZIP(), []int{14, 11} +} + +func (x *TPredicate_TRegexp) GetValue() *TExpression { + if x != nil { + return x.Value + } + return nil +} + +func (x *TPredicate_TRegexp) GetPattern() *TExpression { + if x != nil { + return x.Pattern + } + return nil +} + type TAst_TList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2831,7 +3197,7 @@ type TAst_TList struct { func (x *TAst_TList) Reset() { *x = TAst_TList{} if protoimpl.UnsafeEnabled { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[36] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2844,7 +3210,7 @@ func (x *TAst_TList) String() string { func (*TAst_TList) ProtoMessage() {} func (x *TAst_TList) ProtoReflect() protoreflect.Message { - mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[36] + mi := &file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3103,7 +3469,7 @@ var file_ydb_library_yql_providers_generic_connector_api_service_protos_connecto 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9f, 0x05, 0x0a, 0x0b, 0x54, 0x45, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xe2, 0x08, 0x0a, 0x0b, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x59, 0x64, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, @@ -3120,128 +3486,22 @@ var file_ydb_library_yql_providers_generic_connector_api_service_protos_connecto 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, - 0x4e, 0x75, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x1a, 0xf8, 0x02, 0x0a, - 0x17, 0x54, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x4e, 0x59, - 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, - 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, - 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0a, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x42, - 0x0a, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x73, 0x0a, 0x0a, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x55, 0x4c, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x55, 0x42, 0x10, - 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x49, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x0a, - 0x0a, 0x06, 0x42, 0x49, 0x54, 0x5f, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x49, - 0x54, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x06, 0x1a, 0x07, 0x0a, 0x05, 0x54, 0x4e, 0x75, 0x6c, 0x6c, - 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x85, 0x0e, 0x0a, 0x0a, - 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x6e, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x4e, - 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, - 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, - 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x4e, 0x59, 0x71, 0x6c, - 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, - 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x43, 0x6f, 0x6e, - 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6a, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6a, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x4e, - 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, - 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, - 0x44, 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x64, - 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x65, - 0x74, 0x77, 0x65, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x4e, 0x59, - 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, - 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x42, - 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, - 0x6e, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, - 0x54, 0x49, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x43, 0x0a, 0x07, 0x69, 0x73, 0x5f, - 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x4e, 0x59, 0x71, - 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, - 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x49, 0x73, - 0x4e, 0x75, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x69, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x4d, - 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, - 0x48, 0x00, 0x52, 0x09, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x4e, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x2e, 0x54, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, - 0x0f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x6c, - 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x47, 0x0a, 0x09, 0x54, 0x4e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, - 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, - 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x6e, 0x64, 0x1a, 0x4c, 0x0a, 0x0c, 0x54, 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, - 0x73, 0x1a, 0x4c, 0x0a, 0x0c, 0x54, 0x44, 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x1a, - 0xbb, 0x01, 0x0a, 0x08, 0x54, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, - 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, - 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x12, 0x3d, - 0x0a, 0x08, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x73, 0x0a, - 0x03, 0x54, 0x49, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, - 0x03, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, - 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, - 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x73, - 0x65, 0x74, 0x1a, 0x42, 0x0a, 0x07, 0x54, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x37, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, - 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, - 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x45, 0x0a, 0x0a, 0x54, 0x49, 0x73, 0x4e, 0x6f, 0x74, - 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, + 0x4e, 0x75, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x49, 0x0a, 0x08, + 0x63, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x54, 0x43, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x63, + 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x02, 0x69, 0x66, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, - 0x0f, 0x54, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x49, 0x66, 0x48, 0x00, 0x52, 0x02, 0x69, 0x66, + 0x1a, 0x8b, 0x03, 0x0a, 0x17, 0x54, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x44, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xcc, 0x02, 0x0a, 0x0b, 0x54, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x09, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x4e, - 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, - 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, - 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x45, 0x4f, 0x70, 0x65, 0x72, + 0x6f, 0x6e, 0x2e, 0x54, 0x41, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, @@ -3251,13 +3511,187 @@ var file_ydb_library_yql_providers_generic_connector_api_service_protos_connecto 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x60, 0x0a, 0x0a, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, - 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x4c, 0x10, - 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, - 0x03, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, - 0x05, 0x12, 0x05, 0x0a, 0x01, 0x47, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0a, 0x45, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, + 0x55, 0x4c, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x55, 0x42, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x56, 0x10, 0x07, 0x12, + 0x07, 0x0a, 0x03, 0x4d, 0x4f, 0x44, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x49, 0x54, 0x5f, + 0x41, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x54, 0x5f, 0x4f, 0x52, 0x10, + 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x49, 0x54, 0x5f, 0x58, 0x4f, 0x52, 0x10, 0x06, 0x1a, 0x4a, + 0x0a, 0x09, 0x54, 0x43, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x1a, 0xdd, 0x01, 0x0a, 0x03, 0x54, + 0x49, 0x66, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x74, 0x68, 0x65, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, + 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, + 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, + 0x74, 0x68, 0x65, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, + 0x0a, 0x0f, 0x65, 0x6c, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x65, 0x6c, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x07, 0x0a, 0x05, 0x54, 0x4e, + 0x75, 0x6c, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x82, + 0x13, 0x0a, 0x0a, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, + 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x2e, 0x54, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6a, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x4e, + 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, + 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, + 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0b, 0x64, 0x69, + 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x2e, 0x54, 0x44, 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, + 0x07, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x2e, 0x54, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x62, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x2e, 0x54, 0x49, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x43, 0x0a, 0x07, + 0x69, 0x73, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, + 0x54, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x06, 0x69, 0x73, 0x4e, 0x75, 0x6c, + 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x4e, + 0x75, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, + 0x12, 0x5b, 0x0a, 0x0f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x4e, 0x59, 0x71, 0x6c, + 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, + 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x42, 0x6f, 0x6f, + 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x62, + 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, + 0x08, 0x63, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x2e, 0x54, 0x43, 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x63, + 0x6f, 0x61, 0x6c, 0x65, 0x73, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x66, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x49, 0x66, 0x48, 0x00, 0x52, 0x02, 0x69, 0x66, 0x12, + 0x42, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x2e, 0x54, 0x52, 0x65, 0x67, 0x65, 0x78, 0x70, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x67, + 0x65, 0x78, 0x70, 0x1a, 0x47, 0x0a, 0x09, 0x54, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x1a, 0x4c, 0x0a, 0x0c, + 0x54, 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x1a, 0x4c, 0x0a, 0x0c, 0x54, 0x44, + 0x69, 0x73, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, + 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, + 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x73, 0x1a, 0x49, 0x0a, 0x09, 0x54, 0x43, 0x6f, 0x61, + 0x6c, 0x65, 0x73, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x6e, 0x64, 0x73, 0x1a, 0xd7, 0x01, 0x0a, 0x03, 0x54, 0x49, 0x66, 0x12, 0x3e, 0x0a, 0x09, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x74, + 0x68, 0x65, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x74, 0x68, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x65, 0x6c, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4e, + 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, + 0x41, 0x70, 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0d, + 0x65, 0x6c, 0x73, 0x65, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0xbb, 0x01, + 0x0a, 0x08, 0x54, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, + 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, + 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x08, + 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x67, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x73, 0x0a, 0x03, 0x54, + 0x49, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x03, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, + 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, + 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x73, 0x65, 0x74, + 0x1a, 0x42, 0x0a, 0x07, 0x54, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, + 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, + 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x45, 0x0a, 0x0a, 0x54, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x0f, 0x54, + 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xdd, 0x02, 0x0a, 0x0b, 0x54, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x4e, 0x59, 0x71, + 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, + 0x69, 0x2e, 0x54, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, + 0x0a, 0x0a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x42, 0x0a, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x71, 0x0a, 0x0a, 0x45, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, + 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x4c, 0x10, 0x01, 0x12, + 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x03, 0x12, + 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x05, 0x12, + 0x05, 0x0a, 0x01, 0x47, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x44, 0x10, 0x07, 0x12, + 0x06, 0x0a, 0x02, 0x49, 0x44, 0x10, 0x08, 0x1a, 0x7f, 0x0a, 0x07, 0x54, 0x52, 0x65, 0x67, 0x65, + 0x78, 0x70, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x4e, 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x4e, 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x70, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4e, + 0x59, 0x71, 0x6c, 0x2e, 0x4e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x4e, + 0x41, 0x70, 0x69, 0x2e, 0x54, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x54, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x59, 0x64, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x64, 0x73, 0x2e, 0x53, @@ -3302,7 +3736,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } var file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_goTypes = []interface{}{ (EDateTimeFormat)(0), // 0: NYql.NConnector.NApi.EDateTimeFormat (TReadSplitsRequest_EMode)(0), // 1: NYql.NConnector.NApi.TReadSplitsRequest.EMode @@ -3336,44 +3770,49 @@ var file_ydb_library_yql_providers_generic_connector_api_service_protos_connecto (*TReadSplitsResponse_TStats)(nil), // 29: NYql.NConnector.NApi.TReadSplitsResponse.TStats (*TReadSplitsResponse_TColumnSet_TColumn)(nil), // 30: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.TColumn (*TExpression_TArithmeticalExpression)(nil), // 31: NYql.NConnector.NApi.TExpression.TArithmeticalExpression - (*TExpression_TNull)(nil), // 32: NYql.NConnector.NApi.TExpression.TNull - (*TPredicate_TNegation)(nil), // 33: NYql.NConnector.NApi.TPredicate.TNegation - (*TPredicate_TConjunction)(nil), // 34: NYql.NConnector.NApi.TPredicate.TConjunction - (*TPredicate_TDisjunction)(nil), // 35: NYql.NConnector.NApi.TPredicate.TDisjunction - (*TPredicate_TBetween)(nil), // 36: NYql.NConnector.NApi.TPredicate.TBetween - (*TPredicate_TIn)(nil), // 37: NYql.NConnector.NApi.TPredicate.TIn - (*TPredicate_TIsNull)(nil), // 38: NYql.NConnector.NApi.TPredicate.TIsNull - (*TPredicate_TIsNotNull)(nil), // 39: NYql.NConnector.NApi.TPredicate.TIsNotNull - (*TPredicate_TBoolExpression)(nil), // 40: NYql.NConnector.NApi.TPredicate.TBoolExpression - (*TPredicate_TComparison)(nil), // 41: NYql.NConnector.NApi.TPredicate.TComparison - (*TAst_TList)(nil), // 42: NYql.NConnector.NApi.TAst.TList - (*common.TDataSourceInstance)(nil), // 43: NYql.NConnector.NApi.TDataSourceInstance - (*Ydb.Column)(nil), // 44: Ydb.Column - (*Ydb.TypedValue)(nil), // 45: Ydb.TypedValue - (Ydb.StatusIds_StatusCode)(0), // 46: Ydb.StatusIds.StatusCode - (*Ydb_Issue.IssueMessage)(nil), // 47: Ydb.Issue.IssueMessage - (*Ydb.Value)(nil), // 48: Ydb.Value + (*TExpression_TCoalesce)(nil), // 32: NYql.NConnector.NApi.TExpression.TCoalesce + (*TExpression_TIf)(nil), // 33: NYql.NConnector.NApi.TExpression.TIf + (*TExpression_TNull)(nil), // 34: NYql.NConnector.NApi.TExpression.TNull + (*TPredicate_TNegation)(nil), // 35: NYql.NConnector.NApi.TPredicate.TNegation + (*TPredicate_TConjunction)(nil), // 36: NYql.NConnector.NApi.TPredicate.TConjunction + (*TPredicate_TDisjunction)(nil), // 37: NYql.NConnector.NApi.TPredicate.TDisjunction + (*TPredicate_TCoalesce)(nil), // 38: NYql.NConnector.NApi.TPredicate.TCoalesce + (*TPredicate_TIf)(nil), // 39: NYql.NConnector.NApi.TPredicate.TIf + (*TPredicate_TBetween)(nil), // 40: NYql.NConnector.NApi.TPredicate.TBetween + (*TPredicate_TIn)(nil), // 41: NYql.NConnector.NApi.TPredicate.TIn + (*TPredicate_TIsNull)(nil), // 42: NYql.NConnector.NApi.TPredicate.TIsNull + (*TPredicate_TIsNotNull)(nil), // 43: NYql.NConnector.NApi.TPredicate.TIsNotNull + (*TPredicate_TBoolExpression)(nil), // 44: NYql.NConnector.NApi.TPredicate.TBoolExpression + (*TPredicate_TComparison)(nil), // 45: NYql.NConnector.NApi.TPredicate.TComparison + (*TPredicate_TRegexp)(nil), // 46: NYql.NConnector.NApi.TPredicate.TRegexp + (*TAst_TList)(nil), // 47: NYql.NConnector.NApi.TAst.TList + (*common.TDataSourceInstance)(nil), // 48: NYql.NConnector.NApi.TDataSourceInstance + (*Ydb.Column)(nil), // 49: Ydb.Column + (*Ydb.TypedValue)(nil), // 50: Ydb.TypedValue + (Ydb.StatusIds_StatusCode)(0), // 51: Ydb.StatusIds.StatusCode + (*Ydb_Issue.IssueMessage)(nil), // 52: Ydb.Issue.IssueMessage + (*Ydb.Value)(nil), // 53: Ydb.Value } var file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_depIdxs = []int32{ - 43, // 0: NYql.NConnector.NApi.TListTablesRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance + 48, // 0: NYql.NConnector.NApi.TListTablesRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance 21, // 1: NYql.NConnector.NApi.TListTablesResponse.error:type_name -> NYql.NConnector.NApi.TError - 43, // 2: NYql.NConnector.NApi.TDescribeTableRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance + 48, // 2: NYql.NConnector.NApi.TDescribeTableRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance 9, // 3: NYql.NConnector.NApi.TDescribeTableRequest.type_mapping_settings:type_name -> NYql.NConnector.NApi.TTypeMappingSettings 0, // 4: NYql.NConnector.NApi.TTypeMappingSettings.date_time_format:type_name -> NYql.NConnector.NApi.EDateTimeFormat 11, // 5: NYql.NConnector.NApi.TDescribeTableResponse.schema:type_name -> NYql.NConnector.NApi.TSchema 21, // 6: NYql.NConnector.NApi.TDescribeTableResponse.error:type_name -> NYql.NConnector.NApi.TError - 44, // 7: NYql.NConnector.NApi.TSchema.columns:type_name -> Ydb.Column + 49, // 7: NYql.NConnector.NApi.TSchema.columns:type_name -> Ydb.Column 14, // 8: NYql.NConnector.NApi.TListSplitsRequest.selects:type_name -> NYql.NConnector.NApi.TSelect 15, // 9: NYql.NConnector.NApi.TListSplitsResponse.splits:type_name -> NYql.NConnector.NApi.TSplit 21, // 10: NYql.NConnector.NApi.TListSplitsResponse.error:type_name -> NYql.NConnector.NApi.TError - 43, // 11: NYql.NConnector.NApi.TSelect.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance + 48, // 11: NYql.NConnector.NApi.TSelect.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance 23, // 12: NYql.NConnector.NApi.TSelect.what:type_name -> NYql.NConnector.NApi.TSelect.TWhat 24, // 13: NYql.NConnector.NApi.TSelect.from:type_name -> NYql.NConnector.NApi.TSelect.TFrom 25, // 14: NYql.NConnector.NApi.TSelect.where:type_name -> NYql.NConnector.NApi.TSelect.TWhere 26, // 15: NYql.NConnector.NApi.TSelect.limit:type_name -> NYql.NConnector.NApi.TSelect.TLimit 11, // 16: NYql.NConnector.NApi.TSelect.predefined_schema:type_name -> NYql.NConnector.NApi.TSchema 14, // 17: NYql.NConnector.NApi.TSplit.select:type_name -> NYql.NConnector.NApi.TSelect - 43, // 18: NYql.NConnector.NApi.TReadSplitsRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance + 48, // 18: NYql.NConnector.NApi.TReadSplitsRequest.data_source_instance:type_name -> NYql.NConnector.NApi.TDataSourceInstance 15, // 19: NYql.NConnector.NApi.TReadSplitsRequest.splits:type_name -> NYql.NConnector.NApi.TSplit 1, // 20: NYql.NConnector.NApi.TReadSplitsRequest.mode:type_name -> NYql.NConnector.NApi.TReadSplitsRequest.EMode 2, // 21: NYql.NConnector.NApi.TReadSplitsRequest.format:type_name -> NYql.NConnector.NApi.TReadSplitsRequest.EFormat @@ -3383,51 +3822,66 @@ var file_ydb_library_yql_providers_generic_connector_api_service_protos_connecto 18, // 25: NYql.NConnector.NApi.TReadSplitsResponse.continuation:type_name -> NYql.NConnector.NApi.TContinuation 29, // 26: NYql.NConnector.NApi.TReadSplitsResponse.stats:type_name -> NYql.NConnector.NApi.TReadSplitsResponse.TStats 21, // 27: NYql.NConnector.NApi.TReadSplitsResponse.error:type_name -> NYql.NConnector.NApi.TError - 45, // 28: NYql.NConnector.NApi.TExpression.typed_value:type_name -> Ydb.TypedValue + 50, // 28: NYql.NConnector.NApi.TExpression.typed_value:type_name -> Ydb.TypedValue 31, // 29: NYql.NConnector.NApi.TExpression.arithmetical_expression:type_name -> NYql.NConnector.NApi.TExpression.TArithmeticalExpression - 32, // 30: NYql.NConnector.NApi.TExpression.null:type_name -> NYql.NConnector.NApi.TExpression.TNull - 33, // 31: NYql.NConnector.NApi.TPredicate.negation:type_name -> NYql.NConnector.NApi.TPredicate.TNegation - 34, // 32: NYql.NConnector.NApi.TPredicate.conjunction:type_name -> NYql.NConnector.NApi.TPredicate.TConjunction - 35, // 33: NYql.NConnector.NApi.TPredicate.disjunction:type_name -> NYql.NConnector.NApi.TPredicate.TDisjunction - 36, // 34: NYql.NConnector.NApi.TPredicate.between:type_name -> NYql.NConnector.NApi.TPredicate.TBetween - 37, // 35: NYql.NConnector.NApi.TPredicate.in:type_name -> NYql.NConnector.NApi.TPredicate.TIn - 38, // 36: NYql.NConnector.NApi.TPredicate.is_null:type_name -> NYql.NConnector.NApi.TPredicate.TIsNull - 39, // 37: NYql.NConnector.NApi.TPredicate.is_not_null:type_name -> NYql.NConnector.NApi.TPredicate.TIsNotNull - 41, // 38: NYql.NConnector.NApi.TPredicate.comparison:type_name -> NYql.NConnector.NApi.TPredicate.TComparison - 40, // 39: NYql.NConnector.NApi.TPredicate.bool_expression:type_name -> NYql.NConnector.NApi.TPredicate.TBoolExpression - 46, // 40: NYql.NConnector.NApi.TError.status:type_name -> Ydb.StatusIds.StatusCode - 47, // 41: NYql.NConnector.NApi.TError.issues:type_name -> Ydb.Issue.IssueMessage - 42, // 42: NYql.NConnector.NApi.TAst.list:type_name -> NYql.NConnector.NApi.TAst.TList - 27, // 43: NYql.NConnector.NApi.TSelect.TWhat.items:type_name -> NYql.NConnector.NApi.TSelect.TWhat.TItem - 20, // 44: NYql.NConnector.NApi.TSelect.TWhere.filter_typed:type_name -> NYql.NConnector.NApi.TPredicate - 22, // 45: NYql.NConnector.NApi.TSelect.TWhere.filter_raw:type_name -> NYql.NConnector.NApi.TAst - 44, // 46: NYql.NConnector.NApi.TSelect.TWhat.TItem.column:type_name -> Ydb.Column - 44, // 47: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.meta:type_name -> Ydb.Column - 30, // 48: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.data:type_name -> NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.TColumn - 48, // 49: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.TColumn.data:type_name -> Ydb.Value - 4, // 50: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.operation:type_name -> NYql.NConnector.NApi.TExpression.TArithmeticalExpression.EOperation - 19, // 51: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.left_value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 52: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.right_value:type_name -> NYql.NConnector.NApi.TExpression - 20, // 53: NYql.NConnector.NApi.TPredicate.TNegation.operand:type_name -> NYql.NConnector.NApi.TPredicate - 20, // 54: NYql.NConnector.NApi.TPredicate.TConjunction.operands:type_name -> NYql.NConnector.NApi.TPredicate - 20, // 55: NYql.NConnector.NApi.TPredicate.TDisjunction.operands:type_name -> NYql.NConnector.NApi.TPredicate - 19, // 56: NYql.NConnector.NApi.TPredicate.TBetween.value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 57: NYql.NConnector.NApi.TPredicate.TBetween.least:type_name -> NYql.NConnector.NApi.TExpression - 19, // 58: NYql.NConnector.NApi.TPredicate.TBetween.greatest:type_name -> NYql.NConnector.NApi.TExpression - 19, // 59: NYql.NConnector.NApi.TPredicate.TIn.value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 60: NYql.NConnector.NApi.TPredicate.TIn.set:type_name -> NYql.NConnector.NApi.TExpression - 19, // 61: NYql.NConnector.NApi.TPredicate.TIsNull.value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 62: NYql.NConnector.NApi.TPredicate.TIsNotNull.value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 63: NYql.NConnector.NApi.TPredicate.TBoolExpression.value:type_name -> NYql.NConnector.NApi.TExpression - 5, // 64: NYql.NConnector.NApi.TPredicate.TComparison.operation:type_name -> NYql.NConnector.NApi.TPredicate.TComparison.EOperation - 19, // 65: NYql.NConnector.NApi.TPredicate.TComparison.left_value:type_name -> NYql.NConnector.NApi.TExpression - 19, // 66: NYql.NConnector.NApi.TPredicate.TComparison.right_value:type_name -> NYql.NConnector.NApi.TExpression - 22, // 67: NYql.NConnector.NApi.TAst.TList.children:type_name -> NYql.NConnector.NApi.TAst - 68, // [68:68] is the sub-list for method output_type - 68, // [68:68] is the sub-list for method input_type - 68, // [68:68] is the sub-list for extension type_name - 68, // [68:68] is the sub-list for extension extendee - 0, // [0:68] is the sub-list for field type_name + 34, // 30: NYql.NConnector.NApi.TExpression.null:type_name -> NYql.NConnector.NApi.TExpression.TNull + 32, // 31: NYql.NConnector.NApi.TExpression.coalesce:type_name -> NYql.NConnector.NApi.TExpression.TCoalesce + 33, // 32: NYql.NConnector.NApi.TExpression.if:type_name -> NYql.NConnector.NApi.TExpression.TIf + 35, // 33: NYql.NConnector.NApi.TPredicate.negation:type_name -> NYql.NConnector.NApi.TPredicate.TNegation + 36, // 34: NYql.NConnector.NApi.TPredicate.conjunction:type_name -> NYql.NConnector.NApi.TPredicate.TConjunction + 37, // 35: NYql.NConnector.NApi.TPredicate.disjunction:type_name -> NYql.NConnector.NApi.TPredicate.TDisjunction + 40, // 36: NYql.NConnector.NApi.TPredicate.between:type_name -> NYql.NConnector.NApi.TPredicate.TBetween + 41, // 37: NYql.NConnector.NApi.TPredicate.in:type_name -> NYql.NConnector.NApi.TPredicate.TIn + 42, // 38: NYql.NConnector.NApi.TPredicate.is_null:type_name -> NYql.NConnector.NApi.TPredicate.TIsNull + 43, // 39: NYql.NConnector.NApi.TPredicate.is_not_null:type_name -> NYql.NConnector.NApi.TPredicate.TIsNotNull + 45, // 40: NYql.NConnector.NApi.TPredicate.comparison:type_name -> NYql.NConnector.NApi.TPredicate.TComparison + 44, // 41: NYql.NConnector.NApi.TPredicate.bool_expression:type_name -> NYql.NConnector.NApi.TPredicate.TBoolExpression + 38, // 42: NYql.NConnector.NApi.TPredicate.coalesce:type_name -> NYql.NConnector.NApi.TPredicate.TCoalesce + 39, // 43: NYql.NConnector.NApi.TPredicate.if:type_name -> NYql.NConnector.NApi.TPredicate.TIf + 46, // 44: NYql.NConnector.NApi.TPredicate.regexp:type_name -> NYql.NConnector.NApi.TPredicate.TRegexp + 51, // 45: NYql.NConnector.NApi.TError.status:type_name -> Ydb.StatusIds.StatusCode + 52, // 46: NYql.NConnector.NApi.TError.issues:type_name -> Ydb.Issue.IssueMessage + 47, // 47: NYql.NConnector.NApi.TAst.list:type_name -> NYql.NConnector.NApi.TAst.TList + 27, // 48: NYql.NConnector.NApi.TSelect.TWhat.items:type_name -> NYql.NConnector.NApi.TSelect.TWhat.TItem + 20, // 49: NYql.NConnector.NApi.TSelect.TWhere.filter_typed:type_name -> NYql.NConnector.NApi.TPredicate + 22, // 50: NYql.NConnector.NApi.TSelect.TWhere.filter_raw:type_name -> NYql.NConnector.NApi.TAst + 49, // 51: NYql.NConnector.NApi.TSelect.TWhat.TItem.column:type_name -> Ydb.Column + 49, // 52: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.meta:type_name -> Ydb.Column + 30, // 53: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.data:type_name -> NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.TColumn + 53, // 54: NYql.NConnector.NApi.TReadSplitsResponse.TColumnSet.TColumn.data:type_name -> Ydb.Value + 4, // 55: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.operation:type_name -> NYql.NConnector.NApi.TExpression.TArithmeticalExpression.EOperation + 19, // 56: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.left_value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 57: NYql.NConnector.NApi.TExpression.TArithmeticalExpression.right_value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 58: NYql.NConnector.NApi.TExpression.TCoalesce.operands:type_name -> NYql.NConnector.NApi.TExpression + 20, // 59: NYql.NConnector.NApi.TExpression.TIf.predicate:type_name -> NYql.NConnector.NApi.TPredicate + 19, // 60: NYql.NConnector.NApi.TExpression.TIf.then_expression:type_name -> NYql.NConnector.NApi.TExpression + 19, // 61: NYql.NConnector.NApi.TExpression.TIf.else_expression:type_name -> NYql.NConnector.NApi.TExpression + 20, // 62: NYql.NConnector.NApi.TPredicate.TNegation.operand:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 63: NYql.NConnector.NApi.TPredicate.TConjunction.operands:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 64: NYql.NConnector.NApi.TPredicate.TDisjunction.operands:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 65: NYql.NConnector.NApi.TPredicate.TCoalesce.operands:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 66: NYql.NConnector.NApi.TPredicate.TIf.predicate:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 67: NYql.NConnector.NApi.TPredicate.TIf.then_predicate:type_name -> NYql.NConnector.NApi.TPredicate + 20, // 68: NYql.NConnector.NApi.TPredicate.TIf.else_predicate:type_name -> NYql.NConnector.NApi.TPredicate + 19, // 69: NYql.NConnector.NApi.TPredicate.TBetween.value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 70: NYql.NConnector.NApi.TPredicate.TBetween.least:type_name -> NYql.NConnector.NApi.TExpression + 19, // 71: NYql.NConnector.NApi.TPredicate.TBetween.greatest:type_name -> NYql.NConnector.NApi.TExpression + 19, // 72: NYql.NConnector.NApi.TPredicate.TIn.value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 73: NYql.NConnector.NApi.TPredicate.TIn.set:type_name -> NYql.NConnector.NApi.TExpression + 19, // 74: NYql.NConnector.NApi.TPredicate.TIsNull.value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 75: NYql.NConnector.NApi.TPredicate.TIsNotNull.value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 76: NYql.NConnector.NApi.TPredicate.TBoolExpression.value:type_name -> NYql.NConnector.NApi.TExpression + 5, // 77: NYql.NConnector.NApi.TPredicate.TComparison.operation:type_name -> NYql.NConnector.NApi.TPredicate.TComparison.EOperation + 19, // 78: NYql.NConnector.NApi.TPredicate.TComparison.left_value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 79: NYql.NConnector.NApi.TPredicate.TComparison.right_value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 80: NYql.NConnector.NApi.TPredicate.TRegexp.value:type_name -> NYql.NConnector.NApi.TExpression + 19, // 81: NYql.NConnector.NApi.TPredicate.TRegexp.pattern:type_name -> NYql.NConnector.NApi.TExpression + 22, // 82: NYql.NConnector.NApi.TAst.TList.children:type_name -> NYql.NConnector.NApi.TAst + 83, // [83:83] is the sub-list for method output_type + 83, // [83:83] is the sub-list for method input_type + 83, // [83:83] is the sub-list for extension type_name + 83, // [83:83] is the sub-list for extension extendee + 0, // [0:83] is the sub-list for field type_name } func init() { @@ -3751,7 +4205,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TExpression_TNull); i { + switch v := v.(*TExpression_TCoalesce); i { case 0: return &v.state case 1: @@ -3763,7 +4217,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TNegation); i { + switch v := v.(*TExpression_TIf); i { case 0: return &v.state case 1: @@ -3775,7 +4229,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TConjunction); i { + switch v := v.(*TExpression_TNull); i { case 0: return &v.state case 1: @@ -3787,7 +4241,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TDisjunction); i { + switch v := v.(*TPredicate_TNegation); i { case 0: return &v.state case 1: @@ -3799,7 +4253,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TBetween); i { + switch v := v.(*TPredicate_TConjunction); i { case 0: return &v.state case 1: @@ -3811,7 +4265,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TIn); i { + switch v := v.(*TPredicate_TDisjunction); i { case 0: return &v.state case 1: @@ -3823,7 +4277,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TIsNull); i { + switch v := v.(*TPredicate_TCoalesce); i { case 0: return &v.state case 1: @@ -3835,7 +4289,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TIsNotNull); i { + switch v := v.(*TPredicate_TIf); i { case 0: return &v.state case 1: @@ -3847,7 +4301,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TBoolExpression); i { + switch v := v.(*TPredicate_TBetween); i { case 0: return &v.state case 1: @@ -3859,7 +4313,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TPredicate_TComparison); i { + switch v := v.(*TPredicate_TIn); i { case 0: return &v.state case 1: @@ -3871,6 +4325,66 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect } } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TPredicate_TIsNull); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TPredicate_TIsNotNull); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TPredicate_TBoolExpression); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TPredicate_TComparison); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TPredicate_TRegexp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TAst_TList); i { case 0: return &v.state @@ -3901,6 +4415,8 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect (*TExpression_Column)(nil), (*TExpression_ArithmeticalExpression)(nil), (*TExpression_Null)(nil), + (*TExpression_Coalesce)(nil), + (*TExpression_If)(nil), } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[14].OneofWrappers = []interface{}{ (*TPredicate_Negation)(nil), @@ -3912,6 +4428,9 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect (*TPredicate_IsNotNull)(nil), (*TPredicate_Comparison)(nil), (*TPredicate_BoolExpression)(nil), + (*TPredicate_Coalesce)(nil), + (*TPredicate_If)(nil), + (*TPredicate_Regexp)(nil), } file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_msgTypes[16].OneofWrappers = []interface{}{ (*TAst_Atom)(nil), @@ -3926,7 +4445,7 @@ func file_ydb_library_yql_providers_generic_connector_api_service_protos_connect GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_ydb_library_yql_providers_generic_connector_api_service_protos_connector_proto_rawDesc, NumEnums: 6, - NumMessages: 37, + NumMessages: 42, NumExtensions: 0, NumServices: 0, }, diff --git a/app/server/service_connector.go b/app/server/service_connector.go index 9422885a..ff6c1fab 100644 --- a/app/server/service_connector.go +++ b/app/server/service_connector.go @@ -46,9 +46,11 @@ func (s *serviceConnector) DescribeTable( if err := ValidateDescribeTableRequest(logger, request); err != nil { logger.Error("request handling failed", zap.Error(err)) - return &api_service_protos.TDescribeTableResponse{ + response := &api_service_protos.TDescribeTableResponse{ Error: common.NewAPIErrorFromStdError(err, request.DataSourceInstance.Kind), - }, nil + } + + return response, nil } out, err := s.dataSourceCollection.DescribeTable(ctx, logger, request) diff --git a/common/errors.go b/common/errors.go index a5b0f727..893902b8 100644 --- a/common/errors.go +++ b/common/errors.go @@ -328,8 +328,10 @@ func NewAPIErrorFromStdError(err error, kind api_common.EDataSourceKind) *api_se apiError = newAPIErrorFromOracleError(err) case api_common.EDataSourceKind_MS_SQL_SERVER: apiError = newAPIErrorFromMsSQLServer(err) + case api_common.EDataSourceKind_LOGGING: + apiError = newAPIErrorFromYdbError(err) default: - panic("DataSource kind not specified for API error") + panic(api_common.EDataSourceKind_name[int32(kind)]) } if apiError != nil { From 9b60bf3f26bc9b3f6d4a7df2b60920f9854db562 Mon Sep 17 00:00:00 2001 From: Vitaly Isaev Date: Wed, 20 Nov 2024 08:29:52 +0000 Subject: [PATCH 3/5] Fix linter --- app/server/grpc_metrics.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/server/grpc_metrics.go b/app/server/grpc_metrics.go index fc3fa588..a7d766f6 100644 --- a/app/server/grpc_metrics.go +++ b/app/server/grpc_metrics.go @@ -114,7 +114,7 @@ func UnaryServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.Unar stacktrace := make([]byte, 1024) runtime.Stack(stacktrace, false) - logger.Error("panic occured", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) + logger.Error("panic occurred", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) } } @@ -195,7 +195,7 @@ func StreamServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.Str stacktrace := make([]byte, 1024) runtime.Stack(stacktrace, false) - logger.Error("panic occured", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) + logger.Error("panic occurred", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) } } From e3c330fe45a1fdc8b30bb12549e856296361f3dc Mon Sep 17 00:00:00 2001 From: Vitaly Isaev Date: Wed, 20 Nov 2024 08:34:04 +0000 Subject: [PATCH 4/5] More clear error --- common/errors.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/errors.go b/common/errors.go index 893902b8..a7dfa895 100644 --- a/common/errors.go +++ b/common/errors.go @@ -331,7 +331,7 @@ func NewAPIErrorFromStdError(err error, kind api_common.EDataSourceKind) *api_se case api_common.EDataSourceKind_LOGGING: apiError = newAPIErrorFromYdbError(err) default: - panic(api_common.EDataSourceKind_name[int32(kind)]) + panic(fmt.Sprintf("Unexpected data source kind: %v", api_common.EDataSourceKind_name[int32(kind)])) } if apiError != nil { From ac507d481df77c3d40fecf940b01d60f76520950 Mon Sep 17 00:00:00 2001 From: Vitaly Isaev Date: Thu, 21 Nov 2024 12:22:46 +0000 Subject: [PATCH 5/5] Properly handle panics --- app/server/grpc_metrics.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/server/grpc_metrics.go b/app/server/grpc_metrics.go index a7d766f6..686cd3cf 100644 --- a/app/server/grpc_metrics.go +++ b/app/server/grpc_metrics.go @@ -115,6 +115,9 @@ func UnaryServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.Unar stacktrace := make([]byte, 1024) runtime.Stack(stacktrace, false) logger.Error("panic occurred", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) + + // return transport error to the client + err = status.Errorf(codes.Internal, fmt.Sprintf("Server paniced: %v", p)) } } @@ -196,6 +199,10 @@ func StreamServerMetrics(logger *zap.Logger, registry metrics.Registry) grpc.Str stacktrace := make([]byte, 1024) runtime.Stack(stacktrace, false) logger.Error("panic occurred", zap.Any("error", p), zap.String("stacktrace", fmt.Sprint(string(stacktrace)))) + + // return transport error to the client + err := status.Errorf(codes.Internal, fmt.Sprintf("Server paniced: %v", p)) + _ = ss.SendMsg(err) } }