milvus/pkg/proto/planpb/plan.pb.go
Tianx 2c0c5ef41e
feat: timestamptz expression & index & timezone (#44080)
issue: https://github.com/milvus-io/milvus/issues/27467

>My plan is as follows.
>- [x] M1 Create collection with timestamptz field
>- [x] M2 Insert timestamptz field data
>- [x] M3 Retrieve timestamptz field data
>- [x] M4 Implement handoff
>- [x] M5 Implement compare operator
>- [x] M6 Implement extract operator
 >- [x] M8 Support database/collection level default timezone
>- [x] M7 Support STL-SORT index for datatype timestamptz

---

The third PR of issue: https://github.com/milvus-io/milvus/issues/27467,
which completes M5, M6, M7, M8 described above.

## M8 Default Timezone

We will be able to use alter_collection() and alter_database() in a
future Python SDK release to modify the default timezone at the
collection or database level.

For insert requests, the timezone will be resolved using the following
order of precedence: String Literal-> Collection Default -> Database
Default.
For retrieval requests, the timezone will be resolved in this order:
Query Parameters -> Collection Default -> Database Default.
In both cases, the final fallback timezone is UTC.


## M5: Comparison Operators

We can now use the following expression format to filter on the
timestamptz field:

- `timestamptz_field [+/- INTERVAL 'interval_string'] {comparison_op}
ISO 'iso_string' `

- The interval_string follows the ISO 8601 duration format, for example:
P1Y2M3DT1H2M3S.

- The iso_string follows the ISO 8601 timestamp format, for example:
2025-01-03T00:00:00+08:00.

- Example expressions: "tsz + INTERVAL 'P0D' != ISO
'2025-01-03T00:00:00+08:00'" or "tsz != ISO
'2025-01-03T00:00:00+08:00'".

## M6: Extract

We will be able to extract sepecific time filed by kwargs in a future
Python SDK release.
The key is `time_fields`, and value should be one or more of "year,
month, day, hour, minute, second, microsecond", seperated by comma or
space. Then the result of each record would be an array of int64.



## M7: Indexing Support

Expressions without interval arithmetic can be accelerated using an
STL-SORT index. However, expressions that include interval arithmetic
cannot be indexed. This is because the result of an interval calculation
depends on the specific timestamp value. For example, adding one month
to a date in February results in a different number of added days than
adding one month to a date in March.

--- 

After this PR, the input / output type of timestamptz would be iso
string. Timestampz would be stored as timestamptz data, which is int64_t
finally.

> for more information, see https://en.wikipedia.org/wiki/ISO_8601

---------

Signed-off-by: xtx <xtianx@smail.nju.edu.cn>
2025-09-23 10:24:12 +08:00

3968 lines
143 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v3.21.4
// source: plan.proto
package planpb
import (
schemapb "github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type OpType int32
const (
OpType_Invalid OpType = 0
OpType_GreaterThan OpType = 1
OpType_GreaterEqual OpType = 2
OpType_LessThan OpType = 3
OpType_LessEqual OpType = 4
OpType_Equal OpType = 5
OpType_NotEqual OpType = 6
OpType_PrefixMatch OpType = 7 // startsWith
OpType_PostfixMatch OpType = 8 // endsWith
OpType_Match OpType = 9 // like
OpType_Range OpType = 10 // for case 1 < a < b
OpType_In OpType = 11 // TODO:: used for term expr
OpType_NotIn OpType = 12
OpType_TextMatch OpType = 13 // text match
OpType_PhraseMatch OpType = 14 // phrase match
OpType_InnerMatch OpType = 15 // substring (e.g., "%value%")
)
// Enum value maps for OpType.
var (
OpType_name = map[int32]string{
0: "Invalid",
1: "GreaterThan",
2: "GreaterEqual",
3: "LessThan",
4: "LessEqual",
5: "Equal",
6: "NotEqual",
7: "PrefixMatch",
8: "PostfixMatch",
9: "Match",
10: "Range",
11: "In",
12: "NotIn",
13: "TextMatch",
14: "PhraseMatch",
15: "InnerMatch",
}
OpType_value = map[string]int32{
"Invalid": 0,
"GreaterThan": 1,
"GreaterEqual": 2,
"LessThan": 3,
"LessEqual": 4,
"Equal": 5,
"NotEqual": 6,
"PrefixMatch": 7,
"PostfixMatch": 8,
"Match": 9,
"Range": 10,
"In": 11,
"NotIn": 12,
"TextMatch": 13,
"PhraseMatch": 14,
"InnerMatch": 15,
}
)
func (x OpType) Enum() *OpType {
p := new(OpType)
*p = x
return p
}
func (x OpType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (OpType) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[0].Descriptor()
}
func (OpType) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[0]
}
func (x OpType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use OpType.Descriptor instead.
func (OpType) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{0}
}
type ArithOpType int32
const (
ArithOpType_Unknown ArithOpType = 0
ArithOpType_Add ArithOpType = 1
ArithOpType_Sub ArithOpType = 2
ArithOpType_Mul ArithOpType = 3
ArithOpType_Div ArithOpType = 4
ArithOpType_Mod ArithOpType = 5
ArithOpType_ArrayLength ArithOpType = 6
)
// Enum value maps for ArithOpType.
var (
ArithOpType_name = map[int32]string{
0: "Unknown",
1: "Add",
2: "Sub",
3: "Mul",
4: "Div",
5: "Mod",
6: "ArrayLength",
}
ArithOpType_value = map[string]int32{
"Unknown": 0,
"Add": 1,
"Sub": 2,
"Mul": 3,
"Div": 4,
"Mod": 5,
"ArrayLength": 6,
}
)
func (x ArithOpType) Enum() *ArithOpType {
p := new(ArithOpType)
*p = x
return p
}
func (x ArithOpType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ArithOpType) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[1].Descriptor()
}
func (ArithOpType) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[1]
}
func (x ArithOpType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ArithOpType.Descriptor instead.
func (ArithOpType) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{1}
}
type VectorType int32
const (
VectorType_BinaryVector VectorType = 0
VectorType_FloatVector VectorType = 1
VectorType_Float16Vector VectorType = 2
VectorType_BFloat16Vector VectorType = 3
VectorType_SparseFloatVector VectorType = 4
VectorType_Int8Vector VectorType = 5
VectorType_EmbListFloatVector VectorType = 6
VectorType_EmbListFloat16Vector VectorType = 7
VectorType_EmbListBFloat16Vector VectorType = 8
VectorType_EmbListInt8Vector VectorType = 9
)
// Enum value maps for VectorType.
var (
VectorType_name = map[int32]string{
0: "BinaryVector",
1: "FloatVector",
2: "Float16Vector",
3: "BFloat16Vector",
4: "SparseFloatVector",
5: "Int8Vector",
6: "EmbListFloatVector",
7: "EmbListFloat16Vector",
8: "EmbListBFloat16Vector",
9: "EmbListInt8Vector",
}
VectorType_value = map[string]int32{
"BinaryVector": 0,
"FloatVector": 1,
"Float16Vector": 2,
"BFloat16Vector": 3,
"SparseFloatVector": 4,
"Int8Vector": 5,
"EmbListFloatVector": 6,
"EmbListFloat16Vector": 7,
"EmbListBFloat16Vector": 8,
"EmbListInt8Vector": 9,
}
)
func (x VectorType) Enum() *VectorType {
p := new(VectorType)
*p = x
return p
}
func (x VectorType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (VectorType) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[2].Descriptor()
}
func (VectorType) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[2]
}
func (x VectorType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use VectorType.Descriptor instead.
func (VectorType) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{2}
}
// 0: invalid
// 1: json_contains | array_contains
// 2: json_contains_all | array_contains_all
// 3: json_contains_any | array_contains_any
type JSONContainsExpr_JSONOp int32
const (
JSONContainsExpr_Invalid JSONContainsExpr_JSONOp = 0
JSONContainsExpr_Contains JSONContainsExpr_JSONOp = 1
JSONContainsExpr_ContainsAll JSONContainsExpr_JSONOp = 2
JSONContainsExpr_ContainsAny JSONContainsExpr_JSONOp = 3
)
// Enum value maps for JSONContainsExpr_JSONOp.
var (
JSONContainsExpr_JSONOp_name = map[int32]string{
0: "Invalid",
1: "Contains",
2: "ContainsAll",
3: "ContainsAny",
}
JSONContainsExpr_JSONOp_value = map[string]int32{
"Invalid": 0,
"Contains": 1,
"ContainsAll": 2,
"ContainsAny": 3,
}
)
func (x JSONContainsExpr_JSONOp) Enum() *JSONContainsExpr_JSONOp {
p := new(JSONContainsExpr_JSONOp)
*p = x
return p
}
func (x JSONContainsExpr_JSONOp) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (JSONContainsExpr_JSONOp) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[3].Descriptor()
}
func (JSONContainsExpr_JSONOp) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[3]
}
func (x JSONContainsExpr_JSONOp) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use JSONContainsExpr_JSONOp.Descriptor instead.
func (JSONContainsExpr_JSONOp) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{13, 0}
}
type NullExpr_NullOp int32
const (
NullExpr_Invalid NullExpr_NullOp = 0
NullExpr_IsNull NullExpr_NullOp = 1
NullExpr_IsNotNull NullExpr_NullOp = 2
)
// Enum value maps for NullExpr_NullOp.
var (
NullExpr_NullOp_name = map[int32]string{
0: "Invalid",
1: "IsNull",
2: "IsNotNull",
}
NullExpr_NullOp_value = map[string]int32{
"Invalid": 0,
"IsNull": 1,
"IsNotNull": 2,
}
)
func (x NullExpr_NullOp) Enum() *NullExpr_NullOp {
p := new(NullExpr_NullOp)
*p = x
return p
}
func (x NullExpr_NullOp) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (NullExpr_NullOp) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[4].Descriptor()
}
func (NullExpr_NullOp) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[4]
}
func (x NullExpr_NullOp) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use NullExpr_NullOp.Descriptor instead.
func (NullExpr_NullOp) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{14, 0}
}
type UnaryExpr_UnaryOp int32
const (
UnaryExpr_Invalid UnaryExpr_UnaryOp = 0
UnaryExpr_Not UnaryExpr_UnaryOp = 1
)
// Enum value maps for UnaryExpr_UnaryOp.
var (
UnaryExpr_UnaryOp_name = map[int32]string{
0: "Invalid",
1: "Not",
}
UnaryExpr_UnaryOp_value = map[string]int32{
"Invalid": 0,
"Not": 1,
}
)
func (x UnaryExpr_UnaryOp) Enum() *UnaryExpr_UnaryOp {
p := new(UnaryExpr_UnaryOp)
*p = x
return p
}
func (x UnaryExpr_UnaryOp) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (UnaryExpr_UnaryOp) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[5].Descriptor()
}
func (UnaryExpr_UnaryOp) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[5]
}
func (x UnaryExpr_UnaryOp) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use UnaryExpr_UnaryOp.Descriptor instead.
func (UnaryExpr_UnaryOp) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{15, 0}
}
type BinaryExpr_BinaryOp int32
const (
BinaryExpr_Invalid BinaryExpr_BinaryOp = 0
BinaryExpr_LogicalAnd BinaryExpr_BinaryOp = 1
BinaryExpr_LogicalOr BinaryExpr_BinaryOp = 2
)
// Enum value maps for BinaryExpr_BinaryOp.
var (
BinaryExpr_BinaryOp_name = map[int32]string{
0: "Invalid",
1: "LogicalAnd",
2: "LogicalOr",
}
BinaryExpr_BinaryOp_value = map[string]int32{
"Invalid": 0,
"LogicalAnd": 1,
"LogicalOr": 2,
}
)
func (x BinaryExpr_BinaryOp) Enum() *BinaryExpr_BinaryOp {
p := new(BinaryExpr_BinaryOp)
*p = x
return p
}
func (x BinaryExpr_BinaryOp) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BinaryExpr_BinaryOp) Descriptor() protoreflect.EnumDescriptor {
return file_plan_proto_enumTypes[6].Descriptor()
}
func (BinaryExpr_BinaryOp) Type() protoreflect.EnumType {
return &file_plan_proto_enumTypes[6]
}
func (x BinaryExpr_BinaryOp) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BinaryExpr_BinaryOp.Descriptor instead.
func (BinaryExpr_BinaryOp) EnumDescriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{16, 0}
}
type GenericValue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Val:
//
// *GenericValue_BoolVal
// *GenericValue_Int64Val
// *GenericValue_FloatVal
// *GenericValue_StringVal
// *GenericValue_ArrayVal
Val isGenericValue_Val `protobuf_oneof:"val"`
}
func (x *GenericValue) Reset() {
*x = GenericValue{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenericValue) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GenericValue) ProtoMessage() {}
func (x *GenericValue) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GenericValue.ProtoReflect.Descriptor instead.
func (*GenericValue) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{0}
}
func (m *GenericValue) GetVal() isGenericValue_Val {
if m != nil {
return m.Val
}
return nil
}
func (x *GenericValue) GetBoolVal() bool {
if x, ok := x.GetVal().(*GenericValue_BoolVal); ok {
return x.BoolVal
}
return false
}
func (x *GenericValue) GetInt64Val() int64 {
if x, ok := x.GetVal().(*GenericValue_Int64Val); ok {
return x.Int64Val
}
return 0
}
func (x *GenericValue) GetFloatVal() float64 {
if x, ok := x.GetVal().(*GenericValue_FloatVal); ok {
return x.FloatVal
}
return 0
}
func (x *GenericValue) GetStringVal() string {
if x, ok := x.GetVal().(*GenericValue_StringVal); ok {
return x.StringVal
}
return ""
}
func (x *GenericValue) GetArrayVal() *Array {
if x, ok := x.GetVal().(*GenericValue_ArrayVal); ok {
return x.ArrayVal
}
return nil
}
type isGenericValue_Val interface {
isGenericValue_Val()
}
type GenericValue_BoolVal struct {
BoolVal bool `protobuf:"varint,1,opt,name=bool_val,json=boolVal,proto3,oneof"`
}
type GenericValue_Int64Val struct {
Int64Val int64 `protobuf:"varint,2,opt,name=int64_val,json=int64Val,proto3,oneof"`
}
type GenericValue_FloatVal struct {
FloatVal float64 `protobuf:"fixed64,3,opt,name=float_val,json=floatVal,proto3,oneof"`
}
type GenericValue_StringVal struct {
StringVal string `protobuf:"bytes,4,opt,name=string_val,json=stringVal,proto3,oneof"`
}
type GenericValue_ArrayVal struct {
ArrayVal *Array `protobuf:"bytes,5,opt,name=array_val,json=arrayVal,proto3,oneof"`
}
func (*GenericValue_BoolVal) isGenericValue_Val() {}
func (*GenericValue_Int64Val) isGenericValue_Val() {}
func (*GenericValue_FloatVal) isGenericValue_Val() {}
func (*GenericValue_StringVal) isGenericValue_Val() {}
func (*GenericValue_ArrayVal) isGenericValue_Val() {}
type Array struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Array []*GenericValue `protobuf:"bytes,1,rep,name=array,proto3" json:"array,omitempty"`
SameType bool `protobuf:"varint,2,opt,name=same_type,json=sameType,proto3" json:"same_type,omitempty"`
ElementType schemapb.DataType `protobuf:"varint,3,opt,name=element_type,json=elementType,proto3,enum=milvus.proto.schema.DataType" json:"element_type,omitempty"`
}
func (x *Array) Reset() {
*x = Array{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Array) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Array) ProtoMessage() {}
func (x *Array) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[1]
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 Array.ProtoReflect.Descriptor instead.
func (*Array) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{1}
}
func (x *Array) GetArray() []*GenericValue {
if x != nil {
return x.Array
}
return nil
}
func (x *Array) GetSameType() bool {
if x != nil {
return x.SameType
}
return false
}
func (x *Array) GetElementType() schemapb.DataType {
if x != nil {
return x.ElementType
}
return schemapb.DataType(0)
}
type SearchIteratorV2Info struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
BatchSize uint32 `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
LastBound *float32 `protobuf:"fixed32,3,opt,name=last_bound,json=lastBound,proto3,oneof" json:"last_bound,omitempty"`
}
func (x *SearchIteratorV2Info) Reset() {
*x = SearchIteratorV2Info{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SearchIteratorV2Info) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SearchIteratorV2Info) ProtoMessage() {}
func (x *SearchIteratorV2Info) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[2]
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 SearchIteratorV2Info.ProtoReflect.Descriptor instead.
func (*SearchIteratorV2Info) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{2}
}
func (x *SearchIteratorV2Info) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
func (x *SearchIteratorV2Info) GetBatchSize() uint32 {
if x != nil {
return x.BatchSize
}
return 0
}
func (x *SearchIteratorV2Info) GetLastBound() float32 {
if x != nil && x.LastBound != nil {
return *x.LastBound
}
return 0
}
type QueryInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Topk int64 `protobuf:"varint,1,opt,name=topk,proto3" json:"topk,omitempty"`
MetricType string `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"`
SearchParams string `protobuf:"bytes,4,opt,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
RoundDecimal int64 `protobuf:"varint,5,opt,name=round_decimal,json=roundDecimal,proto3" json:"round_decimal,omitempty"`
GroupByFieldId int64 `protobuf:"varint,6,opt,name=group_by_field_id,json=groupByFieldId,proto3" json:"group_by_field_id,omitempty"`
MaterializedViewInvolved bool `protobuf:"varint,7,opt,name=materialized_view_involved,json=materializedViewInvolved,proto3" json:"materialized_view_involved,omitempty"`
GroupSize int64 `protobuf:"varint,8,opt,name=group_size,json=groupSize,proto3" json:"group_size,omitempty"`
StrictGroupSize bool `protobuf:"varint,9,opt,name=strict_group_size,json=strictGroupSize,proto3" json:"strict_group_size,omitempty"`
Bm25Avgdl float64 `protobuf:"fixed64,10,opt,name=bm25_avgdl,json=bm25Avgdl,proto3" json:"bm25_avgdl,omitempty"`
QueryFieldId int64 `protobuf:"varint,11,opt,name=query_field_id,json=queryFieldId,proto3" json:"query_field_id,omitempty"`
Hints string `protobuf:"bytes,12,opt,name=hints,proto3" json:"hints,omitempty"`
SearchIteratorV2Info *SearchIteratorV2Info `protobuf:"bytes,13,opt,name=search_iterator_v2_info,json=searchIteratorV2Info,proto3,oneof" json:"search_iterator_v2_info,omitempty"`
JsonPath string `protobuf:"bytes,14,opt,name=json_path,json=jsonPath,proto3" json:"json_path,omitempty"`
JsonType schemapb.DataType `protobuf:"varint,15,opt,name=json_type,json=jsonType,proto3,enum=milvus.proto.schema.DataType" json:"json_type,omitempty"`
StrictCast bool `protobuf:"varint,16,opt,name=strict_cast,json=strictCast,proto3" json:"strict_cast,omitempty"`
}
func (x *QueryInfo) Reset() {
*x = QueryInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryInfo) ProtoMessage() {}
func (x *QueryInfo) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[3]
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 QueryInfo.ProtoReflect.Descriptor instead.
func (*QueryInfo) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{3}
}
func (x *QueryInfo) GetTopk() int64 {
if x != nil {
return x.Topk
}
return 0
}
func (x *QueryInfo) GetMetricType() string {
if x != nil {
return x.MetricType
}
return ""
}
func (x *QueryInfo) GetSearchParams() string {
if x != nil {
return x.SearchParams
}
return ""
}
func (x *QueryInfo) GetRoundDecimal() int64 {
if x != nil {
return x.RoundDecimal
}
return 0
}
func (x *QueryInfo) GetGroupByFieldId() int64 {
if x != nil {
return x.GroupByFieldId
}
return 0
}
func (x *QueryInfo) GetMaterializedViewInvolved() bool {
if x != nil {
return x.MaterializedViewInvolved
}
return false
}
func (x *QueryInfo) GetGroupSize() int64 {
if x != nil {
return x.GroupSize
}
return 0
}
func (x *QueryInfo) GetStrictGroupSize() bool {
if x != nil {
return x.StrictGroupSize
}
return false
}
func (x *QueryInfo) GetBm25Avgdl() float64 {
if x != nil {
return x.Bm25Avgdl
}
return 0
}
func (x *QueryInfo) GetQueryFieldId() int64 {
if x != nil {
return x.QueryFieldId
}
return 0
}
func (x *QueryInfo) GetHints() string {
if x != nil {
return x.Hints
}
return ""
}
func (x *QueryInfo) GetSearchIteratorV2Info() *SearchIteratorV2Info {
if x != nil {
return x.SearchIteratorV2Info
}
return nil
}
func (x *QueryInfo) GetJsonPath() string {
if x != nil {
return x.JsonPath
}
return ""
}
func (x *QueryInfo) GetJsonType() schemapb.DataType {
if x != nil {
return x.JsonType
}
return schemapb.DataType(0)
}
func (x *QueryInfo) GetStrictCast() bool {
if x != nil {
return x.StrictCast
}
return false
}
type ColumnInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FieldId int64 `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
DataType schemapb.DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=milvus.proto.schema.DataType" json:"data_type,omitempty"`
IsPrimaryKey bool `protobuf:"varint,3,opt,name=is_primary_key,json=isPrimaryKey,proto3" json:"is_primary_key,omitempty"`
IsAutoID bool `protobuf:"varint,4,opt,name=is_autoID,json=isAutoID,proto3" json:"is_autoID,omitempty"`
NestedPath []string `protobuf:"bytes,5,rep,name=nested_path,json=nestedPath,proto3" json:"nested_path,omitempty"`
IsPartitionKey bool `protobuf:"varint,6,opt,name=is_partition_key,json=isPartitionKey,proto3" json:"is_partition_key,omitempty"`
ElementType schemapb.DataType `protobuf:"varint,7,opt,name=element_type,json=elementType,proto3,enum=milvus.proto.schema.DataType" json:"element_type,omitempty"`
IsClusteringKey bool `protobuf:"varint,8,opt,name=is_clustering_key,json=isClusteringKey,proto3" json:"is_clustering_key,omitempty"`
Nullable bool `protobuf:"varint,9,opt,name=nullable,proto3" json:"nullable,omitempty"`
}
func (x *ColumnInfo) Reset() {
*x = ColumnInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ColumnInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ColumnInfo) ProtoMessage() {}
func (x *ColumnInfo) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[4]
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 ColumnInfo.ProtoReflect.Descriptor instead.
func (*ColumnInfo) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{4}
}
func (x *ColumnInfo) GetFieldId() int64 {
if x != nil {
return x.FieldId
}
return 0
}
func (x *ColumnInfo) GetDataType() schemapb.DataType {
if x != nil {
return x.DataType
}
return schemapb.DataType(0)
}
func (x *ColumnInfo) GetIsPrimaryKey() bool {
if x != nil {
return x.IsPrimaryKey
}
return false
}
func (x *ColumnInfo) GetIsAutoID() bool {
if x != nil {
return x.IsAutoID
}
return false
}
func (x *ColumnInfo) GetNestedPath() []string {
if x != nil {
return x.NestedPath
}
return nil
}
func (x *ColumnInfo) GetIsPartitionKey() bool {
if x != nil {
return x.IsPartitionKey
}
return false
}
func (x *ColumnInfo) GetElementType() schemapb.DataType {
if x != nil {
return x.ElementType
}
return schemapb.DataType(0)
}
func (x *ColumnInfo) GetIsClusteringKey() bool {
if x != nil {
return x.IsClusteringKey
}
return false
}
func (x *ColumnInfo) GetNullable() bool {
if x != nil {
return x.Nullable
}
return false
}
type ColumnExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Info *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}
func (x *ColumnExpr) Reset() {
*x = ColumnExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ColumnExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ColumnExpr) ProtoMessage() {}
func (x *ColumnExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[5]
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 ColumnExpr.ProtoReflect.Descriptor instead.
func (*ColumnExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{5}
}
func (x *ColumnExpr) GetInfo() *ColumnInfo {
if x != nil {
return x.Info
}
return nil
}
type ExistsExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Info *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}
func (x *ExistsExpr) Reset() {
*x = ExistsExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExistsExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExistsExpr) ProtoMessage() {}
func (x *ExistsExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[6]
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 ExistsExpr.ProtoReflect.Descriptor instead.
func (*ExistsExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{6}
}
func (x *ExistsExpr) GetInfo() *ColumnInfo {
if x != nil {
return x.Info
}
return nil
}
type ValueExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Value *GenericValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
TemplateVariableName string `protobuf:"bytes,2,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}
func (x *ValueExpr) Reset() {
*x = ValueExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ValueExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ValueExpr) ProtoMessage() {}
func (x *ValueExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[7]
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 ValueExpr.ProtoReflect.Descriptor instead.
func (*ValueExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{7}
}
func (x *ValueExpr) GetValue() *GenericValue {
if x != nil {
return x.Value
}
return nil
}
func (x *ValueExpr) GetTemplateVariableName() string {
if x != nil {
return x.TemplateVariableName
}
return ""
}
type UnaryRangeExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
Op OpType `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
Value *GenericValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
TemplateVariableName string `protobuf:"bytes,4,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
ExtraValues []*GenericValue `protobuf:"bytes,5,rep,name=extra_values,json=extraValues,proto3" json:"extra_values,omitempty"`
}
func (x *UnaryRangeExpr) Reset() {
*x = UnaryRangeExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnaryRangeExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnaryRangeExpr) ProtoMessage() {}
func (x *UnaryRangeExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[8]
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 UnaryRangeExpr.ProtoReflect.Descriptor instead.
func (*UnaryRangeExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{8}
}
func (x *UnaryRangeExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *UnaryRangeExpr) GetOp() OpType {
if x != nil {
return x.Op
}
return OpType_Invalid
}
func (x *UnaryRangeExpr) GetValue() *GenericValue {
if x != nil {
return x.Value
}
return nil
}
func (x *UnaryRangeExpr) GetTemplateVariableName() string {
if x != nil {
return x.TemplateVariableName
}
return ""
}
func (x *UnaryRangeExpr) GetExtraValues() []*GenericValue {
if x != nil {
return x.ExtraValues
}
return nil
}
type BinaryRangeExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
LowerInclusive bool `protobuf:"varint,2,opt,name=lower_inclusive,json=lowerInclusive,proto3" json:"lower_inclusive,omitempty"`
UpperInclusive bool `protobuf:"varint,3,opt,name=upper_inclusive,json=upperInclusive,proto3" json:"upper_inclusive,omitempty"`
LowerValue *GenericValue `protobuf:"bytes,4,opt,name=lower_value,json=lowerValue,proto3" json:"lower_value,omitempty"`
UpperValue *GenericValue `protobuf:"bytes,5,opt,name=upper_value,json=upperValue,proto3" json:"upper_value,omitempty"`
LowerTemplateVariableName string `protobuf:"bytes,6,opt,name=lower_template_variable_name,json=lowerTemplateVariableName,proto3" json:"lower_template_variable_name,omitempty"`
UpperTemplateVariableName string `protobuf:"bytes,7,opt,name=upper_template_variable_name,json=upperTemplateVariableName,proto3" json:"upper_template_variable_name,omitempty"`
}
func (x *BinaryRangeExpr) Reset() {
*x = BinaryRangeExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryRangeExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryRangeExpr) ProtoMessage() {}
func (x *BinaryRangeExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[9]
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 BinaryRangeExpr.ProtoReflect.Descriptor instead.
func (*BinaryRangeExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{9}
}
func (x *BinaryRangeExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *BinaryRangeExpr) GetLowerInclusive() bool {
if x != nil {
return x.LowerInclusive
}
return false
}
func (x *BinaryRangeExpr) GetUpperInclusive() bool {
if x != nil {
return x.UpperInclusive
}
return false
}
func (x *BinaryRangeExpr) GetLowerValue() *GenericValue {
if x != nil {
return x.LowerValue
}
return nil
}
func (x *BinaryRangeExpr) GetUpperValue() *GenericValue {
if x != nil {
return x.UpperValue
}
return nil
}
func (x *BinaryRangeExpr) GetLowerTemplateVariableName() string {
if x != nil {
return x.LowerTemplateVariableName
}
return ""
}
func (x *BinaryRangeExpr) GetUpperTemplateVariableName() string {
if x != nil {
return x.UpperTemplateVariableName
}
return ""
}
type CallExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FunctionName string `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
FunctionParameters []*Expr `protobuf:"bytes,2,rep,name=function_parameters,json=functionParameters,proto3" json:"function_parameters,omitempty"`
}
func (x *CallExpr) Reset() {
*x = CallExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CallExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CallExpr) ProtoMessage() {}
func (x *CallExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[10]
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 CallExpr.ProtoReflect.Descriptor instead.
func (*CallExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{10}
}
func (x *CallExpr) GetFunctionName() string {
if x != nil {
return x.FunctionName
}
return ""
}
func (x *CallExpr) GetFunctionParameters() []*Expr {
if x != nil {
return x.FunctionParameters
}
return nil
}
type CompareExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
LeftColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=left_column_info,json=leftColumnInfo,proto3" json:"left_column_info,omitempty"`
RightColumnInfo *ColumnInfo `protobuf:"bytes,2,opt,name=right_column_info,json=rightColumnInfo,proto3" json:"right_column_info,omitempty"`
Op OpType `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
}
func (x *CompareExpr) Reset() {
*x = CompareExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CompareExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CompareExpr) ProtoMessage() {}
func (x *CompareExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[11]
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 CompareExpr.ProtoReflect.Descriptor instead.
func (*CompareExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{11}
}
func (x *CompareExpr) GetLeftColumnInfo() *ColumnInfo {
if x != nil {
return x.LeftColumnInfo
}
return nil
}
func (x *CompareExpr) GetRightColumnInfo() *ColumnInfo {
if x != nil {
return x.RightColumnInfo
}
return nil
}
func (x *CompareExpr) GetOp() OpType {
if x != nil {
return x.Op
}
return OpType_Invalid
}
type TermExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
Values []*GenericValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
IsInField bool `protobuf:"varint,3,opt,name=is_in_field,json=isInField,proto3" json:"is_in_field,omitempty"`
TemplateVariableName string `protobuf:"bytes,4,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}
func (x *TermExpr) Reset() {
*x = TermExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TermExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TermExpr) ProtoMessage() {}
func (x *TermExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[12]
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 TermExpr.ProtoReflect.Descriptor instead.
func (*TermExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{12}
}
func (x *TermExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *TermExpr) GetValues() []*GenericValue {
if x != nil {
return x.Values
}
return nil
}
func (x *TermExpr) GetIsInField() bool {
if x != nil {
return x.IsInField
}
return false
}
func (x *TermExpr) GetTemplateVariableName() string {
if x != nil {
return x.TemplateVariableName
}
return ""
}
type JSONContainsExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
Elements []*GenericValue `protobuf:"bytes,2,rep,name=elements,proto3" json:"elements,omitempty"`
Op JSONContainsExpr_JSONOp `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.JSONContainsExpr_JSONOp" json:"op,omitempty"`
ElementsSameType bool `protobuf:"varint,4,opt,name=elements_same_type,json=elementsSameType,proto3" json:"elements_same_type,omitempty"`
TemplateVariableName string `protobuf:"bytes,5,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}
func (x *JSONContainsExpr) Reset() {
*x = JSONContainsExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JSONContainsExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JSONContainsExpr) ProtoMessage() {}
func (x *JSONContainsExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[13]
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 JSONContainsExpr.ProtoReflect.Descriptor instead.
func (*JSONContainsExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{13}
}
func (x *JSONContainsExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *JSONContainsExpr) GetElements() []*GenericValue {
if x != nil {
return x.Elements
}
return nil
}
func (x *JSONContainsExpr) GetOp() JSONContainsExpr_JSONOp {
if x != nil {
return x.Op
}
return JSONContainsExpr_Invalid
}
func (x *JSONContainsExpr) GetElementsSameType() bool {
if x != nil {
return x.ElementsSameType
}
return false
}
func (x *JSONContainsExpr) GetTemplateVariableName() string {
if x != nil {
return x.TemplateVariableName
}
return ""
}
type NullExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
Op NullExpr_NullOp `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.NullExpr_NullOp" json:"op,omitempty"`
}
func (x *NullExpr) Reset() {
*x = NullExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NullExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NullExpr) ProtoMessage() {}
func (x *NullExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[14]
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 NullExpr.ProtoReflect.Descriptor instead.
func (*NullExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{14}
}
func (x *NullExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *NullExpr) GetOp() NullExpr_NullOp {
if x != nil {
return x.Op
}
return NullExpr_Invalid
}
type UnaryExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Op UnaryExpr_UnaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.UnaryExpr_UnaryOp" json:"op,omitempty"`
Child *Expr `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
}
func (x *UnaryExpr) Reset() {
*x = UnaryExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnaryExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnaryExpr) ProtoMessage() {}
func (x *UnaryExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[15]
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 UnaryExpr.ProtoReflect.Descriptor instead.
func (*UnaryExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{15}
}
func (x *UnaryExpr) GetOp() UnaryExpr_UnaryOp {
if x != nil {
return x.Op
}
return UnaryExpr_Invalid
}
func (x *UnaryExpr) GetChild() *Expr {
if x != nil {
return x.Child
}
return nil
}
type BinaryExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Op BinaryExpr_BinaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.BinaryExpr_BinaryOp" json:"op,omitempty"`
Left *Expr `protobuf:"bytes,2,opt,name=left,proto3" json:"left,omitempty"`
Right *Expr `protobuf:"bytes,3,opt,name=right,proto3" json:"right,omitempty"`
}
func (x *BinaryExpr) Reset() {
*x = BinaryExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryExpr) ProtoMessage() {}
func (x *BinaryExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[16]
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 BinaryExpr.ProtoReflect.Descriptor instead.
func (*BinaryExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{16}
}
func (x *BinaryExpr) GetOp() BinaryExpr_BinaryOp {
if x != nil {
return x.Op
}
return BinaryExpr_Invalid
}
func (x *BinaryExpr) GetLeft() *Expr {
if x != nil {
return x.Left
}
return nil
}
func (x *BinaryExpr) GetRight() *Expr {
if x != nil {
return x.Right
}
return nil
}
type BinaryArithOp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
ArithOp ArithOpType `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
RightOperand *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
}
func (x *BinaryArithOp) Reset() {
*x = BinaryArithOp{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryArithOp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryArithOp) ProtoMessage() {}
func (x *BinaryArithOp) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[17]
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 BinaryArithOp.ProtoReflect.Descriptor instead.
func (*BinaryArithOp) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{17}
}
func (x *BinaryArithOp) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *BinaryArithOp) GetArithOp() ArithOpType {
if x != nil {
return x.ArithOp
}
return ArithOpType_Unknown
}
func (x *BinaryArithOp) GetRightOperand() *GenericValue {
if x != nil {
return x.RightOperand
}
return nil
}
type BinaryArithExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Left *Expr `protobuf:"bytes,1,opt,name=left,proto3" json:"left,omitempty"`
Right *Expr `protobuf:"bytes,2,opt,name=right,proto3" json:"right,omitempty"`
Op ArithOpType `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.ArithOpType" json:"op,omitempty"`
}
func (x *BinaryArithExpr) Reset() {
*x = BinaryArithExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryArithExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryArithExpr) ProtoMessage() {}
func (x *BinaryArithExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[18]
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 BinaryArithExpr.ProtoReflect.Descriptor instead.
func (*BinaryArithExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{18}
}
func (x *BinaryArithExpr) GetLeft() *Expr {
if x != nil {
return x.Left
}
return nil
}
func (x *BinaryArithExpr) GetRight() *Expr {
if x != nil {
return x.Right
}
return nil
}
func (x *BinaryArithExpr) GetOp() ArithOpType {
if x != nil {
return x.Op
}
return ArithOpType_Unknown
}
type BinaryArithOpEvalRangeExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
ArithOp ArithOpType `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
RightOperand *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
Op OpType `protobuf:"varint,4,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
Value *GenericValue `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
OperandTemplateVariableName string `protobuf:"bytes,6,opt,name=operand_template_variable_name,json=operandTemplateVariableName,proto3" json:"operand_template_variable_name,omitempty"`
ValueTemplateVariableName string `protobuf:"bytes,7,opt,name=value_template_variable_name,json=valueTemplateVariableName,proto3" json:"value_template_variable_name,omitempty"`
}
func (x *BinaryArithOpEvalRangeExpr) Reset() {
*x = BinaryArithOpEvalRangeExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryArithOpEvalRangeExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryArithOpEvalRangeExpr) ProtoMessage() {}
func (x *BinaryArithOpEvalRangeExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[19]
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 BinaryArithOpEvalRangeExpr.ProtoReflect.Descriptor instead.
func (*BinaryArithOpEvalRangeExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{19}
}
func (x *BinaryArithOpEvalRangeExpr) GetColumnInfo() *ColumnInfo {
if x != nil {
return x.ColumnInfo
}
return nil
}
func (x *BinaryArithOpEvalRangeExpr) GetArithOp() ArithOpType {
if x != nil {
return x.ArithOp
}
return ArithOpType_Unknown
}
func (x *BinaryArithOpEvalRangeExpr) GetRightOperand() *GenericValue {
if x != nil {
return x.RightOperand
}
return nil
}
func (x *BinaryArithOpEvalRangeExpr) GetOp() OpType {
if x != nil {
return x.Op
}
return OpType_Invalid
}
func (x *BinaryArithOpEvalRangeExpr) GetValue() *GenericValue {
if x != nil {
return x.Value
}
return nil
}
func (x *BinaryArithOpEvalRangeExpr) GetOperandTemplateVariableName() string {
if x != nil {
return x.OperandTemplateVariableName
}
return ""
}
func (x *BinaryArithOpEvalRangeExpr) GetValueTemplateVariableName() string {
if x != nil {
return x.ValueTemplateVariableName
}
return ""
}
type RandomSampleExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SampleFactor float32 `protobuf:"fixed32,1,opt,name=sample_factor,json=sampleFactor,proto3" json:"sample_factor,omitempty"`
Predicate *Expr `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"`
}
func (x *RandomSampleExpr) Reset() {
*x = RandomSampleExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RandomSampleExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RandomSampleExpr) ProtoMessage() {}
func (x *RandomSampleExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[20]
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 RandomSampleExpr.ProtoReflect.Descriptor instead.
func (*RandomSampleExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{20}
}
func (x *RandomSampleExpr) GetSampleFactor() float32 {
if x != nil {
return x.SampleFactor
}
return 0
}
func (x *RandomSampleExpr) GetPredicate() *Expr {
if x != nil {
return x.Predicate
}
return nil
}
type AlwaysTrueExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *AlwaysTrueExpr) Reset() {
*x = AlwaysTrueExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AlwaysTrueExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AlwaysTrueExpr) ProtoMessage() {}
func (x *AlwaysTrueExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[21]
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 AlwaysTrueExpr.ProtoReflect.Descriptor instead.
func (*AlwaysTrueExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{21}
}
type Interval struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Years int64 `protobuf:"varint,1,opt,name=years,proto3" json:"years,omitempty"`
Months int64 `protobuf:"varint,2,opt,name=months,proto3" json:"months,omitempty"`
Days int64 `protobuf:"varint,3,opt,name=days,proto3" json:"days,omitempty"`
Hours int64 `protobuf:"varint,4,opt,name=hours,proto3" json:"hours,omitempty"`
Minutes int64 `protobuf:"varint,5,opt,name=minutes,proto3" json:"minutes,omitempty"`
Seconds int64 `protobuf:"varint,6,opt,name=seconds,proto3" json:"seconds,omitempty"`
}
func (x *Interval) Reset() {
*x = Interval{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Interval) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Interval) ProtoMessage() {}
func (x *Interval) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[22]
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 Interval.ProtoReflect.Descriptor instead.
func (*Interval) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{22}
}
func (x *Interval) GetYears() int64 {
if x != nil {
return x.Years
}
return 0
}
func (x *Interval) GetMonths() int64 {
if x != nil {
return x.Months
}
return 0
}
func (x *Interval) GetDays() int64 {
if x != nil {
return x.Days
}
return 0
}
func (x *Interval) GetHours() int64 {
if x != nil {
return x.Hours
}
return 0
}
func (x *Interval) GetMinutes() int64 {
if x != nil {
return x.Minutes
}
return 0
}
func (x *Interval) GetSeconds() int64 {
if x != nil {
return x.Seconds
}
return 0
}
// New expression type for the operation: (timestamp_col + interval) OP iso_string
type TimestamptzArithCompareExpr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TimestamptzColumn *ColumnInfo `protobuf:"bytes,1,opt,name=timestamptz_column,json=timestamptzColumn,proto3" json:"timestamptz_column,omitempty"`
ArithOp ArithOpType `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"` // ADD or SUB
Interval *Interval `protobuf:"bytes,3,opt,name=interval,proto3" json:"interval,omitempty"`
CompareOp OpType `protobuf:"varint,4,opt,name=compare_op,json=compareOp,proto3,enum=milvus.proto.plan.OpType" json:"compare_op,omitempty"`
CompareValue *GenericValue `protobuf:"bytes,5,opt,name=compare_value,json=compareValue,proto3" json:"compare_value,omitempty"`
}
func (x *TimestamptzArithCompareExpr) Reset() {
*x = TimestamptzArithCompareExpr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TimestamptzArithCompareExpr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TimestamptzArithCompareExpr) ProtoMessage() {}
func (x *TimestamptzArithCompareExpr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[23]
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 TimestamptzArithCompareExpr.ProtoReflect.Descriptor instead.
func (*TimestamptzArithCompareExpr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{23}
}
func (x *TimestamptzArithCompareExpr) GetTimestamptzColumn() *ColumnInfo {
if x != nil {
return x.TimestamptzColumn
}
return nil
}
func (x *TimestamptzArithCompareExpr) GetArithOp() ArithOpType {
if x != nil {
return x.ArithOp
}
return ArithOpType_Unknown
}
func (x *TimestamptzArithCompareExpr) GetInterval() *Interval {
if x != nil {
return x.Interval
}
return nil
}
func (x *TimestamptzArithCompareExpr) GetCompareOp() OpType {
if x != nil {
return x.CompareOp
}
return OpType_Invalid
}
func (x *TimestamptzArithCompareExpr) GetCompareValue() *GenericValue {
if x != nil {
return x.CompareValue
}
return nil
}
type Expr struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Expr:
//
// *Expr_TermExpr
// *Expr_UnaryExpr
// *Expr_BinaryExpr
// *Expr_CompareExpr
// *Expr_UnaryRangeExpr
// *Expr_BinaryRangeExpr
// *Expr_BinaryArithOpEvalRangeExpr
// *Expr_BinaryArithExpr
// *Expr_ValueExpr
// *Expr_ColumnExpr
// *Expr_ExistsExpr
// *Expr_AlwaysTrueExpr
// *Expr_JsonContainsExpr
// *Expr_CallExpr
// *Expr_NullExpr
// *Expr_RandomSampleExpr
// *Expr_TimestamptzArithCompareExpr
Expr isExpr_Expr `protobuf_oneof:"expr"`
IsTemplate bool `protobuf:"varint,20,opt,name=is_template,json=isTemplate,proto3" json:"is_template,omitempty"`
}
func (x *Expr) Reset() {
*x = Expr{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Expr) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Expr) ProtoMessage() {}
func (x *Expr) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[24]
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 Expr.ProtoReflect.Descriptor instead.
func (*Expr) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{24}
}
func (m *Expr) GetExpr() isExpr_Expr {
if m != nil {
return m.Expr
}
return nil
}
func (x *Expr) GetTermExpr() *TermExpr {
if x, ok := x.GetExpr().(*Expr_TermExpr); ok {
return x.TermExpr
}
return nil
}
func (x *Expr) GetUnaryExpr() *UnaryExpr {
if x, ok := x.GetExpr().(*Expr_UnaryExpr); ok {
return x.UnaryExpr
}
return nil
}
func (x *Expr) GetBinaryExpr() *BinaryExpr {
if x, ok := x.GetExpr().(*Expr_BinaryExpr); ok {
return x.BinaryExpr
}
return nil
}
func (x *Expr) GetCompareExpr() *CompareExpr {
if x, ok := x.GetExpr().(*Expr_CompareExpr); ok {
return x.CompareExpr
}
return nil
}
func (x *Expr) GetUnaryRangeExpr() *UnaryRangeExpr {
if x, ok := x.GetExpr().(*Expr_UnaryRangeExpr); ok {
return x.UnaryRangeExpr
}
return nil
}
func (x *Expr) GetBinaryRangeExpr() *BinaryRangeExpr {
if x, ok := x.GetExpr().(*Expr_BinaryRangeExpr); ok {
return x.BinaryRangeExpr
}
return nil
}
func (x *Expr) GetBinaryArithOpEvalRangeExpr() *BinaryArithOpEvalRangeExpr {
if x, ok := x.GetExpr().(*Expr_BinaryArithOpEvalRangeExpr); ok {
return x.BinaryArithOpEvalRangeExpr
}
return nil
}
func (x *Expr) GetBinaryArithExpr() *BinaryArithExpr {
if x, ok := x.GetExpr().(*Expr_BinaryArithExpr); ok {
return x.BinaryArithExpr
}
return nil
}
func (x *Expr) GetValueExpr() *ValueExpr {
if x, ok := x.GetExpr().(*Expr_ValueExpr); ok {
return x.ValueExpr
}
return nil
}
func (x *Expr) GetColumnExpr() *ColumnExpr {
if x, ok := x.GetExpr().(*Expr_ColumnExpr); ok {
return x.ColumnExpr
}
return nil
}
func (x *Expr) GetExistsExpr() *ExistsExpr {
if x, ok := x.GetExpr().(*Expr_ExistsExpr); ok {
return x.ExistsExpr
}
return nil
}
func (x *Expr) GetAlwaysTrueExpr() *AlwaysTrueExpr {
if x, ok := x.GetExpr().(*Expr_AlwaysTrueExpr); ok {
return x.AlwaysTrueExpr
}
return nil
}
func (x *Expr) GetJsonContainsExpr() *JSONContainsExpr {
if x, ok := x.GetExpr().(*Expr_JsonContainsExpr); ok {
return x.JsonContainsExpr
}
return nil
}
func (x *Expr) GetCallExpr() *CallExpr {
if x, ok := x.GetExpr().(*Expr_CallExpr); ok {
return x.CallExpr
}
return nil
}
func (x *Expr) GetNullExpr() *NullExpr {
if x, ok := x.GetExpr().(*Expr_NullExpr); ok {
return x.NullExpr
}
return nil
}
func (x *Expr) GetRandomSampleExpr() *RandomSampleExpr {
if x, ok := x.GetExpr().(*Expr_RandomSampleExpr); ok {
return x.RandomSampleExpr
}
return nil
}
func (x *Expr) GetTimestamptzArithCompareExpr() *TimestamptzArithCompareExpr {
if x, ok := x.GetExpr().(*Expr_TimestamptzArithCompareExpr); ok {
return x.TimestamptzArithCompareExpr
}
return nil
}
func (x *Expr) GetIsTemplate() bool {
if x != nil {
return x.IsTemplate
}
return false
}
type isExpr_Expr interface {
isExpr_Expr()
}
type Expr_TermExpr struct {
TermExpr *TermExpr `protobuf:"bytes,1,opt,name=term_expr,json=termExpr,proto3,oneof"`
}
type Expr_UnaryExpr struct {
UnaryExpr *UnaryExpr `protobuf:"bytes,2,opt,name=unary_expr,json=unaryExpr,proto3,oneof"`
}
type Expr_BinaryExpr struct {
BinaryExpr *BinaryExpr `protobuf:"bytes,3,opt,name=binary_expr,json=binaryExpr,proto3,oneof"`
}
type Expr_CompareExpr struct {
CompareExpr *CompareExpr `protobuf:"bytes,4,opt,name=compare_expr,json=compareExpr,proto3,oneof"`
}
type Expr_UnaryRangeExpr struct {
UnaryRangeExpr *UnaryRangeExpr `protobuf:"bytes,5,opt,name=unary_range_expr,json=unaryRangeExpr,proto3,oneof"`
}
type Expr_BinaryRangeExpr struct {
BinaryRangeExpr *BinaryRangeExpr `protobuf:"bytes,6,opt,name=binary_range_expr,json=binaryRangeExpr,proto3,oneof"`
}
type Expr_BinaryArithOpEvalRangeExpr struct {
BinaryArithOpEvalRangeExpr *BinaryArithOpEvalRangeExpr `protobuf:"bytes,7,opt,name=binary_arith_op_eval_range_expr,json=binaryArithOpEvalRangeExpr,proto3,oneof"`
}
type Expr_BinaryArithExpr struct {
BinaryArithExpr *BinaryArithExpr `protobuf:"bytes,8,opt,name=binary_arith_expr,json=binaryArithExpr,proto3,oneof"`
}
type Expr_ValueExpr struct {
ValueExpr *ValueExpr `protobuf:"bytes,9,opt,name=value_expr,json=valueExpr,proto3,oneof"`
}
type Expr_ColumnExpr struct {
ColumnExpr *ColumnExpr `protobuf:"bytes,10,opt,name=column_expr,json=columnExpr,proto3,oneof"`
}
type Expr_ExistsExpr struct {
ExistsExpr *ExistsExpr `protobuf:"bytes,11,opt,name=exists_expr,json=existsExpr,proto3,oneof"`
}
type Expr_AlwaysTrueExpr struct {
AlwaysTrueExpr *AlwaysTrueExpr `protobuf:"bytes,12,opt,name=always_true_expr,json=alwaysTrueExpr,proto3,oneof"`
}
type Expr_JsonContainsExpr struct {
JsonContainsExpr *JSONContainsExpr `protobuf:"bytes,13,opt,name=json_contains_expr,json=jsonContainsExpr,proto3,oneof"`
}
type Expr_CallExpr struct {
CallExpr *CallExpr `protobuf:"bytes,14,opt,name=call_expr,json=callExpr,proto3,oneof"`
}
type Expr_NullExpr struct {
NullExpr *NullExpr `protobuf:"bytes,15,opt,name=null_expr,json=nullExpr,proto3,oneof"`
}
type Expr_RandomSampleExpr struct {
RandomSampleExpr *RandomSampleExpr `protobuf:"bytes,16,opt,name=random_sample_expr,json=randomSampleExpr,proto3,oneof"`
}
type Expr_TimestamptzArithCompareExpr struct {
TimestamptzArithCompareExpr *TimestamptzArithCompareExpr `protobuf:"bytes,17,opt,name=timestamptz_arith_compare_expr,json=timestamptzArithCompareExpr,proto3,oneof"`
}
func (*Expr_TermExpr) isExpr_Expr() {}
func (*Expr_UnaryExpr) isExpr_Expr() {}
func (*Expr_BinaryExpr) isExpr_Expr() {}
func (*Expr_CompareExpr) isExpr_Expr() {}
func (*Expr_UnaryRangeExpr) isExpr_Expr() {}
func (*Expr_BinaryRangeExpr) isExpr_Expr() {}
func (*Expr_BinaryArithOpEvalRangeExpr) isExpr_Expr() {}
func (*Expr_BinaryArithExpr) isExpr_Expr() {}
func (*Expr_ValueExpr) isExpr_Expr() {}
func (*Expr_ColumnExpr) isExpr_Expr() {}
func (*Expr_ExistsExpr) isExpr_Expr() {}
func (*Expr_AlwaysTrueExpr) isExpr_Expr() {}
func (*Expr_JsonContainsExpr) isExpr_Expr() {}
func (*Expr_CallExpr) isExpr_Expr() {}
func (*Expr_NullExpr) isExpr_Expr() {}
func (*Expr_RandomSampleExpr) isExpr_Expr() {}
func (*Expr_TimestamptzArithCompareExpr) isExpr_Expr() {}
type VectorANNS struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
VectorType VectorType `protobuf:"varint,1,opt,name=vector_type,json=vectorType,proto3,enum=milvus.proto.plan.VectorType" json:"vector_type,omitempty"`
FieldId int64 `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
Predicates *Expr `protobuf:"bytes,3,opt,name=predicates,proto3" json:"predicates,omitempty"`
QueryInfo *QueryInfo `protobuf:"bytes,4,opt,name=query_info,json=queryInfo,proto3" json:"query_info,omitempty"`
PlaceholderTag string `protobuf:"bytes,5,opt,name=placeholder_tag,json=placeholderTag,proto3" json:"placeholder_tag,omitempty"` // always be "$0"
}
func (x *VectorANNS) Reset() {
*x = VectorANNS{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VectorANNS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VectorANNS) ProtoMessage() {}
func (x *VectorANNS) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[25]
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 VectorANNS.ProtoReflect.Descriptor instead.
func (*VectorANNS) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{25}
}
func (x *VectorANNS) GetVectorType() VectorType {
if x != nil {
return x.VectorType
}
return VectorType_BinaryVector
}
func (x *VectorANNS) GetFieldId() int64 {
if x != nil {
return x.FieldId
}
return 0
}
func (x *VectorANNS) GetPredicates() *Expr {
if x != nil {
return x.Predicates
}
return nil
}
func (x *VectorANNS) GetQueryInfo() *QueryInfo {
if x != nil {
return x.QueryInfo
}
return nil
}
func (x *VectorANNS) GetPlaceholderTag() string {
if x != nil {
return x.PlaceholderTag
}
return ""
}
type QueryPlanNode struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Predicates *Expr `protobuf:"bytes,1,opt,name=predicates,proto3" json:"predicates,omitempty"`
IsCount bool `protobuf:"varint,2,opt,name=is_count,json=isCount,proto3" json:"is_count,omitempty"`
Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
}
func (x *QueryPlanNode) Reset() {
*x = QueryPlanNode{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *QueryPlanNode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryPlanNode) ProtoMessage() {}
func (x *QueryPlanNode) ProtoReflect() protoreflect.Message {
mi := &file_plan_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 QueryPlanNode.ProtoReflect.Descriptor instead.
func (*QueryPlanNode) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{26}
}
func (x *QueryPlanNode) GetPredicates() *Expr {
if x != nil {
return x.Predicates
}
return nil
}
func (x *QueryPlanNode) GetIsCount() bool {
if x != nil {
return x.IsCount
}
return false
}
func (x *QueryPlanNode) GetLimit() int64 {
if x != nil {
return x.Limit
}
return 0
}
type ScoreFunction struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Filter *Expr `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
Weight float32 `protobuf:"fixed32,2,opt,name=weight,proto3" json:"weight,omitempty"`
}
func (x *ScoreFunction) Reset() {
*x = ScoreFunction{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScoreFunction) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScoreFunction) ProtoMessage() {}
func (x *ScoreFunction) ProtoReflect() protoreflect.Message {
mi := &file_plan_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 ScoreFunction.ProtoReflect.Descriptor instead.
func (*ScoreFunction) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{27}
}
func (x *ScoreFunction) GetFilter() *Expr {
if x != nil {
return x.Filter
}
return nil
}
func (x *ScoreFunction) GetWeight() float32 {
if x != nil {
return x.Weight
}
return 0
}
type PlanOption struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ExprUseJsonStats bool `protobuf:"varint,1,opt,name=expr_use_json_stats,json=exprUseJsonStats,proto3" json:"expr_use_json_stats,omitempty"`
}
func (x *PlanOption) Reset() {
*x = PlanOption{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlanOption) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlanOption) ProtoMessage() {}
func (x *PlanOption) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[28]
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 PlanOption.ProtoReflect.Descriptor instead.
func (*PlanOption) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{28}
}
func (x *PlanOption) GetExprUseJsonStats() bool {
if x != nil {
return x.ExprUseJsonStats
}
return false
}
type PlanNode struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Node:
//
// *PlanNode_VectorAnns
// *PlanNode_Predicates
// *PlanNode_Query
Node isPlanNode_Node `protobuf_oneof:"node"`
OutputFieldIds []int64 `protobuf:"varint,3,rep,packed,name=output_field_ids,json=outputFieldIds,proto3" json:"output_field_ids,omitempty"`
DynamicFields []string `protobuf:"bytes,5,rep,name=dynamic_fields,json=dynamicFields,proto3" json:"dynamic_fields,omitempty"`
Scorers []*ScoreFunction `protobuf:"bytes,6,rep,name=scorers,proto3" json:"scorers,omitempty"`
PlanOptions *PlanOption `protobuf:"bytes,7,opt,name=plan_options,json=planOptions,proto3" json:"plan_options,omitempty"`
}
func (x *PlanNode) Reset() {
*x = PlanNode{}
if protoimpl.UnsafeEnabled {
mi := &file_plan_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlanNode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlanNode) ProtoMessage() {}
func (x *PlanNode) ProtoReflect() protoreflect.Message {
mi := &file_plan_proto_msgTypes[29]
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 PlanNode.ProtoReflect.Descriptor instead.
func (*PlanNode) Descriptor() ([]byte, []int) {
return file_plan_proto_rawDescGZIP(), []int{29}
}
func (m *PlanNode) GetNode() isPlanNode_Node {
if m != nil {
return m.Node
}
return nil
}
func (x *PlanNode) GetVectorAnns() *VectorANNS {
if x, ok := x.GetNode().(*PlanNode_VectorAnns); ok {
return x.VectorAnns
}
return nil
}
func (x *PlanNode) GetPredicates() *Expr {
if x, ok := x.GetNode().(*PlanNode_Predicates); ok {
return x.Predicates
}
return nil
}
func (x *PlanNode) GetQuery() *QueryPlanNode {
if x, ok := x.GetNode().(*PlanNode_Query); ok {
return x.Query
}
return nil
}
func (x *PlanNode) GetOutputFieldIds() []int64 {
if x != nil {
return x.OutputFieldIds
}
return nil
}
func (x *PlanNode) GetDynamicFields() []string {
if x != nil {
return x.DynamicFields
}
return nil
}
func (x *PlanNode) GetScorers() []*ScoreFunction {
if x != nil {
return x.Scorers
}
return nil
}
func (x *PlanNode) GetPlanOptions() *PlanOption {
if x != nil {
return x.PlanOptions
}
return nil
}
type isPlanNode_Node interface {
isPlanNode_Node()
}
type PlanNode_VectorAnns struct {
VectorAnns *VectorANNS `protobuf:"bytes,1,opt,name=vector_anns,json=vectorAnns,proto3,oneof"`
}
type PlanNode_Predicates struct {
Predicates *Expr `protobuf:"bytes,2,opt,name=predicates,proto3,oneof"` // deprecated, use query instead.
}
type PlanNode_Query struct {
Query *QueryPlanNode `protobuf:"bytes,4,opt,name=query,proto3,oneof"`
}
func (*PlanNode_VectorAnns) isPlanNode_Node() {}
func (*PlanNode_Predicates) isPlanNode_Node() {}
func (*PlanNode_Query) isPlanNode_Node() {}
var File_plan_proto protoreflect.FileDescriptor
var file_plan_proto_rawDesc = []byte{
0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x1a,
0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x01,
0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b,
0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x69,
0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00,
0x52, 0x08, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x6c,
0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52,
0x08, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x72,
0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
0x6e, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x72, 0x61, 0x79,
0x56, 0x61, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x05, 0x41,
0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73,
0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
0x73, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63,
0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7e, 0x0a, 0x14, 0x53, 0x65,
0x61, 0x72, 0x63, 0x68, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63,
0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61,
0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f,
0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x09, 0x6c,
0x61, 0x73, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f,
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x05, 0x0a, 0x09, 0x51,
0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x6b,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x6b, 0x12, 0x1f, 0x0a, 0x0b,
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a,
0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x63, 0x69,
0x6d, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x6e, 0x64,
0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64,
0x49, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64,
0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64,
0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08,
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12,
0x2a, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69,
0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62,
0x6d, 0x32, 0x35, 0x5f, 0x61, 0x76, 0x67, 0x64, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52,
0x09, 0x62, 0x6d, 0x32, 0x35, 0x41, 0x76, 0x67, 0x64, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75,
0x65, 0x72, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68,
0x5f, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x32, 0x5f, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72,
0x63, 0x68, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x49, 0x6e, 0x66, 0x6f,
0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74,
0x6f, 0x72, 0x56, 0x32, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x6a,
0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x6a, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d,
0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x63,
0x61, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x63,
0x74, 0x43, 0x61, 0x73, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68,
0x5f, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x32, 0x5f, 0x69, 0x6e, 0x66,
0x6f, 0x22, 0xfb, 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x64,
0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63,
0x68, 0x65, 0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64,
0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x70, 0x72,
0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0c, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a,
0x09, 0x69, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x52, 0x08, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65,
0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x69,
0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18,
0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d,
0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x63, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67,
0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18,
0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22,
0x3f, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x31, 0x0a,
0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
0x22, 0x3f, 0x0a, 0x0a, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x31,
0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x22, 0x78, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x35,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56,
0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x0e,
0x55, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e,
0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29,
0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c,
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f,
0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e,
0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72,
0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x65,
0x78, 0x74, 0x72, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xa9, 0x03, 0x0a, 0x0f, 0x42,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e,
0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27,
0x0a, 0x0f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e,
0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x70, 0x65, 0x72,
0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65,
0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69,
0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65,
0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x6f, 0x77, 0x65,
0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c,
0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x74,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x75, 0x70, 0x70,
0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,
0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78,
0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x12, 0x66,
0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x73, 0x22, 0xcc, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70,
0x72, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6c, 0x65, 0x66, 0x74,
0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x11, 0x72, 0x69,
0x67, 0x68, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f, 0x70,
0x22, 0xd9, 0x01, 0x0a, 0x08, 0x54, 0x65, 0x72, 0x6d, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a,
0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a,
0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x5f,
0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x49,
0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf6, 0x02, 0x0a,
0x10, 0x4a, 0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x78, 0x70,
0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x3b, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a,
0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c,
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4a,
0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x2e,
0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6c,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
0x53, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70,
0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x45,
0x0a, 0x06, 0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x41,
0x6c, 0x6c, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73,
0x41, 0x6e, 0x79, 0x10, 0x03, 0x22, 0xb0, 0x01, 0x0a, 0x08, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78,
0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x32, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c,
0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x30, 0x0a, 0x06, 0x4e, 0x75, 0x6c, 0x6c, 0x4f, 0x70,
0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a,
0x06, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x73, 0x4e,
0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x02, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x55, 0x6e, 0x61,
0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x12, 0x34, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72,
0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x2d, 0x0a, 0x05,
0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x22, 0x1f, 0x0a, 0x07, 0x55,
0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69,
0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x74, 0x10, 0x01, 0x22, 0xd8, 0x01, 0x0a,
0x0a, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x12, 0x36, 0x0a, 0x02, 0x6f,
0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x52,
0x02, 0x6f, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74,
0x12, 0x2d, 0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22,
0x36, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49,
0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69,
0x63, 0x61, 0x6c, 0x41, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69,
0x63, 0x61, 0x6c, 0x4f, 0x72, 0x10, 0x02, 0x22, 0xd0, 0x01, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63,
0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x08, 0x61, 0x72, 0x69,
0x74, 0x68, 0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x61, 0x72, 0x69,
0x74, 0x68, 0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x69,
0x67, 0x68, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x42,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x45, 0x78, 0x70, 0x72, 0x12, 0x2b,
0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x72,
0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c,
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45,
0x78, 0x70, 0x72, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2e, 0x0a, 0x02, 0x6f, 0x70,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68,
0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f, 0x70, 0x22, 0xc5, 0x03, 0x0a, 0x1a, 0x42,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c,
0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63,
0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x08, 0x61, 0x72, 0x69,
0x74, 0x68, 0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x61, 0x72, 0x69,
0x74, 0x68, 0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x69,
0x67, 0x68, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x02, 0x6f, 0x70,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70,
0x65, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63,
0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x1e,
0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x54, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c,
0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61,
0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70,
0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73,
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x70,
0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61,
0x74, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x41, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72, 0x75, 0x65,
0x45, 0x78, 0x70, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
0x6c, 0x12, 0x14, 0x0a, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x12,
0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64,
0x61, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x03, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e,
0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x75,
0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xdf, 0x02,
0x0a, 0x1b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x41, 0x72, 0x69,
0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4c, 0x0a,
0x12, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x5f, 0x63, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f,
0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x74, 0x7a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x39, 0x0a, 0x08, 0x61,
0x72, 0x69, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
0x6e, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x61,
0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x74,
0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12,
0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x6f, 0x6d,
0x70, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22,
0xc5, 0x0a, 0x0a, 0x04, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, 0x72, 0x6d,
0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x54, 0x65, 0x72, 0x6d, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d,
0x45, 0x78, 0x70, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78,
0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e, 0x61,
0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x45,
0x78, 0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78,
0x70, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72,
0x79, 0x45, 0x78, 0x70, 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65,
0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x63,
0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x10, 0x75, 0x6e,
0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x61,
0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x61, 0x72, 0x79,
0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52,
0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x74, 0x0a, 0x1f, 0x62,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x69, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x5f, 0x65,
0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41,
0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45,
0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x1a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69,
0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70,
0x72, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x69, 0x74,
0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x45, 0x78, 0x70, 0x72,
0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x45,
0x78, 0x70, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x78, 0x70,
0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x78,
0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x65, 0x78, 0x70,
0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
0x45, 0x78, 0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x5f, 0x65,
0x78, 0x70, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78,
0x69, 0x73, 0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x73,
0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73,
0x5f, 0x74, 0x72, 0x75, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72, 0x75, 0x65, 0x45,
0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72, 0x75,
0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x53, 0x0a, 0x12, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x10, 0x6a, 0x73, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x61,
0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
0x6e, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61,
0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x65,
0x78, 0x70, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4e, 0x75,
0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x45, 0x78,
0x70, 0x72, 0x12, 0x53, 0x0a, 0x12, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x61, 0x6d,
0x70, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x45,
0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d,
0x70, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x75, 0x0a, 0x1e, 0x74, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x5f, 0x61, 0x72, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6d,
0x70, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x41,
0x72, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48,
0x00, 0x52, 0x1b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x41, 0x72,
0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1f,
0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42,
0x06, 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0a, 0x56, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x41, 0x4e, 0x4e, 0x53, 0x12, 0x3e, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49,
0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0a,
0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75,
0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x71, 0x75,
0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65,
0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x61, 0x67,
0x22, 0x79, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64,
0x65, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0a,
0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x58, 0x0a, 0x0d, 0x53,
0x63, 0x6f, 0x72, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06,
0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a,
0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77,
0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3b, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x6e, 0x4f, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x5f,
0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x10, 0x65, 0x78, 0x70, 0x72, 0x55, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x73, 0x22, 0x98, 0x03, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12,
0x40, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x6e, 0x6e, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41,
0x4e, 0x4e, 0x53, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x6e, 0x6e,
0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00,
0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05,
0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69,
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52,
0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03,
0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x73,
0x12, 0x25, 0x0a, 0x0e, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x65, 0x6c,
0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69,
0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x63, 0x6f, 0x72, 0x65,
0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x53, 0x63, 0x6f,
0x72, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x63, 0x6f, 0x72,
0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x50, 0x6c,
0x61, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x4f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x2a, 0xea, 0x01,
0x0a, 0x06, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72,
0x54, 0x68, 0x61, 0x6e, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65,
0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x65, 0x73, 0x73,
0x54, 0x68, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x45, 0x71,
0x75, 0x61, 0x6c, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x05,
0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x0f,
0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x07, 0x12,
0x10, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x66, 0x69, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10,
0x08, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05,
0x52, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x0a, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x6e, 0x10, 0x0b, 0x12,
0x09, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x65,
0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x68, 0x72,
0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e,
0x6e, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x0f, 0x2a, 0x58, 0x0a, 0x0b, 0x41, 0x72,
0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b,
0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x10, 0x01, 0x12,
0x07, 0x0a, 0x03, 0x53, 0x75, 0x62, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x75, 0x6c, 0x10,
0x03, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x69, 0x76, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x6f,
0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4c, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x10, 0x06, 0x2a, 0xe1, 0x01, 0x0a, 0x0a, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54,
0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x65, 0x63,
0x74, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31,
0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x46, 0x6c,
0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x15, 0x0a,
0x11, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x38, 0x56, 0x65, 0x63, 0x74,
0x6f, 0x72, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x46,
0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14,
0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73,
0x74, 0x42, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10,
0x08, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x38,
0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x09, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68,
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f,
0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_plan_proto_rawDescOnce sync.Once
file_plan_proto_rawDescData = file_plan_proto_rawDesc
)
func file_plan_proto_rawDescGZIP() []byte {
file_plan_proto_rawDescOnce.Do(func() {
file_plan_proto_rawDescData = protoimpl.X.CompressGZIP(file_plan_proto_rawDescData)
})
return file_plan_proto_rawDescData
}
var file_plan_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_plan_proto_goTypes = []interface{}{
(OpType)(0), // 0: milvus.proto.plan.OpType
(ArithOpType)(0), // 1: milvus.proto.plan.ArithOpType
(VectorType)(0), // 2: milvus.proto.plan.VectorType
(JSONContainsExpr_JSONOp)(0), // 3: milvus.proto.plan.JSONContainsExpr.JSONOp
(NullExpr_NullOp)(0), // 4: milvus.proto.plan.NullExpr.NullOp
(UnaryExpr_UnaryOp)(0), // 5: milvus.proto.plan.UnaryExpr.UnaryOp
(BinaryExpr_BinaryOp)(0), // 6: milvus.proto.plan.BinaryExpr.BinaryOp
(*GenericValue)(nil), // 7: milvus.proto.plan.GenericValue
(*Array)(nil), // 8: milvus.proto.plan.Array
(*SearchIteratorV2Info)(nil), // 9: milvus.proto.plan.SearchIteratorV2Info
(*QueryInfo)(nil), // 10: milvus.proto.plan.QueryInfo
(*ColumnInfo)(nil), // 11: milvus.proto.plan.ColumnInfo
(*ColumnExpr)(nil), // 12: milvus.proto.plan.ColumnExpr
(*ExistsExpr)(nil), // 13: milvus.proto.plan.ExistsExpr
(*ValueExpr)(nil), // 14: milvus.proto.plan.ValueExpr
(*UnaryRangeExpr)(nil), // 15: milvus.proto.plan.UnaryRangeExpr
(*BinaryRangeExpr)(nil), // 16: milvus.proto.plan.BinaryRangeExpr
(*CallExpr)(nil), // 17: milvus.proto.plan.CallExpr
(*CompareExpr)(nil), // 18: milvus.proto.plan.CompareExpr
(*TermExpr)(nil), // 19: milvus.proto.plan.TermExpr
(*JSONContainsExpr)(nil), // 20: milvus.proto.plan.JSONContainsExpr
(*NullExpr)(nil), // 21: milvus.proto.plan.NullExpr
(*UnaryExpr)(nil), // 22: milvus.proto.plan.UnaryExpr
(*BinaryExpr)(nil), // 23: milvus.proto.plan.BinaryExpr
(*BinaryArithOp)(nil), // 24: milvus.proto.plan.BinaryArithOp
(*BinaryArithExpr)(nil), // 25: milvus.proto.plan.BinaryArithExpr
(*BinaryArithOpEvalRangeExpr)(nil), // 26: milvus.proto.plan.BinaryArithOpEvalRangeExpr
(*RandomSampleExpr)(nil), // 27: milvus.proto.plan.RandomSampleExpr
(*AlwaysTrueExpr)(nil), // 28: milvus.proto.plan.AlwaysTrueExpr
(*Interval)(nil), // 29: milvus.proto.plan.Interval
(*TimestamptzArithCompareExpr)(nil), // 30: milvus.proto.plan.TimestamptzArithCompareExpr
(*Expr)(nil), // 31: milvus.proto.plan.Expr
(*VectorANNS)(nil), // 32: milvus.proto.plan.VectorANNS
(*QueryPlanNode)(nil), // 33: milvus.proto.plan.QueryPlanNode
(*ScoreFunction)(nil), // 34: milvus.proto.plan.ScoreFunction
(*PlanOption)(nil), // 35: milvus.proto.plan.PlanOption
(*PlanNode)(nil), // 36: milvus.proto.plan.PlanNode
(schemapb.DataType)(0), // 37: milvus.proto.schema.DataType
}
var file_plan_proto_depIdxs = []int32{
8, // 0: milvus.proto.plan.GenericValue.array_val:type_name -> milvus.proto.plan.Array
7, // 1: milvus.proto.plan.Array.array:type_name -> milvus.proto.plan.GenericValue
37, // 2: milvus.proto.plan.Array.element_type:type_name -> milvus.proto.schema.DataType
9, // 3: milvus.proto.plan.QueryInfo.search_iterator_v2_info:type_name -> milvus.proto.plan.SearchIteratorV2Info
37, // 4: milvus.proto.plan.QueryInfo.json_type:type_name -> milvus.proto.schema.DataType
37, // 5: milvus.proto.plan.ColumnInfo.data_type:type_name -> milvus.proto.schema.DataType
37, // 6: milvus.proto.plan.ColumnInfo.element_type:type_name -> milvus.proto.schema.DataType
11, // 7: milvus.proto.plan.ColumnExpr.info:type_name -> milvus.proto.plan.ColumnInfo
11, // 8: milvus.proto.plan.ExistsExpr.info:type_name -> milvus.proto.plan.ColumnInfo
7, // 9: milvus.proto.plan.ValueExpr.value:type_name -> milvus.proto.plan.GenericValue
11, // 10: milvus.proto.plan.UnaryRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
0, // 11: milvus.proto.plan.UnaryRangeExpr.op:type_name -> milvus.proto.plan.OpType
7, // 12: milvus.proto.plan.UnaryRangeExpr.value:type_name -> milvus.proto.plan.GenericValue
7, // 13: milvus.proto.plan.UnaryRangeExpr.extra_values:type_name -> milvus.proto.plan.GenericValue
11, // 14: milvus.proto.plan.BinaryRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
7, // 15: milvus.proto.plan.BinaryRangeExpr.lower_value:type_name -> milvus.proto.plan.GenericValue
7, // 16: milvus.proto.plan.BinaryRangeExpr.upper_value:type_name -> milvus.proto.plan.GenericValue
31, // 17: milvus.proto.plan.CallExpr.function_parameters:type_name -> milvus.proto.plan.Expr
11, // 18: milvus.proto.plan.CompareExpr.left_column_info:type_name -> milvus.proto.plan.ColumnInfo
11, // 19: milvus.proto.plan.CompareExpr.right_column_info:type_name -> milvus.proto.plan.ColumnInfo
0, // 20: milvus.proto.plan.CompareExpr.op:type_name -> milvus.proto.plan.OpType
11, // 21: milvus.proto.plan.TermExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
7, // 22: milvus.proto.plan.TermExpr.values:type_name -> milvus.proto.plan.GenericValue
11, // 23: milvus.proto.plan.JSONContainsExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
7, // 24: milvus.proto.plan.JSONContainsExpr.elements:type_name -> milvus.proto.plan.GenericValue
3, // 25: milvus.proto.plan.JSONContainsExpr.op:type_name -> milvus.proto.plan.JSONContainsExpr.JSONOp
11, // 26: milvus.proto.plan.NullExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
4, // 27: milvus.proto.plan.NullExpr.op:type_name -> milvus.proto.plan.NullExpr.NullOp
5, // 28: milvus.proto.plan.UnaryExpr.op:type_name -> milvus.proto.plan.UnaryExpr.UnaryOp
31, // 29: milvus.proto.plan.UnaryExpr.child:type_name -> milvus.proto.plan.Expr
6, // 30: milvus.proto.plan.BinaryExpr.op:type_name -> milvus.proto.plan.BinaryExpr.BinaryOp
31, // 31: milvus.proto.plan.BinaryExpr.left:type_name -> milvus.proto.plan.Expr
31, // 32: milvus.proto.plan.BinaryExpr.right:type_name -> milvus.proto.plan.Expr
11, // 33: milvus.proto.plan.BinaryArithOp.column_info:type_name -> milvus.proto.plan.ColumnInfo
1, // 34: milvus.proto.plan.BinaryArithOp.arith_op:type_name -> milvus.proto.plan.ArithOpType
7, // 35: milvus.proto.plan.BinaryArithOp.right_operand:type_name -> milvus.proto.plan.GenericValue
31, // 36: milvus.proto.plan.BinaryArithExpr.left:type_name -> milvus.proto.plan.Expr
31, // 37: milvus.proto.plan.BinaryArithExpr.right:type_name -> milvus.proto.plan.Expr
1, // 38: milvus.proto.plan.BinaryArithExpr.op:type_name -> milvus.proto.plan.ArithOpType
11, // 39: milvus.proto.plan.BinaryArithOpEvalRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
1, // 40: milvus.proto.plan.BinaryArithOpEvalRangeExpr.arith_op:type_name -> milvus.proto.plan.ArithOpType
7, // 41: milvus.proto.plan.BinaryArithOpEvalRangeExpr.right_operand:type_name -> milvus.proto.plan.GenericValue
0, // 42: milvus.proto.plan.BinaryArithOpEvalRangeExpr.op:type_name -> milvus.proto.plan.OpType
7, // 43: milvus.proto.plan.BinaryArithOpEvalRangeExpr.value:type_name -> milvus.proto.plan.GenericValue
31, // 44: milvus.proto.plan.RandomSampleExpr.predicate:type_name -> milvus.proto.plan.Expr
11, // 45: milvus.proto.plan.TimestamptzArithCompareExpr.timestamptz_column:type_name -> milvus.proto.plan.ColumnInfo
1, // 46: milvus.proto.plan.TimestamptzArithCompareExpr.arith_op:type_name -> milvus.proto.plan.ArithOpType
29, // 47: milvus.proto.plan.TimestamptzArithCompareExpr.interval:type_name -> milvus.proto.plan.Interval
0, // 48: milvus.proto.plan.TimestamptzArithCompareExpr.compare_op:type_name -> milvus.proto.plan.OpType
7, // 49: milvus.proto.plan.TimestamptzArithCompareExpr.compare_value:type_name -> milvus.proto.plan.GenericValue
19, // 50: milvus.proto.plan.Expr.term_expr:type_name -> milvus.proto.plan.TermExpr
22, // 51: milvus.proto.plan.Expr.unary_expr:type_name -> milvus.proto.plan.UnaryExpr
23, // 52: milvus.proto.plan.Expr.binary_expr:type_name -> milvus.proto.plan.BinaryExpr
18, // 53: milvus.proto.plan.Expr.compare_expr:type_name -> milvus.proto.plan.CompareExpr
15, // 54: milvus.proto.plan.Expr.unary_range_expr:type_name -> milvus.proto.plan.UnaryRangeExpr
16, // 55: milvus.proto.plan.Expr.binary_range_expr:type_name -> milvus.proto.plan.BinaryRangeExpr
26, // 56: milvus.proto.plan.Expr.binary_arith_op_eval_range_expr:type_name -> milvus.proto.plan.BinaryArithOpEvalRangeExpr
25, // 57: milvus.proto.plan.Expr.binary_arith_expr:type_name -> milvus.proto.plan.BinaryArithExpr
14, // 58: milvus.proto.plan.Expr.value_expr:type_name -> milvus.proto.plan.ValueExpr
12, // 59: milvus.proto.plan.Expr.column_expr:type_name -> milvus.proto.plan.ColumnExpr
13, // 60: milvus.proto.plan.Expr.exists_expr:type_name -> milvus.proto.plan.ExistsExpr
28, // 61: milvus.proto.plan.Expr.always_true_expr:type_name -> milvus.proto.plan.AlwaysTrueExpr
20, // 62: milvus.proto.plan.Expr.json_contains_expr:type_name -> milvus.proto.plan.JSONContainsExpr
17, // 63: milvus.proto.plan.Expr.call_expr:type_name -> milvus.proto.plan.CallExpr
21, // 64: milvus.proto.plan.Expr.null_expr:type_name -> milvus.proto.plan.NullExpr
27, // 65: milvus.proto.plan.Expr.random_sample_expr:type_name -> milvus.proto.plan.RandomSampleExpr
30, // 66: milvus.proto.plan.Expr.timestamptz_arith_compare_expr:type_name -> milvus.proto.plan.TimestamptzArithCompareExpr
2, // 67: milvus.proto.plan.VectorANNS.vector_type:type_name -> milvus.proto.plan.VectorType
31, // 68: milvus.proto.plan.VectorANNS.predicates:type_name -> milvus.proto.plan.Expr
10, // 69: milvus.proto.plan.VectorANNS.query_info:type_name -> milvus.proto.plan.QueryInfo
31, // 70: milvus.proto.plan.QueryPlanNode.predicates:type_name -> milvus.proto.plan.Expr
31, // 71: milvus.proto.plan.ScoreFunction.filter:type_name -> milvus.proto.plan.Expr
32, // 72: milvus.proto.plan.PlanNode.vector_anns:type_name -> milvus.proto.plan.VectorANNS
31, // 73: milvus.proto.plan.PlanNode.predicates:type_name -> milvus.proto.plan.Expr
33, // 74: milvus.proto.plan.PlanNode.query:type_name -> milvus.proto.plan.QueryPlanNode
34, // 75: milvus.proto.plan.PlanNode.scorers:type_name -> milvus.proto.plan.ScoreFunction
35, // 76: milvus.proto.plan.PlanNode.plan_options:type_name -> milvus.proto.plan.PlanOption
77, // [77:77] is the sub-list for method output_type
77, // [77:77] is the sub-list for method input_type
77, // [77:77] is the sub-list for extension type_name
77, // [77:77] is the sub-list for extension extendee
0, // [0:77] is the sub-list for field type_name
}
func init() { file_plan_proto_init() }
func file_plan_proto_init() {
if File_plan_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenericValue); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Array); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SearchIteratorV2Info); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ColumnInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ColumnExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExistsExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ValueExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnaryRangeExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinaryRangeExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CallExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CompareExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TermExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JSONContainsExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NullExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnaryExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinaryExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinaryArithOp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinaryArithExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BinaryArithOpEvalRangeExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RandomSampleExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AlwaysTrueExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Interval); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TimestamptzArithCompareExpr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Expr); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VectorANNS); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*QueryPlanNode); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScoreFunction); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlanOption); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_plan_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlanNode); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_plan_proto_msgTypes[0].OneofWrappers = []interface{}{
(*GenericValue_BoolVal)(nil),
(*GenericValue_Int64Val)(nil),
(*GenericValue_FloatVal)(nil),
(*GenericValue_StringVal)(nil),
(*GenericValue_ArrayVal)(nil),
}
file_plan_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_plan_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_plan_proto_msgTypes[24].OneofWrappers = []interface{}{
(*Expr_TermExpr)(nil),
(*Expr_UnaryExpr)(nil),
(*Expr_BinaryExpr)(nil),
(*Expr_CompareExpr)(nil),
(*Expr_UnaryRangeExpr)(nil),
(*Expr_BinaryRangeExpr)(nil),
(*Expr_BinaryArithOpEvalRangeExpr)(nil),
(*Expr_BinaryArithExpr)(nil),
(*Expr_ValueExpr)(nil),
(*Expr_ColumnExpr)(nil),
(*Expr_ExistsExpr)(nil),
(*Expr_AlwaysTrueExpr)(nil),
(*Expr_JsonContainsExpr)(nil),
(*Expr_CallExpr)(nil),
(*Expr_NullExpr)(nil),
(*Expr_RandomSampleExpr)(nil),
(*Expr_TimestamptzArithCompareExpr)(nil),
}
file_plan_proto_msgTypes[29].OneofWrappers = []interface{}{
(*PlanNode_VectorAnns)(nil),
(*PlanNode_Predicates)(nil),
(*PlanNode_Query)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_plan_proto_rawDesc,
NumEnums: 7,
NumMessages: 30,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_plan_proto_goTypes,
DependencyIndexes: file_plan_proto_depIdxs,
EnumInfos: file_plan_proto_enumTypes,
MessageInfos: file_plan_proto_msgTypes,
}.Build()
File_plan_proto = out.File
file_plan_proto_rawDesc = nil
file_plan_proto_goTypes = nil
file_plan_proto_depIdxs = nil
}