feat: substrait extension logical node use column index not name (#285)

* feat: use index for sub ext plan

Signed-off-by: discord9 <discord9@163.com>

* make all

Signed-off-by: discord9 <discord9@163.com>

* chore: update typos

Signed-off-by: discord9 <discord9@163.com>

---------

Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
discord9
2025-10-22 15:55:10 +08:00
committed by GitHub
parent 9d93fc3363
commit d9541cd111
6 changed files with 4308 additions and 805 deletions
+3
View File
@@ -2,4 +2,7 @@
extend-exclude = [
# Exclude all generated files
"**/greptime/v1/**",
"java/**",
"go/**",
"c++/**"
]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+283 -76
View File
@@ -113,10 +113,20 @@ type InstantManipulate struct {
Interval int64 `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"`
// Look-back delta in millisecond
LookbackDelta int64 `protobuf:"varint,4,opt,name=lookback_delta,json=lookbackDelta,proto3" json:"lookback_delta,omitempty"`
// Column name of time index column
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
//
// Deprecated: Do not use.
TimeIndex string `protobuf:"bytes,5,opt,name=time_index,json=timeIndex,proto3" json:"time_index,omitempty"`
// Optional field column name for validating staleness
// [DEPRECATED] Optional field column name for validating staleness.
// Use `field_index_idx` instead.
//
// Deprecated: Do not use.
FieldIndex string `protobuf:"bytes,6,opt,name=field_index,json=fieldIndex,proto3" json:"field_index,omitempty"`
// Column index of time index column
TimeIndexIdx uint64 `protobuf:"varint,7,opt,name=time_index_idx,json=timeIndexIdx,proto3" json:"time_index_idx,omitempty"`
// Optional field column index for validating staleness
FieldIndexIdx uint64 `protobuf:"varint,8,opt,name=field_index_idx,json=fieldIndexIdx,proto3" json:"field_index_idx,omitempty"`
}
func (x *InstantManipulate) Reset() {
@@ -179,6 +189,7 @@ func (x *InstantManipulate) GetLookbackDelta() int64 {
return 0
}
// Deprecated: Do not use.
func (x *InstantManipulate) GetTimeIndex() string {
if x != nil {
return x.TimeIndex
@@ -186,6 +197,7 @@ func (x *InstantManipulate) GetTimeIndex() string {
return ""
}
// Deprecated: Do not use.
func (x *InstantManipulate) GetFieldIndex() string {
if x != nil {
return x.FieldIndex
@@ -193,6 +205,20 @@ func (x *InstantManipulate) GetFieldIndex() string {
return ""
}
func (x *InstantManipulate) GetTimeIndexIdx() uint64 {
if x != nil {
return x.TimeIndexIdx
}
return 0
}
func (x *InstantManipulate) GetFieldIndexIdx() uint64 {
if x != nil {
return x.FieldIndexIdx
}
return 0
}
type SeriesNormalize struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -200,12 +226,22 @@ type SeriesNormalize struct {
// Offset in millisecond
Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
// Column name of time index column
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
//
// Deprecated: Do not use.
TimeIndex string `protobuf:"bytes,2,opt,name=time_index,json=timeIndex,proto3" json:"time_index,omitempty"`
// Whether to filter out NaN value
FilterNan bool `protobuf:"varint,3,opt,name=filter_nan,json=filterNan,proto3" json:"filter_nan,omitempty"`
// Names of tag columns
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
//
// Deprecated: Do not use.
TagColumns []string `protobuf:"bytes,4,rep,name=tag_columns,json=tagColumns,proto3" json:"tag_columns,omitempty"`
// Column index of time index column
TimeIndexIdx uint64 `protobuf:"varint,5,opt,name=time_index_idx,json=timeIndexIdx,proto3" json:"time_index_idx,omitempty"`
// Indices of tag columns
TagColumnIndices []uint64 `protobuf:"varint,6,rep,packed,name=tag_column_indices,json=tagColumnIndices,proto3" json:"tag_column_indices,omitempty"`
}
func (x *SeriesNormalize) Reset() {
@@ -247,6 +283,7 @@ func (x *SeriesNormalize) GetOffset() int64 {
return 0
}
// Deprecated: Do not use.
func (x *SeriesNormalize) GetTimeIndex() string {
if x != nil {
return x.TimeIndex
@@ -261,6 +298,7 @@ func (x *SeriesNormalize) GetFilterNan() bool {
return false
}
// Deprecated: Do not use.
func (x *SeriesNormalize) GetTagColumns() []string {
if x != nil {
return x.TagColumns
@@ -268,15 +306,39 @@ func (x *SeriesNormalize) GetTagColumns() []string {
return nil
}
func (x *SeriesNormalize) GetTimeIndexIdx() uint64 {
if x != nil {
return x.TimeIndexIdx
}
return 0
}
func (x *SeriesNormalize) GetTagColumnIndices() []uint64 {
if x != nil {
return x.TagColumnIndices
}
return nil
}
type SeriesDivide struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Names of tag columns
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
//
// Deprecated: Do not use.
TagColumns []string `protobuf:"bytes,1,rep,name=tag_columns,json=tagColumns,proto3" json:"tag_columns,omitempty"`
// Name of time index column
// [DEPRECATED] Name of time index column.
// Use `time_index_column_idx` instead.
//
// Deprecated: Do not use.
TimeIndexColumn string `protobuf:"bytes,2,opt,name=time_index_column,json=timeIndexColumn,proto3" json:"time_index_column,omitempty"`
// Indices of tag columns
TagColumnIndices []uint64 `protobuf:"varint,3,rep,packed,name=tag_column_indices,json=tagColumnIndices,proto3" json:"tag_column_indices,omitempty"`
// Index of time index column
TimeIndexColumnIdx uint64 `protobuf:"varint,4,opt,name=time_index_column_idx,json=timeIndexColumnIdx,proto3" json:"time_index_column_idx,omitempty"`
}
func (x *SeriesDivide) Reset() {
@@ -311,6 +373,7 @@ func (*SeriesDivide) Descriptor() ([]byte, []int) {
return file_substrait_extension_promql_plan_proto_rawDescGZIP(), []int{3}
}
// Deprecated: Do not use.
func (x *SeriesDivide) GetTagColumns() []string {
if x != nil {
return x.TagColumns
@@ -318,6 +381,7 @@ func (x *SeriesDivide) GetTagColumns() []string {
return nil
}
// Deprecated: Do not use.
func (x *SeriesDivide) GetTimeIndexColumn() string {
if x != nil {
return x.TimeIndexColumn
@@ -325,6 +389,20 @@ func (x *SeriesDivide) GetTimeIndexColumn() string {
return ""
}
func (x *SeriesDivide) GetTagColumnIndices() []uint64 {
if x != nil {
return x.TagColumnIndices
}
return nil
}
func (x *SeriesDivide) GetTimeIndexColumnIdx() uint64 {
if x != nil {
return x.TimeIndexColumnIdx
}
return 0
}
type RangeManipulate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -338,10 +416,20 @@ type RangeManipulate struct {
Interval int64 `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"`
// Range in millisecond
Range int64 `protobuf:"varint,4,opt,name=range,proto3" json:"range,omitempty"`
// Column name of time index column
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
//
// Deprecated: Do not use.
TimeIndex string `protobuf:"bytes,5,opt,name=time_index,json=timeIndex,proto3" json:"time_index,omitempty"`
// Names of tag columns
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
//
// Deprecated: Do not use.
TagColumns []string `protobuf:"bytes,6,rep,name=tag_columns,json=tagColumns,proto3" json:"tag_columns,omitempty"`
// Column index of time index column
TimeIndexIdx uint64 `protobuf:"varint,7,opt,name=time_index_idx,json=timeIndexIdx,proto3" json:"time_index_idx,omitempty"`
// Indices of tag columns
TagColumnIndices []uint64 `protobuf:"varint,8,rep,packed,name=tag_column_indices,json=tagColumnIndices,proto3" json:"tag_column_indices,omitempty"`
}
func (x *RangeManipulate) Reset() {
@@ -404,6 +492,7 @@ func (x *RangeManipulate) GetRange() int64 {
return 0
}
// Deprecated: Do not use.
func (x *RangeManipulate) GetTimeIndex() string {
if x != nil {
return x.TimeIndex
@@ -411,6 +500,7 @@ func (x *RangeManipulate) GetTimeIndex() string {
return ""
}
// Deprecated: Do not use.
func (x *RangeManipulate) GetTagColumns() []string {
if x != nil {
return x.TagColumns
@@ -418,6 +508,20 @@ func (x *RangeManipulate) GetTagColumns() []string {
return nil
}
func (x *RangeManipulate) GetTimeIndexIdx() uint64 {
if x != nil {
return x.TimeIndexIdx
}
return 0
}
func (x *RangeManipulate) GetTagColumnIndices() []uint64 {
if x != nil {
return x.TagColumnIndices
}
return nil
}
type ScalarCalculate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -429,12 +533,27 @@ type ScalarCalculate struct {
End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
// Interval in millisecond
Interval int64 `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"`
// Column name of time index column
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
//
// Deprecated: Do not use.
TimeIndex string `protobuf:"bytes,5,opt,name=time_index,json=timeIndex,proto3" json:"time_index,omitempty"`
// Names of tag columns
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
//
// Deprecated: Do not use.
TagColumns []string `protobuf:"bytes,6,rep,name=tag_columns,json=tagColumns,proto3" json:"tag_columns,omitempty"`
// Column name of field column
// [DEPRECATED] Column name of field column.
// Use `field_column_idx` instead.
//
// Deprecated: Do not use.
FieldColumn string `protobuf:"bytes,7,opt,name=field_column,json=fieldColumn,proto3" json:"field_column,omitempty"`
// Column index of time index column
TimeIndexIdx uint64 `protobuf:"varint,8,opt,name=time_index_idx,json=timeIndexIdx,proto3" json:"time_index_idx,omitempty"`
// Indices of tag columns
TagColumnIndices []uint64 `protobuf:"varint,9,rep,packed,name=tag_column_indices,json=tagColumnIndices,proto3" json:"tag_column_indices,omitempty"`
// Column index of field column
FieldColumnIdx uint64 `protobuf:"varint,10,opt,name=field_column_idx,json=fieldColumnIdx,proto3" json:"field_column_idx,omitempty"`
}
func (x *ScalarCalculate) Reset() {
@@ -490,6 +609,7 @@ func (x *ScalarCalculate) GetInterval() int64 {
return 0
}
// Deprecated: Do not use.
func (x *ScalarCalculate) GetTimeIndex() string {
if x != nil {
return x.TimeIndex
@@ -497,6 +617,7 @@ func (x *ScalarCalculate) GetTimeIndex() string {
return ""
}
// Deprecated: Do not use.
func (x *ScalarCalculate) GetTagColumns() []string {
if x != nil {
return x.TagColumns
@@ -504,6 +625,7 @@ func (x *ScalarCalculate) GetTagColumns() []string {
return nil
}
// Deprecated: Do not use.
func (x *ScalarCalculate) GetFieldColumn() string {
if x != nil {
return x.FieldColumn
@@ -511,6 +633,27 @@ func (x *ScalarCalculate) GetFieldColumn() string {
return ""
}
func (x *ScalarCalculate) GetTimeIndexIdx() uint64 {
if x != nil {
return x.TimeIndexIdx
}
return 0
}
func (x *ScalarCalculate) GetTagColumnIndices() []uint64 {
if x != nil {
return x.TagColumnIndices
}
return nil
}
func (x *ScalarCalculate) GetFieldColumnIdx() uint64 {
if x != nil {
return x.FieldColumnIdx
}
return 0
}
type Absent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -522,12 +665,22 @@ type Absent struct {
End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
// Step in millisecond
Step int64 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"`
// Column name of time index column
// [DEPRECATED] Column name of time index column.
// Use `time_index_column_idx` instead.
//
// Deprecated: Do not use.
TimeIndexColumn string `protobuf:"bytes,4,opt,name=time_index_column,json=timeIndexColumn,proto3" json:"time_index_column,omitempty"`
// Column name of value column
// [DEPRECATED] Column name of value column.
// Use `value_column_idx` instead.
//
// Deprecated: Do not use.
ValueColumn string `protobuf:"bytes,5,opt,name=value_column,json=valueColumn,proto3" json:"value_column,omitempty"`
// Fake labels as key-value pairs
FakeLabels []*LabelPair `protobuf:"bytes,6,rep,name=fake_labels,json=fakeLabels,proto3" json:"fake_labels,omitempty"`
// Column index of time index column
TimeIndexColumnIdx uint64 `protobuf:"varint,7,opt,name=time_index_column_idx,json=timeIndexColumnIdx,proto3" json:"time_index_column_idx,omitempty"`
// Column index of value column
ValueColumnIdx uint64 `protobuf:"varint,8,opt,name=value_column_idx,json=valueColumnIdx,proto3" json:"value_column_idx,omitempty"`
}
func (x *Absent) Reset() {
@@ -583,6 +736,7 @@ func (x *Absent) GetStep() int64 {
return 0
}
// Deprecated: Do not use.
func (x *Absent) GetTimeIndexColumn() string {
if x != nil {
return x.TimeIndexColumn
@@ -590,6 +744,7 @@ func (x *Absent) GetTimeIndexColumn() string {
return ""
}
// Deprecated: Do not use.
func (x *Absent) GetValueColumn() string {
if x != nil {
return x.ValueColumn
@@ -604,6 +759,20 @@ func (x *Absent) GetFakeLabels() []*LabelPair {
return nil
}
func (x *Absent) GetTimeIndexColumnIdx() uint64 {
if x != nil {
return x.TimeIndexColumnIdx
}
return 0
}
func (x *Absent) GetValueColumnIdx() uint64 {
if x != nil {
return x.ValueColumnIdx
}
return 0
}
type LabelPair struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -671,7 +840,7 @@ var file_substrait_extension_promql_plan_proto_rawDesc = []byte{
0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18,
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22,
0xbe, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x6e, 0x69, 0x70,
0x94, 0x02, 0x0a, 0x11, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4d, 0x61, 0x6e, 0x69, 0x70,
0x75, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65,
0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a,
@@ -679,69 +848,107 @@ var file_substrait_extension_promql_plan_proto_rawDesc = []byte{
0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f,
0x6b, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x6b, 0x62, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x74, 0x61,
0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78,
0x22, 0x88, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4e, 0x6f, 0x72, 0x6d, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x66,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x09, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61,
0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0a, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x5b, 0x0a, 0x0c, 0x53,
0x65, 0x72, 0x69, 0x65, 0x73, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74,
0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x0a, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11,
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64,
0x65, 0x78, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x52, 0x61, 0x6e,
0x67, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61,
0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
0x03, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x43,
0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x61,
0x72, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74,
0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65,
0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1d,
0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a,
0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x21,
0x12, 0x21, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e,
0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x66, 0x69,
0x65, 0x6c, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65,
0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04,
0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x12, 0x26,
0x0a, 0x0f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64,
0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e,
0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x22, 0xe4, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x69, 0x65,
0x73, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x12, 0x21, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f,
0x6e, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x4e, 0x61, 0x6e, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x74,
0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d,
0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28,
0x04, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x12,
0x2c, 0x0a, 0x12, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e,
0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x74, 0x61, 0x67,
0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xc4, 0x01,
0x0a, 0x0c, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x44, 0x69, 0x76, 0x69, 0x64, 0x65, 0x12, 0x23,
0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65,
0x78, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02,
0x18, 0x01, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52,
0x10, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65,
0x73, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f,
0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04,
0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x49, 0x64, 0x78, 0x22, 0x87, 0x02, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61,
0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10,
0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64,
0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05,
0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e,
0x67, 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c,
0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a,
0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69,
0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x07, 0x20, 0x01,
0x28, 0x04, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78,
0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69,
0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x74, 0x61,
0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xc2,
0x02, 0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61,
0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09,
0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x61, 0x67,
0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02,
0x18, 0x01, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x25,
0x0a, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x07,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x22, 0xd4, 0x01, 0x0a, 0x06, 0x41, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61,
0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
0x03, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65,
0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f,
0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f,
0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x61, 0x6b, 0x65, 0x5f,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73,
0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x66, 0x61,
0x6b, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0x33, 0x0a, 0x09, 0x4c, 0x61, 0x62, 0x65,
0x6c, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3f, 0x5a,
0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70,
0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d,
0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74,
0x72, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x43,
0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e,
0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74,
0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x78, 0x12, 0x2c, 0x0a, 0x12, 0x74,
0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65,
0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, 0x52, 0x10, 0x74, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x65,
0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
0x49, 0x64, 0x78, 0x22, 0xb9, 0x02, 0x0a, 0x06, 0x41, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x14,
0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73,
0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x2e, 0x0a, 0x11, 0x74, 0x69,
0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49,
0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x25, 0x0a, 0x0c, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x66, 0x61, 0x6b, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61,
0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62,
0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x66, 0x61, 0x6b, 0x65, 0x4c, 0x61, 0x62, 0x65,
0x6c, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78,
0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28,
0x04, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x75,
0x6d, 0x6e, 0x49, 0x64, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63,
0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52,
0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x64, 0x78, 0x22,
0x33, 0x0a, 0x09, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x42, 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x2f,
0x67, 0x72, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
0x6f, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
File diff suppressed because it is too large Load Diff
+65 -26
View File
@@ -36,28 +36,46 @@ message InstantManipulate {
int64 interval = 3;
// Look-back delta in millisecond
int64 lookback_delta = 4;
// Column name of time index column
string time_index = 5;
// Optional field column name for validating staleness
string field_index = 6;
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
string time_index = 5 [deprecated = true];
// [DEPRECATED] Optional field column name for validating staleness.
// Use `field_index_idx` instead.
string field_index = 6 [deprecated = true];
// Column index of time index column
uint64 time_index_idx = 7;
// Optional field column index for validating staleness
uint64 field_index_idx = 8;
}
message SeriesNormalize {
// Offset in millisecond
int64 offset = 1;
// Column name of time index column
string time_index = 2;
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
string time_index = 2 [deprecated = true];
// Whether to filter out NaN value
bool filter_nan = 3;
// Names of tag columns
repeated string tag_columns = 4;
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
repeated string tag_columns = 4 [deprecated = true];
// Column index of time index column
uint64 time_index_idx = 5;
// Indices of tag columns
repeated uint64 tag_column_indices = 6;
}
message SeriesDivide {
// Names of tag columns
repeated string tag_columns = 1;
// Name of time index column
string time_index_column = 2;
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
repeated string tag_columns = 1 [deprecated = true];
// [DEPRECATED] Name of time index column.
// Use `time_index_column_idx` instead.
string time_index_column = 2 [deprecated = true];
// Indices of tag columns
repeated uint64 tag_column_indices = 3;
// Index of time index column
uint64 time_index_column_idx = 4;
}
message RangeManipulate {
@@ -69,10 +87,16 @@ message RangeManipulate {
int64 interval = 3;
// Range in millisecond
int64 range = 4;
// Column name of time index column
string time_index = 5;
// Names of tag columns
repeated string tag_columns = 6;
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
string time_index = 5 [deprecated = true];
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
repeated string tag_columns = 6 [deprecated = true];
// Column index of time index column
uint64 time_index_idx = 7;
// Indices of tag columns
repeated uint64 tag_column_indices = 8;
}
message ScalarCalculate {
@@ -82,12 +106,21 @@ message ScalarCalculate {
int64 end = 2;
// Interval in millisecond
int64 interval = 3;
// Column name of time index column
string time_index = 5;
// Names of tag columns
repeated string tag_columns = 6;
// Column name of field column
string field_column = 7;
// [DEPRECATED] Column name of time index column.
// Use `time_index_idx` instead.
string time_index = 5 [deprecated = true];
// [DEPRECATED] Names of tag columns.
// Use `tag_column_indices` instead.
repeated string tag_columns = 6 [deprecated = true];
// [DEPRECATED] Column name of field column.
// Use `field_column_idx` instead.
string field_column = 7 [deprecated = true];
// Column index of time index column
uint64 time_index_idx = 8;
// Indices of tag columns
repeated uint64 tag_column_indices = 9;
// Column index of field column
uint64 field_column_idx = 10;
}
message Absent {
@@ -97,12 +130,18 @@ message Absent {
int64 end = 2;
// Step in millisecond
int64 step = 3;
// Column name of time index column
string time_index_column = 4;
// Column name of value column
string value_column = 5;
// [DEPRECATED] Column name of time index column.
// Use `time_index_column_idx` instead.
string time_index_column = 4 [deprecated = true];
// [DEPRECATED] Column name of value column.
// Use `value_column_idx` instead.
string value_column = 5 [deprecated = true];
// Fake labels as key-value pairs
repeated LabelPair fake_labels = 6;
// Column index of time index column
uint64 time_index_column_idx = 7;
// Column index of value column
uint64 value_column_idx = 8;
}
message LabelPair {