github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/execinfrapb/processors_sql.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: sql/execinfrapb/processors_sql.proto
     3  
     4  package execinfrapb
     5  
     6  /*
     7  	Beware! This package name must not be changed, even though it doesn't match
     8  	the Go package name, because it defines the Protobuf message names which
     9  	can't be changed without breaking backward compatibility.
    10  */
    11  
    12  import proto "github.com/gogo/protobuf/proto"
    13  import fmt "fmt"
    14  import math "math"
    15  import invertedexpr "github.com/cockroachdb/cockroach/pkg/sql/opt/invertedexpr"
    16  import sqlbase "github.com/cockroachdb/cockroach/pkg/sql/sqlbase"
    17  import types "github.com/cockroachdb/cockroach/pkg/sql/types"
    18  
    19  import io "io"
    20  
    21  // Reference imports to suppress errors if they are not otherwise used.
    22  var _ = proto.Marshal
    23  var _ = fmt.Errorf
    24  var _ = math.Inf
    25  
    26  // This is a compile-time assertion to ensure that this generated file
    27  // is compatible with the proto package it is being compiled against.
    28  // A compilation error at this line likely means your copy of the
    29  // proto package needs to be updated.
    30  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    31  
    32  // ScanVisibility controls which columns are seen by scans - just normal
    33  // columns, or normal columns and also in-progress schema change columns.
    34  type ScanVisibility int32
    35  
    36  const (
    37  	ScanVisibility_PUBLIC                ScanVisibility = 0
    38  	ScanVisibility_PUBLIC_AND_NOT_PUBLIC ScanVisibility = 1
    39  )
    40  
    41  var ScanVisibility_name = map[int32]string{
    42  	0: "PUBLIC",
    43  	1: "PUBLIC_AND_NOT_PUBLIC",
    44  }
    45  var ScanVisibility_value = map[string]int32{
    46  	"PUBLIC":                0,
    47  	"PUBLIC_AND_NOT_PUBLIC": 1,
    48  }
    49  
    50  func (x ScanVisibility) Enum() *ScanVisibility {
    51  	p := new(ScanVisibility)
    52  	*p = x
    53  	return p
    54  }
    55  func (x ScanVisibility) String() string {
    56  	return proto.EnumName(ScanVisibility_name, int32(x))
    57  }
    58  func (x *ScanVisibility) UnmarshalJSON(data []byte) error {
    59  	value, err := proto.UnmarshalJSONEnum(ScanVisibility_value, data, "ScanVisibility")
    60  	if err != nil {
    61  		return err
    62  	}
    63  	*x = ScanVisibility(value)
    64  	return nil
    65  }
    66  func (ScanVisibility) EnumDescriptor() ([]byte, []int) {
    67  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{0}
    68  }
    69  
    70  // These mirror the aggregate functions supported by sql/parser. See
    71  // sql/parser/aggregate_builtins.go.
    72  type AggregatorSpec_Func int32
    73  
    74  const (
    75  	AggregatorSpec_ANY_NOT_NULL   AggregatorSpec_Func = 0
    76  	AggregatorSpec_AVG            AggregatorSpec_Func = 1
    77  	AggregatorSpec_BOOL_AND       AggregatorSpec_Func = 2
    78  	AggregatorSpec_BOOL_OR        AggregatorSpec_Func = 3
    79  	AggregatorSpec_CONCAT_AGG     AggregatorSpec_Func = 4
    80  	AggregatorSpec_COUNT          AggregatorSpec_Func = 5
    81  	AggregatorSpec_MAX            AggregatorSpec_Func = 7
    82  	AggregatorSpec_MIN            AggregatorSpec_Func = 8
    83  	AggregatorSpec_STDDEV         AggregatorSpec_Func = 9
    84  	AggregatorSpec_SUM            AggregatorSpec_Func = 10
    85  	AggregatorSpec_SUM_INT        AggregatorSpec_Func = 11
    86  	AggregatorSpec_VARIANCE       AggregatorSpec_Func = 12
    87  	AggregatorSpec_XOR_AGG        AggregatorSpec_Func = 13
    88  	AggregatorSpec_COUNT_ROWS     AggregatorSpec_Func = 14
    89  	AggregatorSpec_SQRDIFF        AggregatorSpec_Func = 15
    90  	AggregatorSpec_FINAL_VARIANCE AggregatorSpec_Func = 16
    91  	AggregatorSpec_FINAL_STDDEV   AggregatorSpec_Func = 17
    92  	AggregatorSpec_ARRAY_AGG      AggregatorSpec_Func = 18
    93  	AggregatorSpec_JSON_AGG       AggregatorSpec_Func = 19
    94  	// JSONB_AGG is an alias for JSON_AGG, they do the same thing.
    95  	AggregatorSpec_JSONB_AGG            AggregatorSpec_Func = 20
    96  	AggregatorSpec_STRING_AGG           AggregatorSpec_Func = 21
    97  	AggregatorSpec_BIT_AND              AggregatorSpec_Func = 22
    98  	AggregatorSpec_BIT_OR               AggregatorSpec_Func = 23
    99  	AggregatorSpec_CORR                 AggregatorSpec_Func = 24
   100  	AggregatorSpec_PERCENTILE_DISC_IMPL AggregatorSpec_Func = 25
   101  	AggregatorSpec_PERCENTILE_CONT_IMPL AggregatorSpec_Func = 26
   102  )
   103  
   104  var AggregatorSpec_Func_name = map[int32]string{
   105  	0:  "ANY_NOT_NULL",
   106  	1:  "AVG",
   107  	2:  "BOOL_AND",
   108  	3:  "BOOL_OR",
   109  	4:  "CONCAT_AGG",
   110  	5:  "COUNT",
   111  	7:  "MAX",
   112  	8:  "MIN",
   113  	9:  "STDDEV",
   114  	10: "SUM",
   115  	11: "SUM_INT",
   116  	12: "VARIANCE",
   117  	13: "XOR_AGG",
   118  	14: "COUNT_ROWS",
   119  	15: "SQRDIFF",
   120  	16: "FINAL_VARIANCE",
   121  	17: "FINAL_STDDEV",
   122  	18: "ARRAY_AGG",
   123  	19: "JSON_AGG",
   124  	20: "JSONB_AGG",
   125  	21: "STRING_AGG",
   126  	22: "BIT_AND",
   127  	23: "BIT_OR",
   128  	24: "CORR",
   129  	25: "PERCENTILE_DISC_IMPL",
   130  	26: "PERCENTILE_CONT_IMPL",
   131  }
   132  var AggregatorSpec_Func_value = map[string]int32{
   133  	"ANY_NOT_NULL":         0,
   134  	"AVG":                  1,
   135  	"BOOL_AND":             2,
   136  	"BOOL_OR":              3,
   137  	"CONCAT_AGG":           4,
   138  	"COUNT":                5,
   139  	"MAX":                  7,
   140  	"MIN":                  8,
   141  	"STDDEV":               9,
   142  	"SUM":                  10,
   143  	"SUM_INT":              11,
   144  	"VARIANCE":             12,
   145  	"XOR_AGG":              13,
   146  	"COUNT_ROWS":           14,
   147  	"SQRDIFF":              15,
   148  	"FINAL_VARIANCE":       16,
   149  	"FINAL_STDDEV":         17,
   150  	"ARRAY_AGG":            18,
   151  	"JSON_AGG":             19,
   152  	"JSONB_AGG":            20,
   153  	"STRING_AGG":           21,
   154  	"BIT_AND":              22,
   155  	"BIT_OR":               23,
   156  	"CORR":                 24,
   157  	"PERCENTILE_DISC_IMPL": 25,
   158  	"PERCENTILE_CONT_IMPL": 26,
   159  }
   160  
   161  func (x AggregatorSpec_Func) Enum() *AggregatorSpec_Func {
   162  	p := new(AggregatorSpec_Func)
   163  	*p = x
   164  	return p
   165  }
   166  func (x AggregatorSpec_Func) String() string {
   167  	return proto.EnumName(AggregatorSpec_Func_name, int32(x))
   168  }
   169  func (x *AggregatorSpec_Func) UnmarshalJSON(data []byte) error {
   170  	value, err := proto.UnmarshalJSONEnum(AggregatorSpec_Func_value, data, "AggregatorSpec_Func")
   171  	if err != nil {
   172  		return err
   173  	}
   174  	*x = AggregatorSpec_Func(value)
   175  	return nil
   176  }
   177  func (AggregatorSpec_Func) EnumDescriptor() ([]byte, []int) {
   178  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{12, 0}
   179  }
   180  
   181  type AggregatorSpec_Type int32
   182  
   183  const (
   184  	// This setting exists just for backwards compatibility; it's equivalent to
   185  	// SCALAR when there are no grouping columns, and to NON_SCALAR when there
   186  	// are grouping columns.
   187  	AggregatorSpec_AUTO AggregatorSpec_Type = 0
   188  	// A scalar aggregation has no grouping columns and always returns one
   189  	// result row.
   190  	AggregatorSpec_SCALAR AggregatorSpec_Type = 1
   191  	// A non-scalar aggregation returns no rows if there are no input rows; it
   192  	// may or may not have grouping columns.
   193  	AggregatorSpec_NON_SCALAR AggregatorSpec_Type = 2
   194  )
   195  
   196  var AggregatorSpec_Type_name = map[int32]string{
   197  	0: "AUTO",
   198  	1: "SCALAR",
   199  	2: "NON_SCALAR",
   200  }
   201  var AggregatorSpec_Type_value = map[string]int32{
   202  	"AUTO":       0,
   203  	"SCALAR":     1,
   204  	"NON_SCALAR": 2,
   205  }
   206  
   207  func (x AggregatorSpec_Type) Enum() *AggregatorSpec_Type {
   208  	p := new(AggregatorSpec_Type)
   209  	*p = x
   210  	return p
   211  }
   212  func (x AggregatorSpec_Type) String() string {
   213  	return proto.EnumName(AggregatorSpec_Type_name, int32(x))
   214  }
   215  func (x *AggregatorSpec_Type) UnmarshalJSON(data []byte) error {
   216  	value, err := proto.UnmarshalJSONEnum(AggregatorSpec_Type_value, data, "AggregatorSpec_Type")
   217  	if err != nil {
   218  		return err
   219  	}
   220  	*x = AggregatorSpec_Type(value)
   221  	return nil
   222  }
   223  func (AggregatorSpec_Type) EnumDescriptor() ([]byte, []int) {
   224  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{12, 1}
   225  }
   226  
   227  type WindowerSpec_WindowFunc int32
   228  
   229  const (
   230  	// These mirror window functions from window_builtins.go.
   231  	WindowerSpec_ROW_NUMBER   WindowerSpec_WindowFunc = 0
   232  	WindowerSpec_RANK         WindowerSpec_WindowFunc = 1
   233  	WindowerSpec_DENSE_RANK   WindowerSpec_WindowFunc = 2
   234  	WindowerSpec_PERCENT_RANK WindowerSpec_WindowFunc = 3
   235  	WindowerSpec_CUME_DIST    WindowerSpec_WindowFunc = 4
   236  	WindowerSpec_NTILE        WindowerSpec_WindowFunc = 5
   237  	WindowerSpec_LAG          WindowerSpec_WindowFunc = 6
   238  	WindowerSpec_LEAD         WindowerSpec_WindowFunc = 7
   239  	WindowerSpec_FIRST_VALUE  WindowerSpec_WindowFunc = 8
   240  	WindowerSpec_LAST_VALUE   WindowerSpec_WindowFunc = 9
   241  	WindowerSpec_NTH_VALUE    WindowerSpec_WindowFunc = 10
   242  )
   243  
   244  var WindowerSpec_WindowFunc_name = map[int32]string{
   245  	0:  "ROW_NUMBER",
   246  	1:  "RANK",
   247  	2:  "DENSE_RANK",
   248  	3:  "PERCENT_RANK",
   249  	4:  "CUME_DIST",
   250  	5:  "NTILE",
   251  	6:  "LAG",
   252  	7:  "LEAD",
   253  	8:  "FIRST_VALUE",
   254  	9:  "LAST_VALUE",
   255  	10: "NTH_VALUE",
   256  }
   257  var WindowerSpec_WindowFunc_value = map[string]int32{
   258  	"ROW_NUMBER":   0,
   259  	"RANK":         1,
   260  	"DENSE_RANK":   2,
   261  	"PERCENT_RANK": 3,
   262  	"CUME_DIST":    4,
   263  	"NTILE":        5,
   264  	"LAG":          6,
   265  	"LEAD":         7,
   266  	"FIRST_VALUE":  8,
   267  	"LAST_VALUE":   9,
   268  	"NTH_VALUE":    10,
   269  }
   270  
   271  func (x WindowerSpec_WindowFunc) Enum() *WindowerSpec_WindowFunc {
   272  	p := new(WindowerSpec_WindowFunc)
   273  	*p = x
   274  	return p
   275  }
   276  func (x WindowerSpec_WindowFunc) String() string {
   277  	return proto.EnumName(WindowerSpec_WindowFunc_name, int32(x))
   278  }
   279  func (x *WindowerSpec_WindowFunc) UnmarshalJSON(data []byte) error {
   280  	value, err := proto.UnmarshalJSONEnum(WindowerSpec_WindowFunc_value, data, "WindowerSpec_WindowFunc")
   281  	if err != nil {
   282  		return err
   283  	}
   284  	*x = WindowerSpec_WindowFunc(value)
   285  	return nil
   286  }
   287  func (WindowerSpec_WindowFunc) EnumDescriptor() ([]byte, []int) {
   288  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 0}
   289  }
   290  
   291  // Mode indicates which mode of framing is used.
   292  type WindowerSpec_Frame_Mode int32
   293  
   294  const (
   295  	// RANGE specifies frame in terms of logical range (e.g. 1 unit cheaper).
   296  	WindowerSpec_Frame_RANGE WindowerSpec_Frame_Mode = 0
   297  	// ROWS specifies frame in terms of physical offsets (e.g. 1 row before).
   298  	WindowerSpec_Frame_ROWS WindowerSpec_Frame_Mode = 1
   299  	// GROUPS specifies frame in terms of peer groups (where "peers" mean
   300  	// rows not distinct in the ordering columns).
   301  	WindowerSpec_Frame_GROUPS WindowerSpec_Frame_Mode = 2
   302  )
   303  
   304  var WindowerSpec_Frame_Mode_name = map[int32]string{
   305  	0: "RANGE",
   306  	1: "ROWS",
   307  	2: "GROUPS",
   308  }
   309  var WindowerSpec_Frame_Mode_value = map[string]int32{
   310  	"RANGE":  0,
   311  	"ROWS":   1,
   312  	"GROUPS": 2,
   313  }
   314  
   315  func (x WindowerSpec_Frame_Mode) Enum() *WindowerSpec_Frame_Mode {
   316  	p := new(WindowerSpec_Frame_Mode)
   317  	*p = x
   318  	return p
   319  }
   320  func (x WindowerSpec_Frame_Mode) String() string {
   321  	return proto.EnumName(WindowerSpec_Frame_Mode_name, int32(x))
   322  }
   323  func (x *WindowerSpec_Frame_Mode) UnmarshalJSON(data []byte) error {
   324  	value, err := proto.UnmarshalJSONEnum(WindowerSpec_Frame_Mode_value, data, "WindowerSpec_Frame_Mode")
   325  	if err != nil {
   326  		return err
   327  	}
   328  	*x = WindowerSpec_Frame_Mode(value)
   329  	return nil
   330  }
   331  func (WindowerSpec_Frame_Mode) EnumDescriptor() ([]byte, []int) {
   332  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1, 0}
   333  }
   334  
   335  // BoundType indicates which type of boundary is used.
   336  type WindowerSpec_Frame_BoundType int32
   337  
   338  const (
   339  	WindowerSpec_Frame_UNBOUNDED_PRECEDING WindowerSpec_Frame_BoundType = 0
   340  	WindowerSpec_Frame_UNBOUNDED_FOLLOWING WindowerSpec_Frame_BoundType = 1
   341  	// Offsets are stored within Bound.
   342  	WindowerSpec_Frame_OFFSET_PRECEDING WindowerSpec_Frame_BoundType = 2
   343  	WindowerSpec_Frame_OFFSET_FOLLOWING WindowerSpec_Frame_BoundType = 3
   344  	WindowerSpec_Frame_CURRENT_ROW      WindowerSpec_Frame_BoundType = 4
   345  )
   346  
   347  var WindowerSpec_Frame_BoundType_name = map[int32]string{
   348  	0: "UNBOUNDED_PRECEDING",
   349  	1: "UNBOUNDED_FOLLOWING",
   350  	2: "OFFSET_PRECEDING",
   351  	3: "OFFSET_FOLLOWING",
   352  	4: "CURRENT_ROW",
   353  }
   354  var WindowerSpec_Frame_BoundType_value = map[string]int32{
   355  	"UNBOUNDED_PRECEDING": 0,
   356  	"UNBOUNDED_FOLLOWING": 1,
   357  	"OFFSET_PRECEDING":    2,
   358  	"OFFSET_FOLLOWING":    3,
   359  	"CURRENT_ROW":         4,
   360  }
   361  
   362  func (x WindowerSpec_Frame_BoundType) Enum() *WindowerSpec_Frame_BoundType {
   363  	p := new(WindowerSpec_Frame_BoundType)
   364  	*p = x
   365  	return p
   366  }
   367  func (x WindowerSpec_Frame_BoundType) String() string {
   368  	return proto.EnumName(WindowerSpec_Frame_BoundType_name, int32(x))
   369  }
   370  func (x *WindowerSpec_Frame_BoundType) UnmarshalJSON(data []byte) error {
   371  	value, err := proto.UnmarshalJSONEnum(WindowerSpec_Frame_BoundType_value, data, "WindowerSpec_Frame_BoundType")
   372  	if err != nil {
   373  		return err
   374  	}
   375  	*x = WindowerSpec_Frame_BoundType(value)
   376  	return nil
   377  }
   378  func (WindowerSpec_Frame_BoundType) EnumDescriptor() ([]byte, []int) {
   379  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1, 1}
   380  }
   381  
   382  // Exclusion specifies the type of frame exclusion.
   383  type WindowerSpec_Frame_Exclusion int32
   384  
   385  const (
   386  	WindowerSpec_Frame_NO_EXCLUSION        WindowerSpec_Frame_Exclusion = 0
   387  	WindowerSpec_Frame_EXCLUDE_CURRENT_ROW WindowerSpec_Frame_Exclusion = 1
   388  	WindowerSpec_Frame_EXCLUDE_GROUP       WindowerSpec_Frame_Exclusion = 2
   389  	WindowerSpec_Frame_EXCLUDE_TIES        WindowerSpec_Frame_Exclusion = 3
   390  )
   391  
   392  var WindowerSpec_Frame_Exclusion_name = map[int32]string{
   393  	0: "NO_EXCLUSION",
   394  	1: "EXCLUDE_CURRENT_ROW",
   395  	2: "EXCLUDE_GROUP",
   396  	3: "EXCLUDE_TIES",
   397  }
   398  var WindowerSpec_Frame_Exclusion_value = map[string]int32{
   399  	"NO_EXCLUSION":        0,
   400  	"EXCLUDE_CURRENT_ROW": 1,
   401  	"EXCLUDE_GROUP":       2,
   402  	"EXCLUDE_TIES":        3,
   403  }
   404  
   405  func (x WindowerSpec_Frame_Exclusion) Enum() *WindowerSpec_Frame_Exclusion {
   406  	p := new(WindowerSpec_Frame_Exclusion)
   407  	*p = x
   408  	return p
   409  }
   410  func (x WindowerSpec_Frame_Exclusion) String() string {
   411  	return proto.EnumName(WindowerSpec_Frame_Exclusion_name, int32(x))
   412  }
   413  func (x *WindowerSpec_Frame_Exclusion) UnmarshalJSON(data []byte) error {
   414  	value, err := proto.UnmarshalJSONEnum(WindowerSpec_Frame_Exclusion_value, data, "WindowerSpec_Frame_Exclusion")
   415  	if err != nil {
   416  		return err
   417  	}
   418  	*x = WindowerSpec_Frame_Exclusion(value)
   419  	return nil
   420  }
   421  func (WindowerSpec_Frame_Exclusion) EnumDescriptor() ([]byte, []int) {
   422  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1, 2}
   423  }
   424  
   425  // ValuesCoreSpec is the core of a processor that has no inputs and generates
   426  // "pre-canned" rows. This is not intended to be used for very large datasets.
   427  type ValuesCoreSpec struct {
   428  	// There is one DatumInfo for each element in a row. Can be empty, in which
   429  	// case raw_bytes must be empty.
   430  	Columns []DatumInfo `protobuf:"bytes,1,rep,name=columns" json:"columns"`
   431  	// The number of rows is especially useful when we have zero columns.
   432  	NumRows uint64 `protobuf:"varint,3,opt,name=num_rows,json=numRows" json:"num_rows"`
   433  	// Each raw block encodes one or more data rows; each datum is encoded
   434  	// according to the corresponding DatumInfo.
   435  	RawBytes [][]byte `protobuf:"bytes,2,rep,name=raw_bytes,json=rawBytes" json:"raw_bytes,omitempty"`
   436  }
   437  
   438  func (m *ValuesCoreSpec) Reset()         { *m = ValuesCoreSpec{} }
   439  func (m *ValuesCoreSpec) String() string { return proto.CompactTextString(m) }
   440  func (*ValuesCoreSpec) ProtoMessage()    {}
   441  func (*ValuesCoreSpec) Descriptor() ([]byte, []int) {
   442  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{0}
   443  }
   444  func (m *ValuesCoreSpec) XXX_Unmarshal(b []byte) error {
   445  	return m.Unmarshal(b)
   446  }
   447  func (m *ValuesCoreSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   448  	b = b[:cap(b)]
   449  	n, err := m.MarshalTo(b)
   450  	if err != nil {
   451  		return nil, err
   452  	}
   453  	return b[:n], nil
   454  }
   455  func (dst *ValuesCoreSpec) XXX_Merge(src proto.Message) {
   456  	xxx_messageInfo_ValuesCoreSpec.Merge(dst, src)
   457  }
   458  func (m *ValuesCoreSpec) XXX_Size() int {
   459  	return m.Size()
   460  }
   461  func (m *ValuesCoreSpec) XXX_DiscardUnknown() {
   462  	xxx_messageInfo_ValuesCoreSpec.DiscardUnknown(m)
   463  }
   464  
   465  var xxx_messageInfo_ValuesCoreSpec proto.InternalMessageInfo
   466  
   467  // TableReaderSpec is the specification for a "table reader". A table reader
   468  // performs KV operations to retrieve rows for a table and outputs the desired
   469  // columns of the rows that pass a filter expression.
   470  //
   471  // The "internal columns" of a TableReader (see ProcessorSpec) are all the
   472  // columns of the table. Internally, only the values for the columns needed by
   473  // the post-processing stage are to be populated. If is_check is set, the
   474  // TableReader will run additional data checking procedures and the
   475  // "internal columns" are:
   476  //  - Error type (string).
   477  //  - Primary key as a string, if it was obtainable.
   478  //  - JSON of all decoded column values.
   479  type TableReaderSpec struct {
   480  	Table sqlbase.TableDescriptor `protobuf:"bytes,1,opt,name=table" json:"table"`
   481  	// If 0, we use the primary index. If non-zero, we use the index_idx-th index,
   482  	// i.e. table.indexes[index_idx-1]
   483  	IndexIdx uint32            `protobuf:"varint,2,opt,name=index_idx,json=indexIdx" json:"index_idx"`
   484  	Reverse  bool              `protobuf:"varint,3,opt,name=reverse" json:"reverse"`
   485  	Spans    []TableReaderSpan `protobuf:"bytes,4,rep,name=spans" json:"spans"`
   486  	// A hint for how many rows the consumer of the table reader output might
   487  	// need. This is used to size the initial KV batches to try to avoid reading
   488  	// many more rows than needed by the processor receiving the output.
   489  	//
   490  	// Not used if there is a limit set in the PostProcessSpec of this processor
   491  	// (that value will be used for sizing batches instead).
   492  	LimitHint int64 `protobuf:"varint,5,opt,name=limit_hint,json=limitHint" json:"limit_hint"`
   493  	// Indicates whether the TableReader is being run as an exhaustive
   494  	// check. This is only true during SCRUB commands.
   495  	IsCheck bool `protobuf:"varint,6,opt,name=is_check,json=isCheck" json:"is_check"`
   496  	// Indicates the visibility level of the columns that should be returned.
   497  	// Normally, will be set to PUBLIC. Will be set to PUBLIC_AND_NOT_PUBLIC if
   498  	// the consumer of this TableReader expects to be able to see in-progress
   499  	// schema changes.
   500  	Visibility ScanVisibility `protobuf:"varint,7,opt,name=visibility,enum=cockroach.sql.distsqlrun.ScanVisibility" json:"visibility"`
   501  	// If non-zero, this is a guarantee for the upper bound of rows a TableReader
   502  	// will read. If 0, the number of results is unbounded.
   503  	MaxResults uint64 `protobuf:"varint,8,opt,name=max_results,json=maxResults" json:"max_results"`
   504  	// If non-zero, this enables inconsistent historical scanning where different
   505  	// batches can be read with different timestamps. This is used for
   506  	// long-running table statistics which may outlive the TTL. Using this setting
   507  	// will cause inconsistencies across rows and even within rows.
   508  	//
   509  	// The value is a duration (in nanoseconds), which is the maximum "age" of the
   510  	// timestamp. If the scan takes long enough for the timestamp to become older,
   511  	// the timestamp is advanced by however much time passed.
   512  	//
   513  	// Example:
   514  	//
   515  	//     current time:      10
   516  	//     initial timestamp: 0
   517  	//     max timestamp age: 30
   518  	//
   519  	//     time
   520  	//     10:    start scan, timestamp=0
   521  	//     10-29: continue scanning at timestamp=0
   522  	//     30:    bump timestamp to 20
   523  	//     30-49: continue scanning at timestamp=20
   524  	//     50:    bump timestamp to 40
   525  	//     ...
   526  	//
   527  	// Note: it is an error to perform a historical read at an initial timestamp
   528  	// older than this value.
   529  	//
   530  	MaxTimestampAgeNanos uint64 `protobuf:"varint,9,opt,name=max_timestamp_age_nanos,json=maxTimestampAgeNanos" json:"max_timestamp_age_nanos"`
   531  	// Indicates the row-level locking strength to be used by the scan. If set to
   532  	// FOR_NONE, no row-level locking should be performed.
   533  	LockingStrength sqlbase.ScanLockingStrength `protobuf:"varint,10,opt,name=locking_strength,json=lockingStrength,enum=cockroach.sql.sqlbase.ScanLockingStrength" json:"locking_strength"`
   534  	// Indicates the policy to be used by the scan when dealing with rows being
   535  	// locked. Always set to BLOCK when locking_stength is FOR_NONE.
   536  	//
   537  	// NOTE: this is currently set but unused because only the BLOCK wait policy
   538  	// makes it out of the SQL optimizer without throwing an error. If/when other
   539  	// wait policies are supported, this field will be plumbed further.
   540  	LockingWaitPolicy sqlbase.ScanLockingWaitPolicy `protobuf:"varint,11,opt,name=locking_wait_policy,json=lockingWaitPolicy,enum=cockroach.sql.sqlbase.ScanLockingWaitPolicy" json:"locking_wait_policy"`
   541  }
   542  
   543  func (m *TableReaderSpec) Reset()         { *m = TableReaderSpec{} }
   544  func (m *TableReaderSpec) String() string { return proto.CompactTextString(m) }
   545  func (*TableReaderSpec) ProtoMessage()    {}
   546  func (*TableReaderSpec) Descriptor() ([]byte, []int) {
   547  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{1}
   548  }
   549  func (m *TableReaderSpec) XXX_Unmarshal(b []byte) error {
   550  	return m.Unmarshal(b)
   551  }
   552  func (m *TableReaderSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   553  	b = b[:cap(b)]
   554  	n, err := m.MarshalTo(b)
   555  	if err != nil {
   556  		return nil, err
   557  	}
   558  	return b[:n], nil
   559  }
   560  func (dst *TableReaderSpec) XXX_Merge(src proto.Message) {
   561  	xxx_messageInfo_TableReaderSpec.Merge(dst, src)
   562  }
   563  func (m *TableReaderSpec) XXX_Size() int {
   564  	return m.Size()
   565  }
   566  func (m *TableReaderSpec) XXX_DiscardUnknown() {
   567  	xxx_messageInfo_TableReaderSpec.DiscardUnknown(m)
   568  }
   569  
   570  var xxx_messageInfo_TableReaderSpec proto.InternalMessageInfo
   571  
   572  // IndexSkipTableReaderSpec is the specification for a table reader that
   573  // is performing a loose index scan over rows in the table. This means that
   574  // this reader will return distinct rows from the table while using the index
   575  // to skip unnecessary rows. This reader is used for different optimizations
   576  // when operating on a prefix of a compound key.
   577  type IndexSkipTableReaderSpec struct {
   578  	Table sqlbase.TableDescriptor `protobuf:"bytes,1,opt,name=table" json:"table"`
   579  	// If 0, we use the primary index. If non-zero, we use the index_idx-th index,
   580  	// i.e. table.indexes[index_idx-1]
   581  	IndexIdx uint32            `protobuf:"varint,2,opt,name=index_idx,json=indexIdx" json:"index_idx"`
   582  	Spans    []TableReaderSpan `protobuf:"bytes,3,rep,name=spans" json:"spans"`
   583  	// Indicates the visibility level of the columns that should be returned.
   584  	// Normally, will be set to PUBLIC. Will be set to PUBLIC_AND_NOT_PUBLIC if
   585  	// the consumer of this TableReader expects to be able to see in-progress
   586  	// schema changes.
   587  	Visibility ScanVisibility `protobuf:"varint,4,opt,name=visibility,enum=cockroach.sql.distsqlrun.ScanVisibility" json:"visibility"`
   588  	Reverse    bool           `protobuf:"varint,5,opt,name=reverse" json:"reverse"`
   589  	// Indicates the row-level locking strength to be used by the scan. If set to
   590  	// FOR_NONE, no row-level locking should be performed.
   591  	LockingStrength sqlbase.ScanLockingStrength `protobuf:"varint,6,opt,name=locking_strength,json=lockingStrength,enum=cockroach.sql.sqlbase.ScanLockingStrength" json:"locking_strength"`
   592  	// Indicates the policy to be used by the scan when dealing with rows being
   593  	// locked. Always set to BLOCK when locking_stength is FOR_NONE.
   594  	//
   595  	// NOTE: this is currently set but unused because only the BLOCK wait policy
   596  	// makes it out of the SQL optimizer without throwing an error. If/when other
   597  	// wait policies are supported, this field will be plumbed further.
   598  	LockingWaitPolicy sqlbase.ScanLockingWaitPolicy `protobuf:"varint,7,opt,name=locking_wait_policy,json=lockingWaitPolicy,enum=cockroach.sql.sqlbase.ScanLockingWaitPolicy" json:"locking_wait_policy"`
   599  }
   600  
   601  func (m *IndexSkipTableReaderSpec) Reset()         { *m = IndexSkipTableReaderSpec{} }
   602  func (m *IndexSkipTableReaderSpec) String() string { return proto.CompactTextString(m) }
   603  func (*IndexSkipTableReaderSpec) ProtoMessage()    {}
   604  func (*IndexSkipTableReaderSpec) Descriptor() ([]byte, []int) {
   605  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{2}
   606  }
   607  func (m *IndexSkipTableReaderSpec) XXX_Unmarshal(b []byte) error {
   608  	return m.Unmarshal(b)
   609  }
   610  func (m *IndexSkipTableReaderSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   611  	b = b[:cap(b)]
   612  	n, err := m.MarshalTo(b)
   613  	if err != nil {
   614  		return nil, err
   615  	}
   616  	return b[:n], nil
   617  }
   618  func (dst *IndexSkipTableReaderSpec) XXX_Merge(src proto.Message) {
   619  	xxx_messageInfo_IndexSkipTableReaderSpec.Merge(dst, src)
   620  }
   621  func (m *IndexSkipTableReaderSpec) XXX_Size() int {
   622  	return m.Size()
   623  }
   624  func (m *IndexSkipTableReaderSpec) XXX_DiscardUnknown() {
   625  	xxx_messageInfo_IndexSkipTableReaderSpec.DiscardUnknown(m)
   626  }
   627  
   628  var xxx_messageInfo_IndexSkipTableReaderSpec proto.InternalMessageInfo
   629  
   630  // JoinReaderSpec is the specification for a "join reader". A join reader
   631  // performs KV operations to retrieve specific rows that correspond to the
   632  // values in the input stream (join by lookup). The output always preserves the
   633  // order of the input rows.
   634  //
   635  // The "internal columns" of a JoinReader (see ProcessorSpec) are either:
   636  //  - the columns of the table, if we are performing an index join (no lookup
   637  //    columns) or if we are performing a semi or anti join, or
   638  //  - the concatenation of the columns of the input stream with the table
   639  //    columns.
   640  //
   641  // Internally, only the values for the columns needed by the post-processing
   642  // stage are populated.
   643  //
   644  // Example:
   645  // Input stream columns: | a | b |              Table columns: | c | d | e |
   646  //
   647  // If performing a lookup join on a = c (lookup columns is [0]):
   648  //        Internal columns: | a | b | c | d | e |
   649  //
   650  // If performing an index join (where a = c and b = d) (lookup columns is []):
   651  //        Internal columns: | c | d | e |
   652  type JoinReaderSpec struct {
   653  	Table sqlbase.TableDescriptor `protobuf:"bytes,1,opt,name=table" json:"table"`
   654  	// If 0, we use the primary index; each row in the input stream has a value
   655  	// for each primary key. The index must provide all lookup columns.
   656  	IndexIdx uint32 `protobuf:"varint,2,opt,name=index_idx,json=indexIdx" json:"index_idx"`
   657  	// Column indexes in the input stream specifying the columns which match with
   658  	// the index columns. These are the equality columns of the join.
   659  	//
   660  	// If empty (index join), the start of the input stream schema is assumed to
   661  	// match the index columns. The joinReader will perform an index join and the
   662  	// "internal columns" will be the columns of the table.
   663  	//
   664  	// If populated (lookup join), the `joinReader` will perform a lookup join
   665  	// and the "internal columns" will be the concatenation of the input stream
   666  	// columns followed by the table columns (except for semi/anti join, which
   667  	// don't output any table columns).
   668  	LookupColumns []uint32 `protobuf:"varint,3,rep,packed,name=lookup_columns,json=lookupColumns" json:"lookup_columns,omitempty"`
   669  	// If set, the lookup columns form a key in the target table and thus each
   670  	// lookup has at most one result.
   671  	LookupColumnsAreKey bool `protobuf:"varint,8,opt,name=lookup_columns_are_key,json=lookupColumnsAreKey" json:"lookup_columns_are_key"`
   672  	// "ON" expression (in addition to the equality constraints captured by the
   673  	// orderings). Assuming that the left stream has N columns and the right
   674  	// stream has M columns, in this expression variables @1 to @N refer to
   675  	// columns of the left stream and variables @N to @(N+M) refer to columns in
   676  	// the right stream.
   677  	OnExpr Expression `protobuf:"bytes,4,opt,name=on_expr,json=onExpr" json:"on_expr"`
   678  	// For lookup joins. Only JoinType_INNER and JoinType_LEFT_OUTER are
   679  	// supported.
   680  	Type sqlbase.JoinType `protobuf:"varint,6,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
   681  	// For index joins that are sources to mutation statements - what visibility
   682  	// of columns should we return? Mutations sometimes need to see in-progress
   683  	// schema change columns, in which case this field will be changed from its
   684  	// default PUBLIC state. Causes the index join to return these schema change
   685  	// columns.
   686  	Visibility ScanVisibility `protobuf:"varint,7,opt,name=visibility,enum=cockroach.sql.distsqlrun.ScanVisibility" json:"visibility"`
   687  	// Indicates the row-level locking strength to be used by the join. If set to
   688  	// FOR_NONE, no row-level locking should be performed.
   689  	LockingStrength sqlbase.ScanLockingStrength `protobuf:"varint,9,opt,name=locking_strength,json=lockingStrength,enum=cockroach.sql.sqlbase.ScanLockingStrength" json:"locking_strength"`
   690  	// Indicates the policy to be used by the join when dealing with rows being
   691  	// locked. Always set to BLOCK when locking_stength is FOR_NONE.
   692  	//
   693  	// NOTE: this is currently set but unused because only the BLOCK wait policy
   694  	// makes it out of the SQL optimizer without throwing an error. If/when other
   695  	// wait policies are supported, this field will be plumbed further.
   696  	LockingWaitPolicy sqlbase.ScanLockingWaitPolicy `protobuf:"varint,10,opt,name=locking_wait_policy,json=lockingWaitPolicy,enum=cockroach.sql.sqlbase.ScanLockingWaitPolicy" json:"locking_wait_policy"`
   697  	// Indicates that the join reader should maintain the ordering of the input
   698  	// stream. This is only applicable to lookup joins, where doing so is
   699  	// expensive. Index joins do this by default regardless of the parameter.
   700  	MaintainOrdering bool `protobuf:"varint,11,opt,name=maintain_ordering,json=maintainOrdering" json:"maintain_ordering"`
   701  }
   702  
   703  func (m *JoinReaderSpec) Reset()         { *m = JoinReaderSpec{} }
   704  func (m *JoinReaderSpec) String() string { return proto.CompactTextString(m) }
   705  func (*JoinReaderSpec) ProtoMessage()    {}
   706  func (*JoinReaderSpec) Descriptor() ([]byte, []int) {
   707  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{3}
   708  }
   709  func (m *JoinReaderSpec) XXX_Unmarshal(b []byte) error {
   710  	return m.Unmarshal(b)
   711  }
   712  func (m *JoinReaderSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   713  	b = b[:cap(b)]
   714  	n, err := m.MarshalTo(b)
   715  	if err != nil {
   716  		return nil, err
   717  	}
   718  	return b[:n], nil
   719  }
   720  func (dst *JoinReaderSpec) XXX_Merge(src proto.Message) {
   721  	xxx_messageInfo_JoinReaderSpec.Merge(dst, src)
   722  }
   723  func (m *JoinReaderSpec) XXX_Size() int {
   724  	return m.Size()
   725  }
   726  func (m *JoinReaderSpec) XXX_DiscardUnknown() {
   727  	xxx_messageInfo_JoinReaderSpec.DiscardUnknown(m)
   728  }
   729  
   730  var xxx_messageInfo_JoinReaderSpec proto.InternalMessageInfo
   731  
   732  // SorterSpec is the specification for a "sorting aggregator". A sorting
   733  // processor sorts elements in the input stream providing a certain output
   734  // order guarantee regardless of the input ordering. The output ordering is
   735  // according to a configurable set of columns.
   736  //
   737  // The "internal columns" of a Sorter (see ProcessorSpec) are the same as the
   738  // input columns.
   739  type SorterSpec struct {
   740  	OutputOrdering Ordering `protobuf:"bytes,1,opt,name=output_ordering,json=outputOrdering" json:"output_ordering"`
   741  	// Ordering match length, specifying that the input is already sorted by the
   742  	// first 'n' output ordering columns, can be optionally specified for
   743  	// possible speed-ups taking advantage of the partial orderings.
   744  	OrderingMatchLen uint32 `protobuf:"varint,2,opt,name=ordering_match_len,json=orderingMatchLen" json:"ordering_match_len"`
   745  }
   746  
   747  func (m *SorterSpec) Reset()         { *m = SorterSpec{} }
   748  func (m *SorterSpec) String() string { return proto.CompactTextString(m) }
   749  func (*SorterSpec) ProtoMessage()    {}
   750  func (*SorterSpec) Descriptor() ([]byte, []int) {
   751  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{4}
   752  }
   753  func (m *SorterSpec) XXX_Unmarshal(b []byte) error {
   754  	return m.Unmarshal(b)
   755  }
   756  func (m *SorterSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   757  	b = b[:cap(b)]
   758  	n, err := m.MarshalTo(b)
   759  	if err != nil {
   760  		return nil, err
   761  	}
   762  	return b[:n], nil
   763  }
   764  func (dst *SorterSpec) XXX_Merge(src proto.Message) {
   765  	xxx_messageInfo_SorterSpec.Merge(dst, src)
   766  }
   767  func (m *SorterSpec) XXX_Size() int {
   768  	return m.Size()
   769  }
   770  func (m *SorterSpec) XXX_DiscardUnknown() {
   771  	xxx_messageInfo_SorterSpec.DiscardUnknown(m)
   772  }
   773  
   774  var xxx_messageInfo_SorterSpec proto.InternalMessageInfo
   775  
   776  type DistinctSpec struct {
   777  	// The ordered columns in the input stream can be optionally specified for
   778  	// possible optimizations. The specific ordering (ascending/descending) of
   779  	// the column itself is not important nor is the order in which the columns
   780  	// are specified. The ordered columns must be a subset of the distinct
   781  	// columns.
   782  	OrderedColumns []uint32 `protobuf:"varint,1,rep,name=ordered_columns,json=orderedColumns" json:"ordered_columns,omitempty"`
   783  	// The distinct columns in the input stream are those columns on which we
   784  	// check for distinct rows. If A,B,C are in distinct_columns and there is a
   785  	// 4th column D which is not included in distinct_columns, its values are not
   786  	// considered, so rows A1,B1,C1,D1 and A1,B1,C1,D2 are considered equal and
   787  	// only one of them (the first) is output.
   788  	DistinctColumns []uint32 `protobuf:"varint,2,rep,name=distinct_columns,json=distinctColumns" json:"distinct_columns,omitempty"`
   789  	// If true, then NULL values are treated as not equal to one another. Each NULL
   790  	// value will cause a new row group to be created. For example:
   791  	//
   792  	//   c
   793  	//   ----
   794  	//   NULL
   795  	//   NULL
   796  	//
   797  	// A distinct operation on column "c" will result in one output row if
   798  	// NullsAreDistinct is false, or two output rows if true. This is set to true
   799  	// for UPSERT and INSERT..ON CONFLICT statements, since they must treat NULL
   800  	// values as distinct.
   801  	NullsAreDistinct bool `protobuf:"varint,3,opt,name=nulls_are_distinct,json=nullsAreDistinct" json:"nulls_are_distinct"`
   802  	// If not empty, then an error with this text will be raised if there are two
   803  	// rows with duplicate distinct column values. This is used to implement the
   804  	// UPSERT and INSERT..ON CONFLICT statements, both of which prohibit the same
   805  	// row from being changed twice.
   806  	ErrorOnDup string `protobuf:"bytes,4,opt,name=error_on_dup,json=errorOnDup" json:"error_on_dup"`
   807  }
   808  
   809  func (m *DistinctSpec) Reset()         { *m = DistinctSpec{} }
   810  func (m *DistinctSpec) String() string { return proto.CompactTextString(m) }
   811  func (*DistinctSpec) ProtoMessage()    {}
   812  func (*DistinctSpec) Descriptor() ([]byte, []int) {
   813  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{5}
   814  }
   815  func (m *DistinctSpec) XXX_Unmarshal(b []byte) error {
   816  	return m.Unmarshal(b)
   817  }
   818  func (m *DistinctSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   819  	b = b[:cap(b)]
   820  	n, err := m.MarshalTo(b)
   821  	if err != nil {
   822  		return nil, err
   823  	}
   824  	return b[:n], nil
   825  }
   826  func (dst *DistinctSpec) XXX_Merge(src proto.Message) {
   827  	xxx_messageInfo_DistinctSpec.Merge(dst, src)
   828  }
   829  func (m *DistinctSpec) XXX_Size() int {
   830  	return m.Size()
   831  }
   832  func (m *DistinctSpec) XXX_DiscardUnknown() {
   833  	xxx_messageInfo_DistinctSpec.DiscardUnknown(m)
   834  }
   835  
   836  var xxx_messageInfo_DistinctSpec proto.InternalMessageInfo
   837  
   838  // The specification for a WITH ORDINALITY processor. It adds a new column to
   839  // each resulting row that contains the ordinal number of the row. Since there
   840  // are no arguments for this operator, the spec is empty.
   841  type OrdinalitySpec struct {
   842  }
   843  
   844  func (m *OrdinalitySpec) Reset()         { *m = OrdinalitySpec{} }
   845  func (m *OrdinalitySpec) String() string { return proto.CompactTextString(m) }
   846  func (*OrdinalitySpec) ProtoMessage()    {}
   847  func (*OrdinalitySpec) Descriptor() ([]byte, []int) {
   848  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{6}
   849  }
   850  func (m *OrdinalitySpec) XXX_Unmarshal(b []byte) error {
   851  	return m.Unmarshal(b)
   852  }
   853  func (m *OrdinalitySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   854  	b = b[:cap(b)]
   855  	n, err := m.MarshalTo(b)
   856  	if err != nil {
   857  		return nil, err
   858  	}
   859  	return b[:n], nil
   860  }
   861  func (dst *OrdinalitySpec) XXX_Merge(src proto.Message) {
   862  	xxx_messageInfo_OrdinalitySpec.Merge(dst, src)
   863  }
   864  func (m *OrdinalitySpec) XXX_Size() int {
   865  	return m.Size()
   866  }
   867  func (m *OrdinalitySpec) XXX_DiscardUnknown() {
   868  	xxx_messageInfo_OrdinalitySpec.DiscardUnknown(m)
   869  }
   870  
   871  var xxx_messageInfo_OrdinalitySpec proto.InternalMessageInfo
   872  
   873  // ZigzagJoinerSpec is the specification for a zigzag join processor. The
   874  // processor's current implementation fetches the rows using internal
   875  // rowFetchers.
   876  //
   877  // The "internal columns" of a ZigzagJoiner (see ProcessorSpec) are the
   878  // concatenation of all of the columns of the tables specified. The columns
   879  // are populated if they are contained in the index specified for that table.
   880  type ZigzagJoinerSpec struct {
   881  	// TODO(pbardea): Replace these with inputs that conform to a RowSource-like
   882  	// interface.
   883  	Tables []sqlbase.TableDescriptor `protobuf:"bytes,1,rep,name=tables" json:"tables"`
   884  	// An array of arrays. The array at eq_columns[side_idx] contains the
   885  	// equality columns for that side. All arrays in eq_columns should have
   886  	// equal length.
   887  	EqColumns []Columns `protobuf:"bytes,2,rep,name=eq_columns,json=eqColumns" json:"eq_columns"`
   888  	// Each value indicates an index: if 0, primary index; otherwise the n-th
   889  	// secondary index, i.e. tables[side_idx].indexes[index_ordinals[side_idx]].
   890  	IndexOrdinals []uint32 `protobuf:"varint,3,rep,packed,name=index_ordinals,json=indexOrdinals" json:"index_ordinals,omitempty"`
   891  	// "ON" expression (in addition to the equality constraints captured by the
   892  	// orderings). Assuming that the left stream has N columns and the right
   893  	// stream has M columns, in this expression ordinal references @1 to @N refer
   894  	// to columns of the left stream and variables @(N+1) to @(N+M) refer to
   895  	// columns in the right stream.
   896  	OnExpr Expression `protobuf:"bytes,4,opt,name=on_expr,json=onExpr" json:"on_expr"`
   897  	// Fixed values at the start of indices.
   898  	FixedValues []*ValuesCoreSpec `protobuf:"bytes,5,rep,name=fixed_values,json=fixedValues" json:"fixed_values,omitempty"`
   899  	Type        sqlbase.JoinType  `protobuf:"varint,6,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
   900  }
   901  
   902  func (m *ZigzagJoinerSpec) Reset()         { *m = ZigzagJoinerSpec{} }
   903  func (m *ZigzagJoinerSpec) String() string { return proto.CompactTextString(m) }
   904  func (*ZigzagJoinerSpec) ProtoMessage()    {}
   905  func (*ZigzagJoinerSpec) Descriptor() ([]byte, []int) {
   906  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{7}
   907  }
   908  func (m *ZigzagJoinerSpec) XXX_Unmarshal(b []byte) error {
   909  	return m.Unmarshal(b)
   910  }
   911  func (m *ZigzagJoinerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   912  	b = b[:cap(b)]
   913  	n, err := m.MarshalTo(b)
   914  	if err != nil {
   915  		return nil, err
   916  	}
   917  	return b[:n], nil
   918  }
   919  func (dst *ZigzagJoinerSpec) XXX_Merge(src proto.Message) {
   920  	xxx_messageInfo_ZigzagJoinerSpec.Merge(dst, src)
   921  }
   922  func (m *ZigzagJoinerSpec) XXX_Size() int {
   923  	return m.Size()
   924  }
   925  func (m *ZigzagJoinerSpec) XXX_DiscardUnknown() {
   926  	xxx_messageInfo_ZigzagJoinerSpec.DiscardUnknown(m)
   927  }
   928  
   929  var xxx_messageInfo_ZigzagJoinerSpec proto.InternalMessageInfo
   930  
   931  // MergeJoinerSpec is the specification for a merge join processor. The processor
   932  // has two inputs and one output. The inputs must have the same ordering on the
   933  // columns that have equality constraints. For example:
   934  //   SELECT * FROM T1 INNER JOIN T2 ON T1.C1 = T2.C5 AND T1.C2 = T2.C4
   935  //
   936  // To perform a merge join, the streams corresponding to T1 and T2 must have the
   937  // same ordering on columns C1, C2 and C5, C4 respectively. For example: C1+,C2-
   938  // and C5+,C4-.
   939  //
   940  // The "internal columns" of a MergeJoiner (see ProcessorSpec) are the
   941  // concatenation of left input columns and right input columns. If the left
   942  // input has N columns and the right input has M columns, the first N columns
   943  // contain values from the left side and the following M columns contain values
   944  // from the right side.
   945  //
   946  // In the case of semi-join and anti-join, the processor core outputs only the
   947  // left columns.
   948  type MergeJoinerSpec struct {
   949  	// The streams must be ordered according to the columns that have equality
   950  	// constraints. The first column of the left ordering is constrained to be
   951  	// equal to the first column in the right ordering and so on. The ordering
   952  	// lengths and directions must match.
   953  	// In the example above, left ordering describes C1+,C2- and right ordering
   954  	// describes C5+,C4-.
   955  	LeftOrdering  Ordering `protobuf:"bytes,1,opt,name=left_ordering,json=leftOrdering" json:"left_ordering"`
   956  	RightOrdering Ordering `protobuf:"bytes,2,opt,name=right_ordering,json=rightOrdering" json:"right_ordering"`
   957  	// "ON" expression (in addition to the equality constraints captured by the
   958  	// orderings). Assuming that the left stream has N columns and the right
   959  	// stream has M columns, in this expression ordinal references @1 to @N refer
   960  	// to columns of the left stream and variables @(N+1) to @(N+M) refer to
   961  	// columns in the right stream.
   962  	OnExpr Expression       `protobuf:"bytes,5,opt,name=on_expr,json=onExpr" json:"on_expr"`
   963  	Type   sqlbase.JoinType `protobuf:"varint,6,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
   964  	// NullEquality indicates that NULL = NULL should be considered true.
   965  	// This allows OUTER JOINs to consider NULL values meaningfully. An
   966  	// example of this is during SCRUB checks on secondary indexes.
   967  	NullEquality bool `protobuf:"varint,7,opt,name=null_equality,json=nullEquality" json:"null_equality"`
   968  	// If true, it is guaranteed that the left equality columns form a key for
   969  	// the left input. In other words, no two rows from the left input have the
   970  	// same set of values on the left equality columns.
   971  	LeftEqColumnsAreKey bool `protobuf:"varint,8,opt,name=left_eq_columns_are_key,json=leftEqColumnsAreKey" json:"left_eq_columns_are_key"`
   972  	// If true, it is guaranteed that the right equality columns form a key for
   973  	// the right input. In other words, no two rows from the right input have the
   974  	// same set of values on the right equality columns.
   975  	RightEqColumnsAreKey bool `protobuf:"varint,9,opt,name=right_eq_columns_are_key,json=rightEqColumnsAreKey" json:"right_eq_columns_are_key"`
   976  }
   977  
   978  func (m *MergeJoinerSpec) Reset()         { *m = MergeJoinerSpec{} }
   979  func (m *MergeJoinerSpec) String() string { return proto.CompactTextString(m) }
   980  func (*MergeJoinerSpec) ProtoMessage()    {}
   981  func (*MergeJoinerSpec) Descriptor() ([]byte, []int) {
   982  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{8}
   983  }
   984  func (m *MergeJoinerSpec) XXX_Unmarshal(b []byte) error {
   985  	return m.Unmarshal(b)
   986  }
   987  func (m *MergeJoinerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   988  	b = b[:cap(b)]
   989  	n, err := m.MarshalTo(b)
   990  	if err != nil {
   991  		return nil, err
   992  	}
   993  	return b[:n], nil
   994  }
   995  func (dst *MergeJoinerSpec) XXX_Merge(src proto.Message) {
   996  	xxx_messageInfo_MergeJoinerSpec.Merge(dst, src)
   997  }
   998  func (m *MergeJoinerSpec) XXX_Size() int {
   999  	return m.Size()
  1000  }
  1001  func (m *MergeJoinerSpec) XXX_DiscardUnknown() {
  1002  	xxx_messageInfo_MergeJoinerSpec.DiscardUnknown(m)
  1003  }
  1004  
  1005  var xxx_messageInfo_MergeJoinerSpec proto.InternalMessageInfo
  1006  
  1007  // HashJoinerSpec is the specification for a hash join processor. The processor
  1008  // has two inputs and one output.
  1009  //
  1010  // The processor works by reading the entire right input and putting it in a hash
  1011  // table. Thus, there is no guarantee on the ordering of results that stem only
  1012  // from the right input (in the case of RIGHT_OUTER, FULL_OUTER). However, it is
  1013  // guaranteed that results that involve the left stream preserve the ordering;
  1014  // i.e. all results that stem from left row (i) precede results that stem from
  1015  // left row (i+1).
  1016  //
  1017  // The "internal columns" of a HashJoiner (see ProcessorSpec) are the
  1018  // concatenation of merged columns (if present), left input columns and right
  1019  // input columns. Each merged column corresponds to a left and a right equality
  1020  // column; its value is the value on the left if it is not NULL, otherwise it is
  1021  // the value on the right. There are either zero or
  1022  // E=len(left_eq_columns)=len(right_eq_columns) merged columns.
  1023  //
  1024  // If the left input has N columns and the right input has M columns, the
  1025  // first N columns contain values from the left side and the following M columns
  1026  // contain values from the right side. If merged columns are present, they
  1027  // occupy first E positions followed by N values from the left side and M values
  1028  // from the right side.
  1029  //
  1030  // In the case of semi-join and anti-join, the processor core outputs only the
  1031  // left columns.
  1032  type HashJoinerSpec struct {
  1033  	// The join constraints certain columns from the left stream to equal
  1034  	// corresponding columns on the right stream. These must have the same length.
  1035  	LeftEqColumns  []uint32 `protobuf:"varint,1,rep,packed,name=left_eq_columns,json=leftEqColumns" json:"left_eq_columns,omitempty"`
  1036  	RightEqColumns []uint32 `protobuf:"varint,2,rep,packed,name=right_eq_columns,json=rightEqColumns" json:"right_eq_columns,omitempty"`
  1037  	// "ON" expression (in addition to the equality constraints captured by the
  1038  	// orderings). Assuming that the left stream has N columns and the right
  1039  	// stream has M columns, in this expression variables @1 to @N refer to
  1040  	// columns of the left stream and variables @N to @(N+M) refer to columns in
  1041  	// the right stream.
  1042  	// Having "ON" expression implies no merged columns.
  1043  	OnExpr Expression       `protobuf:"bytes,5,opt,name=on_expr,json=onExpr" json:"on_expr"`
  1044  	Type   sqlbase.JoinType `protobuf:"varint,6,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
  1045  	// If true, it is guaranteed that the left equality columns form a key for
  1046  	// the left input. In other words, no two rows from the left input have the
  1047  	// same set of values on the left equality columns.
  1048  	LeftEqColumnsAreKey bool `protobuf:"varint,8,opt,name=left_eq_columns_are_key,json=leftEqColumnsAreKey" json:"left_eq_columns_are_key"`
  1049  	// If true, it is guaranteed that the right equality columns form a key for
  1050  	// the right input. In other words, no two rows from the right input have the
  1051  	// same set of values on the right equality columns.
  1052  	RightEqColumnsAreKey bool `protobuf:"varint,9,opt,name=right_eq_columns_are_key,json=rightEqColumnsAreKey" json:"right_eq_columns_are_key"`
  1053  	// DEPRECATED
  1054  	//
  1055  	// Extra merged columns that are added in case of OUTER JOINS. These
  1056  	// columns occupy first positions in a row amd it's the left value if it's not
  1057  	// NULL, otherwise it's the right value. In INNER JOIN case no merged columns are
  1058  	// needed since left stream values are guaranteed to be not NULL.
  1059  	//
  1060  	// This has been deprecated; the distsqlrun layer still supports it for
  1061  	// backward compatibility during upgrade.
  1062  	MergedColumns bool `protobuf:"varint,7,opt,name=merged_columns,json=mergedColumns" json:"merged_columns"`
  1063  }
  1064  
  1065  func (m *HashJoinerSpec) Reset()         { *m = HashJoinerSpec{} }
  1066  func (m *HashJoinerSpec) String() string { return proto.CompactTextString(m) }
  1067  func (*HashJoinerSpec) ProtoMessage()    {}
  1068  func (*HashJoinerSpec) Descriptor() ([]byte, []int) {
  1069  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{9}
  1070  }
  1071  func (m *HashJoinerSpec) XXX_Unmarshal(b []byte) error {
  1072  	return m.Unmarshal(b)
  1073  }
  1074  func (m *HashJoinerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1075  	b = b[:cap(b)]
  1076  	n, err := m.MarshalTo(b)
  1077  	if err != nil {
  1078  		return nil, err
  1079  	}
  1080  	return b[:n], nil
  1081  }
  1082  func (dst *HashJoinerSpec) XXX_Merge(src proto.Message) {
  1083  	xxx_messageInfo_HashJoinerSpec.Merge(dst, src)
  1084  }
  1085  func (m *HashJoinerSpec) XXX_Size() int {
  1086  	return m.Size()
  1087  }
  1088  func (m *HashJoinerSpec) XXX_DiscardUnknown() {
  1089  	xxx_messageInfo_HashJoinerSpec.DiscardUnknown(m)
  1090  }
  1091  
  1092  var xxx_messageInfo_HashJoinerSpec proto.InternalMessageInfo
  1093  
  1094  // InvertedJoinerSpec is the specification for an inverted join. The processor
  1095  // has two inputs and one output.
  1096  //
  1097  // The processor uses the inverted index on a column of the right input to
  1098  // join with a column of the left input. In addition to the InvertedExpr which
  1099  // is specified on these two columns, it also evaluates an OnExpr on the
  1100  // joined rows that satisfy the InvertedExpr. The "internal columns" of an
  1101  // InvertedJoiner for INNER and LEFT_OUTER joins are a concatenation of the
  1102  // columns of left and right input. The only columns of the right input that
  1103  // are populated are the columns present in the inverted index, except for the
  1104  // inverted column (since it does not represent a complete value for the datum
  1105  // that was indexed). For LEFT_SEMI and LEFT_ANTI, the "internal columns" are
  1106  // the columns of the left input.
  1107  //
  1108  // Example:
  1109  // Input stream columns: | a | b |
  1110  // Table columns: | c | d | e |
  1111  // The InvertedExpr involves columns b, e and the primary key for the right
  1112  // input is c.
  1113  // The inverted index has columns: | e' | c |
  1114  // where e' is derived from e. For instance, if e is an array, e' will
  1115  // correspond to elements of the array.
  1116  // The OnExpr can use columns a, b, c, since they are the other columns that
  1117  // are present in the input stream and the inverted index.
  1118  //
  1119  // Internal columns for INNER and LEFT_OUTER: | a | b | c | d | e |
  1120  // where d, e are not populated.
  1121  // Internal columns for LEFT_SEMI and LEFT_ANTI: | a | b |
  1122  type InvertedJoinerSpec struct {
  1123  	Table sqlbase.TableDescriptor `protobuf:"bytes,1,opt,name=table" json:"table"`
  1124  	// The ID of the inverted index. The first column in the index is the
  1125  	// inverted column, and the the remaining columns are the primary key.
  1126  	IndexIdx uint32 `protobuf:"varint,2,opt,name=index_idx,json=indexIdx" json:"index_idx"`
  1127  	// Index of the column in the input stream that is to be joined with
  1128  	// the inverted index.
  1129  	LookupColumn uint32 `protobuf:"varint,3,opt,name=lookup_column,json=lookupColumn" json:"lookup_column"`
  1130  	// Expression involving only the indexed column and the lookup column, where
  1131  	// @1 refers to the lookup column and @2 to the indexed column. The
  1132  	// expression is used to construct an implementation of
  1133  	// RowToInvertedIndexExpr which will be fed each input row and output
  1134  	// an expression to evaluate over the inverted index.
  1135  	//
  1136  	// TODO(sumeer): RowToInvertedIndexExpr will be added with the
  1137  	// invertedJoiner implementation. And update this comment when all the
  1138  	// expression generation machinery is in place to refer to actual code
  1139  	// abstractions.
  1140  	InvertedExpr Expression `protobuf:"bytes,4,opt,name=inverted_expr,json=invertedExpr" json:"inverted_expr"`
  1141  	// Optional expression involving the columns in the index (other than the
  1142  	// inverted column) and the columns in the input stream. Assuming that the
  1143  	// input stream has N columns and the table that has been indexed has M
  1144  	// columns, in this expression variables @1 to @N refer to columns of the
  1145  	// input stream and variables @(N+1) to @(N+M) refer to columns in the
  1146  	// table. The numbering does not omit the column in the table corresponding
  1147  	// to the inverted column, or other table columns absent from the index, but
  1148  	// they cannot be present in this expression.
  1149  	OnExpr Expression `protobuf:"bytes,5,opt,name=on_expr,json=onExpr" json:"on_expr"`
  1150  	// Only INNER, LEFT_OUTER, LEFT_SEMI, LEFT_ANTI are supported. For indexes
  1151  	// that produce false positives for user expressions, like geospatial
  1152  	// indexes, only INNER and LEFT_OUTER are actually useful -- LEFT_SEMI will
  1153  	// be mapped to INNER by the optimizer, and LEFT_ANTI to LEFT_OUTER, to
  1154  	// allow the false positives to be eliminated by evaluating the exact
  1155  	// expression on the rows output by this join.
  1156  	Type sqlbase.JoinType `protobuf:"varint,6,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
  1157  }
  1158  
  1159  func (m *InvertedJoinerSpec) Reset()         { *m = InvertedJoinerSpec{} }
  1160  func (m *InvertedJoinerSpec) String() string { return proto.CompactTextString(m) }
  1161  func (*InvertedJoinerSpec) ProtoMessage()    {}
  1162  func (*InvertedJoinerSpec) Descriptor() ([]byte, []int) {
  1163  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{10}
  1164  }
  1165  func (m *InvertedJoinerSpec) XXX_Unmarshal(b []byte) error {
  1166  	return m.Unmarshal(b)
  1167  }
  1168  func (m *InvertedJoinerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1169  	b = b[:cap(b)]
  1170  	n, err := m.MarshalTo(b)
  1171  	if err != nil {
  1172  		return nil, err
  1173  	}
  1174  	return b[:n], nil
  1175  }
  1176  func (dst *InvertedJoinerSpec) XXX_Merge(src proto.Message) {
  1177  	xxx_messageInfo_InvertedJoinerSpec.Merge(dst, src)
  1178  }
  1179  func (m *InvertedJoinerSpec) XXX_Size() int {
  1180  	return m.Size()
  1181  }
  1182  func (m *InvertedJoinerSpec) XXX_DiscardUnknown() {
  1183  	xxx_messageInfo_InvertedJoinerSpec.DiscardUnknown(m)
  1184  }
  1185  
  1186  var xxx_messageInfo_InvertedJoinerSpec proto.InternalMessageInfo
  1187  
  1188  // InvertedFiltererSpec is the specification of a processor that does filtering
  1189  // on a table by evaluating an invertedexpr.SpanExpressionProto on an inverted
  1190  // index of the table. The input consists of the inverted index rows from
  1191  // SpanExpressionProto.SpansToRead.
  1192  //
  1193  // Example:
  1194  // Table columns: | a | b | c | d |
  1195  // where a, b are the primary key and d is the column with the inverted index.
  1196  // Inverted index columns: | d' | a | b |
  1197  // where d' is derived from d. For instance, if d is an array, d' will be
  1198  // elements of the array.
  1199  //
  1200  // Internal columns are | a | b |.
  1201  type InvertedFiltererSpec struct {
  1202  	// The expression to evaluate.
  1203  	InvertedExpr invertedexpr.SpanExpressionProto `protobuf:"bytes,1,opt,name=inverted_expr,json=invertedExpr" json:"inverted_expr"`
  1204  	// Optional expression involving the primary key columns, where
  1205  	// @1 refers to the first PK column, and so on. The inverted index
  1206  	// column is not part of this numbering.
  1207  	OnExpr Expression `protobuf:"bytes,2,opt,name=on_expr,json=onExpr" json:"on_expr"`
  1208  }
  1209  
  1210  func (m *InvertedFiltererSpec) Reset()         { *m = InvertedFiltererSpec{} }
  1211  func (m *InvertedFiltererSpec) String() string { return proto.CompactTextString(m) }
  1212  func (*InvertedFiltererSpec) ProtoMessage()    {}
  1213  func (*InvertedFiltererSpec) Descriptor() ([]byte, []int) {
  1214  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{11}
  1215  }
  1216  func (m *InvertedFiltererSpec) XXX_Unmarshal(b []byte) error {
  1217  	return m.Unmarshal(b)
  1218  }
  1219  func (m *InvertedFiltererSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1220  	b = b[:cap(b)]
  1221  	n, err := m.MarshalTo(b)
  1222  	if err != nil {
  1223  		return nil, err
  1224  	}
  1225  	return b[:n], nil
  1226  }
  1227  func (dst *InvertedFiltererSpec) XXX_Merge(src proto.Message) {
  1228  	xxx_messageInfo_InvertedFiltererSpec.Merge(dst, src)
  1229  }
  1230  func (m *InvertedFiltererSpec) XXX_Size() int {
  1231  	return m.Size()
  1232  }
  1233  func (m *InvertedFiltererSpec) XXX_DiscardUnknown() {
  1234  	xxx_messageInfo_InvertedFiltererSpec.DiscardUnknown(m)
  1235  }
  1236  
  1237  var xxx_messageInfo_InvertedFiltererSpec proto.InternalMessageInfo
  1238  
  1239  // AggregatorSpec is the specification for an "aggregator" (processor core
  1240  // type, not the logical plan computation stage). An aggregator performs
  1241  // 'aggregation' in the SQL sense in that it groups rows and computes an aggregate
  1242  // for each group. The group is configured using the group key. The aggregator
  1243  // can be configured with one or more aggregation functions.
  1244  //
  1245  // The "internal columns" of an Aggregator map 1-1 to the aggregations.
  1246  type AggregatorSpec struct {
  1247  	Type AggregatorSpec_Type `protobuf:"varint,5,opt,name=type,enum=cockroach.sql.distsqlrun.AggregatorSpec_Type" json:"type"`
  1248  	// The group key is a subset of the columns in the input stream schema on the
  1249  	// basis of which we define our groups.
  1250  	GroupCols    []uint32                     `protobuf:"varint,2,rep,packed,name=group_cols,json=groupCols" json:"group_cols,omitempty"`
  1251  	Aggregations []AggregatorSpec_Aggregation `protobuf:"bytes,3,rep,name=aggregations" json:"aggregations"`
  1252  	// A subset of the GROUP BY columns which are ordered in the input.
  1253  	OrderedGroupCols []uint32 `protobuf:"varint,4,rep,packed,name=ordered_group_cols,json=orderedGroupCols" json:"ordered_group_cols,omitempty"`
  1254  }
  1255  
  1256  func (m *AggregatorSpec) Reset()         { *m = AggregatorSpec{} }
  1257  func (m *AggregatorSpec) String() string { return proto.CompactTextString(m) }
  1258  func (*AggregatorSpec) ProtoMessage()    {}
  1259  func (*AggregatorSpec) Descriptor() ([]byte, []int) {
  1260  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{12}
  1261  }
  1262  func (m *AggregatorSpec) XXX_Unmarshal(b []byte) error {
  1263  	return m.Unmarshal(b)
  1264  }
  1265  func (m *AggregatorSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1266  	b = b[:cap(b)]
  1267  	n, err := m.MarshalTo(b)
  1268  	if err != nil {
  1269  		return nil, err
  1270  	}
  1271  	return b[:n], nil
  1272  }
  1273  func (dst *AggregatorSpec) XXX_Merge(src proto.Message) {
  1274  	xxx_messageInfo_AggregatorSpec.Merge(dst, src)
  1275  }
  1276  func (m *AggregatorSpec) XXX_Size() int {
  1277  	return m.Size()
  1278  }
  1279  func (m *AggregatorSpec) XXX_DiscardUnknown() {
  1280  	xxx_messageInfo_AggregatorSpec.DiscardUnknown(m)
  1281  }
  1282  
  1283  var xxx_messageInfo_AggregatorSpec proto.InternalMessageInfo
  1284  
  1285  type AggregatorSpec_Aggregation struct {
  1286  	Func AggregatorSpec_Func `protobuf:"varint,1,opt,name=func,enum=cockroach.sql.distsqlrun.AggregatorSpec_Func" json:"func"`
  1287  	// Aggregation functions with distinct = true functions like you would
  1288  	// expect '<FUNC> DISTINCT' to operate, the default behavior would be
  1289  	// the '<FUNC> ALL' operation.
  1290  	Distinct bool `protobuf:"varint,2,opt,name=distinct" json:"distinct"`
  1291  	// The column index specifies the argument(s) to the aggregator function.
  1292  	//
  1293  	// Most aggregations take one argument
  1294  	// COUNT_ROWS takes no arguments.
  1295  	// FINAL_STDDEV and FINAL_VARIANCE take three arguments (SQRDIFF, SUM,
  1296  	// COUNT).
  1297  	ColIdx []uint32 `protobuf:"varint,5,rep,name=col_idx,json=colIdx" json:"col_idx,omitempty"`
  1298  	// If set, this column index specifies a boolean argument; rows for which
  1299  	// this value is not true don't contribute to this aggregation. This enables
  1300  	// the filter clause, e.g.:
  1301  	//   SELECT SUM(x) FILTER (WHERE y > 1), SUM(x) FILTER (WHERE y < 1) FROM t
  1302  	FilterColIdx *uint32 `protobuf:"varint,4,opt,name=filter_col_idx,json=filterColIdx" json:"filter_col_idx,omitempty"`
  1303  	// Arguments are const expressions passed to aggregation functions.
  1304  	Arguments []Expression `protobuf:"bytes,6,rep,name=arguments" json:"arguments"`
  1305  }
  1306  
  1307  func (m *AggregatorSpec_Aggregation) Reset()         { *m = AggregatorSpec_Aggregation{} }
  1308  func (m *AggregatorSpec_Aggregation) String() string { return proto.CompactTextString(m) }
  1309  func (*AggregatorSpec_Aggregation) ProtoMessage()    {}
  1310  func (*AggregatorSpec_Aggregation) Descriptor() ([]byte, []int) {
  1311  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{12, 0}
  1312  }
  1313  func (m *AggregatorSpec_Aggregation) XXX_Unmarshal(b []byte) error {
  1314  	return m.Unmarshal(b)
  1315  }
  1316  func (m *AggregatorSpec_Aggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1317  	b = b[:cap(b)]
  1318  	n, err := m.MarshalTo(b)
  1319  	if err != nil {
  1320  		return nil, err
  1321  	}
  1322  	return b[:n], nil
  1323  }
  1324  func (dst *AggregatorSpec_Aggregation) XXX_Merge(src proto.Message) {
  1325  	xxx_messageInfo_AggregatorSpec_Aggregation.Merge(dst, src)
  1326  }
  1327  func (m *AggregatorSpec_Aggregation) XXX_Size() int {
  1328  	return m.Size()
  1329  }
  1330  func (m *AggregatorSpec_Aggregation) XXX_DiscardUnknown() {
  1331  	xxx_messageInfo_AggregatorSpec_Aggregation.DiscardUnknown(m)
  1332  }
  1333  
  1334  var xxx_messageInfo_AggregatorSpec_Aggregation proto.InternalMessageInfo
  1335  
  1336  // InterleavedReaderJoinerSpec is the specification for a processor that performs
  1337  // KV operations to retrieve rows from 2+ tables from an interleaved hierarchy,
  1338  // performs intermediate filtering on rows from each table, and performs a
  1339  // join on the rows from the 2+ tables.
  1340  //
  1341  // Limitations: the InterleavedReaderJoiner currently supports only equality INNER joins
  1342  // on the full interleave prefix.
  1343  // See https://github.com/cockroachdb/cockroach/blob/master/docs/RFCS/20171025_interleaved_table_joins.md.
  1344  //
  1345  // The "internal columns" of an InterleavedReaderJoiner are the
  1346  // concatenation of left input columns and right input columns. If the left
  1347  // table has N columns and the right table has M columns, the first N columns
  1348  // contain values from the left table and the following M columns contain values
  1349  // from the right table.
  1350  type InterleavedReaderJoinerSpec struct {
  1351  	// For the common case of two tables, table at index 0 is the left/parent
  1352  	// table and table at index 1 is the right/child table.
  1353  	Tables  []InterleavedReaderJoinerSpec_Table `protobuf:"bytes,1,rep,name=tables" json:"tables"`
  1354  	Reverse bool                                `protobuf:"varint,2,opt,name=reverse" json:"reverse"`
  1355  	// A hint for how many joined rows from the tables the consumer of the
  1356  	// interleavedReaderJoiner might need. This is used to size the initial KV
  1357  	// batches to try to avoid reading many more rows than needed by the
  1358  	// processor receiving the output.
  1359  	// Not used if there is a limit set in the PostProcessSpec of this processor
  1360  	// (that value will be used for sizing batches instead).
  1361  	LimitHint int64 `protobuf:"varint,3,opt,name=limit_hint,json=limitHint" json:"limit_hint"`
  1362  	// Indicates the row-level locking strength to be used by the scan over the
  1363  	// tables. If set to FOR_NONE, no row-level locking should be performed.
  1364  	LockingStrength sqlbase.ScanLockingStrength `protobuf:"varint,6,opt,name=locking_strength,json=lockingStrength,enum=cockroach.sql.sqlbase.ScanLockingStrength" json:"locking_strength"`
  1365  	// Indicates the policy to be used by the scan over the tables when dealing
  1366  	// with rows being locked. Always set to BLOCK when locking_stength is
  1367  	// FOR_NONE.
  1368  	//
  1369  	// NOTE: this is currently set but unused because only the BLOCK wait policy
  1370  	// makes it out of the SQL optimizer without throwing an error. If/when other
  1371  	// wait policies are supported, this field will be plumbed further.
  1372  	LockingWaitPolicy sqlbase.ScanLockingWaitPolicy `protobuf:"varint,7,opt,name=locking_wait_policy,json=lockingWaitPolicy,enum=cockroach.sql.sqlbase.ScanLockingWaitPolicy" json:"locking_wait_policy"`
  1373  	// "ON" expression (in addition to the equality constraints captured by the
  1374  	// orderings). Assuming that the left table has N columns and the second
  1375  	// table stream has M columns, in this expression ordinal references @1 to @N
  1376  	// refer to columns of the left table and variables @(N+1) to @(N+M) refer to
  1377  	// columns in the right table.
  1378  	OnExpr Expression       `protobuf:"bytes,4,opt,name=on_expr,json=onExpr" json:"on_expr"`
  1379  	Type   sqlbase.JoinType `protobuf:"varint,5,opt,name=type,enum=cockroach.sql.sqlbase.JoinType" json:"type"`
  1380  }
  1381  
  1382  func (m *InterleavedReaderJoinerSpec) Reset()         { *m = InterleavedReaderJoinerSpec{} }
  1383  func (m *InterleavedReaderJoinerSpec) String() string { return proto.CompactTextString(m) }
  1384  func (*InterleavedReaderJoinerSpec) ProtoMessage()    {}
  1385  func (*InterleavedReaderJoinerSpec) Descriptor() ([]byte, []int) {
  1386  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{13}
  1387  }
  1388  func (m *InterleavedReaderJoinerSpec) XXX_Unmarshal(b []byte) error {
  1389  	return m.Unmarshal(b)
  1390  }
  1391  func (m *InterleavedReaderJoinerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1392  	b = b[:cap(b)]
  1393  	n, err := m.MarshalTo(b)
  1394  	if err != nil {
  1395  		return nil, err
  1396  	}
  1397  	return b[:n], nil
  1398  }
  1399  func (dst *InterleavedReaderJoinerSpec) XXX_Merge(src proto.Message) {
  1400  	xxx_messageInfo_InterleavedReaderJoinerSpec.Merge(dst, src)
  1401  }
  1402  func (m *InterleavedReaderJoinerSpec) XXX_Size() int {
  1403  	return m.Size()
  1404  }
  1405  func (m *InterleavedReaderJoinerSpec) XXX_DiscardUnknown() {
  1406  	xxx_messageInfo_InterleavedReaderJoinerSpec.DiscardUnknown(m)
  1407  }
  1408  
  1409  var xxx_messageInfo_InterleavedReaderJoinerSpec proto.InternalMessageInfo
  1410  
  1411  type InterleavedReaderJoinerSpec_Table struct {
  1412  	Desc sqlbase.TableDescriptor `protobuf:"bytes,1,opt,name=desc" json:"desc"`
  1413  	// If 0, we use the primary index. If non-zero, we use the index_idx-th index,
  1414  	// i.e. desc.indexes[index_idx-1]
  1415  	IndexIdx uint32 `protobuf:"varint,2,opt,name=index_idx,json=indexIdx" json:"index_idx"`
  1416  	// The PostProcessSpecs of the corresponding TableReaderSpecs of each table
  1417  	// are fed as arguments to InterleavedReaderJoiner.
  1418  	//
  1419  	// This is required to properly post-process the rows (i.e. filtering and
  1420  	// projections) after reading from the table but before joining.
  1421  	// It may be necessary to modify/introduce additional intermediate filters
  1422  	// for correctness (see comment above 'spans' under
  1423  	// InterleavedReaderJoinerSpec).
  1424  	Post PostProcessSpec `protobuf:"bytes,3,opt,name=post" json:"post"`
  1425  	// The tables must be ordered according to the columns that have equality
  1426  	// constraints. The first column of the first table's ordering is constrained
  1427  	// to be equal to the first column in the second table's ordering and so on
  1428  	// for the other tables and their corresponding columns.
  1429  	Ordering Ordering `protobuf:"bytes,4,opt,name=ordering" json:"ordering"`
  1430  	// The span covering the rows from this table to join. Note the
  1431  	// InterleavedReaderJoiner processor will taking the union of all spans across
  1432  	// all tables to do a single pass-through scan. InterleavedReaderJoiner will
  1433  	// then check if a given row for a table is within any of its spans.
  1434  	// There must exist at least one non-empty set of spans for some table.
  1435  	Spans []TableReaderSpan `protobuf:"bytes,5,rep,name=spans" json:"spans"`
  1436  }
  1437  
  1438  func (m *InterleavedReaderJoinerSpec_Table) Reset()         { *m = InterleavedReaderJoinerSpec_Table{} }
  1439  func (m *InterleavedReaderJoinerSpec_Table) String() string { return proto.CompactTextString(m) }
  1440  func (*InterleavedReaderJoinerSpec_Table) ProtoMessage()    {}
  1441  func (*InterleavedReaderJoinerSpec_Table) Descriptor() ([]byte, []int) {
  1442  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{13, 0}
  1443  }
  1444  func (m *InterleavedReaderJoinerSpec_Table) XXX_Unmarshal(b []byte) error {
  1445  	return m.Unmarshal(b)
  1446  }
  1447  func (m *InterleavedReaderJoinerSpec_Table) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1448  	b = b[:cap(b)]
  1449  	n, err := m.MarshalTo(b)
  1450  	if err != nil {
  1451  		return nil, err
  1452  	}
  1453  	return b[:n], nil
  1454  }
  1455  func (dst *InterleavedReaderJoinerSpec_Table) XXX_Merge(src proto.Message) {
  1456  	xxx_messageInfo_InterleavedReaderJoinerSpec_Table.Merge(dst, src)
  1457  }
  1458  func (m *InterleavedReaderJoinerSpec_Table) XXX_Size() int {
  1459  	return m.Size()
  1460  }
  1461  func (m *InterleavedReaderJoinerSpec_Table) XXX_DiscardUnknown() {
  1462  	xxx_messageInfo_InterleavedReaderJoinerSpec_Table.DiscardUnknown(m)
  1463  }
  1464  
  1465  var xxx_messageInfo_InterleavedReaderJoinerSpec_Table proto.InternalMessageInfo
  1466  
  1467  // ProjectSetSpec is the specification of a processor which applies a set of
  1468  // expressions, which may be set-returning functions, to its input.
  1469  type ProjectSetSpec struct {
  1470  	// Expressions to be applied
  1471  	Exprs []Expression `protobuf:"bytes,1,rep,name=exprs" json:"exprs"`
  1472  	// Column types for the generated values
  1473  	GeneratedColumns []*types.T `protobuf:"bytes,2,rep,name=generated_columns,json=generatedColumns" json:"generated_columns,omitempty"`
  1474  	// The number of columns each expression returns. Same length as exprs.
  1475  	NumColsPerGen []uint32 `protobuf:"varint,3,rep,name=num_cols_per_gen,json=numColsPerGen" json:"num_cols_per_gen,omitempty"`
  1476  }
  1477  
  1478  func (m *ProjectSetSpec) Reset()         { *m = ProjectSetSpec{} }
  1479  func (m *ProjectSetSpec) String() string { return proto.CompactTextString(m) }
  1480  func (*ProjectSetSpec) ProtoMessage()    {}
  1481  func (*ProjectSetSpec) Descriptor() ([]byte, []int) {
  1482  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{14}
  1483  }
  1484  func (m *ProjectSetSpec) XXX_Unmarshal(b []byte) error {
  1485  	return m.Unmarshal(b)
  1486  }
  1487  func (m *ProjectSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1488  	b = b[:cap(b)]
  1489  	n, err := m.MarshalTo(b)
  1490  	if err != nil {
  1491  		return nil, err
  1492  	}
  1493  	return b[:n], nil
  1494  }
  1495  func (dst *ProjectSetSpec) XXX_Merge(src proto.Message) {
  1496  	xxx_messageInfo_ProjectSetSpec.Merge(dst, src)
  1497  }
  1498  func (m *ProjectSetSpec) XXX_Size() int {
  1499  	return m.Size()
  1500  }
  1501  func (m *ProjectSetSpec) XXX_DiscardUnknown() {
  1502  	xxx_messageInfo_ProjectSetSpec.DiscardUnknown(m)
  1503  }
  1504  
  1505  var xxx_messageInfo_ProjectSetSpec proto.InternalMessageInfo
  1506  
  1507  // WindowerSpec is the specification of a processor that performs computations
  1508  // of window functions that have the same PARTITION BY clause. For a particular
  1509  // windowFn, the processor puts result at windowFn.ArgIdxStart and "consumes"
  1510  // all arguments to windowFn (windowFn.ArgCount of them). So if windowFn takes
  1511  // no arguments, an extra column is added; if windowFn takes more than one
  1512  // argument, (windowFn.ArgCount - 1) columns are removed.
  1513  type WindowerSpec struct {
  1514  	// PartitionBy specifies how to partition rows for all window functions.
  1515  	PartitionBy []uint32 `protobuf:"varint,1,rep,name=partitionBy" json:"partitionBy,omitempty"`
  1516  	// WindowFns is the specification of all window functions to be computed.
  1517  	WindowFns []WindowerSpec_WindowFn `protobuf:"bytes,2,rep,name=windowFns" json:"windowFns"`
  1518  }
  1519  
  1520  func (m *WindowerSpec) Reset()         { *m = WindowerSpec{} }
  1521  func (m *WindowerSpec) String() string { return proto.CompactTextString(m) }
  1522  func (*WindowerSpec) ProtoMessage()    {}
  1523  func (*WindowerSpec) Descriptor() ([]byte, []int) {
  1524  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15}
  1525  }
  1526  func (m *WindowerSpec) XXX_Unmarshal(b []byte) error {
  1527  	return m.Unmarshal(b)
  1528  }
  1529  func (m *WindowerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1530  	b = b[:cap(b)]
  1531  	n, err := m.MarshalTo(b)
  1532  	if err != nil {
  1533  		return nil, err
  1534  	}
  1535  	return b[:n], nil
  1536  }
  1537  func (dst *WindowerSpec) XXX_Merge(src proto.Message) {
  1538  	xxx_messageInfo_WindowerSpec.Merge(dst, src)
  1539  }
  1540  func (m *WindowerSpec) XXX_Size() int {
  1541  	return m.Size()
  1542  }
  1543  func (m *WindowerSpec) XXX_DiscardUnknown() {
  1544  	xxx_messageInfo_WindowerSpec.DiscardUnknown(m)
  1545  }
  1546  
  1547  var xxx_messageInfo_WindowerSpec proto.InternalMessageInfo
  1548  
  1549  // Func specifies which function to compute. It can either be built-in
  1550  // aggregate or built-in window function.
  1551  type WindowerSpec_Func struct {
  1552  	AggregateFunc *AggregatorSpec_Func     `protobuf:"varint,1,opt,name=aggregateFunc,enum=cockroach.sql.distsqlrun.AggregatorSpec_Func" json:"aggregateFunc,omitempty"`
  1553  	WindowFunc    *WindowerSpec_WindowFunc `protobuf:"varint,2,opt,name=windowFunc,enum=cockroach.sql.distsqlrun.WindowerSpec_WindowFunc" json:"windowFunc,omitempty"`
  1554  }
  1555  
  1556  func (m *WindowerSpec_Func) Reset()         { *m = WindowerSpec_Func{} }
  1557  func (m *WindowerSpec_Func) String() string { return proto.CompactTextString(m) }
  1558  func (*WindowerSpec_Func) ProtoMessage()    {}
  1559  func (*WindowerSpec_Func) Descriptor() ([]byte, []int) {
  1560  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 0}
  1561  }
  1562  func (m *WindowerSpec_Func) XXX_Unmarshal(b []byte) error {
  1563  	return m.Unmarshal(b)
  1564  }
  1565  func (m *WindowerSpec_Func) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1566  	b = b[:cap(b)]
  1567  	n, err := m.MarshalTo(b)
  1568  	if err != nil {
  1569  		return nil, err
  1570  	}
  1571  	return b[:n], nil
  1572  }
  1573  func (dst *WindowerSpec_Func) XXX_Merge(src proto.Message) {
  1574  	xxx_messageInfo_WindowerSpec_Func.Merge(dst, src)
  1575  }
  1576  func (m *WindowerSpec_Func) XXX_Size() int {
  1577  	return m.Size()
  1578  }
  1579  func (m *WindowerSpec_Func) XXX_DiscardUnknown() {
  1580  	xxx_messageInfo_WindowerSpec_Func.DiscardUnknown(m)
  1581  }
  1582  
  1583  var xxx_messageInfo_WindowerSpec_Func proto.InternalMessageInfo
  1584  
  1585  // Frame is the specification of a single window frame for a window function.
  1586  type WindowerSpec_Frame struct {
  1587  	Mode      WindowerSpec_Frame_Mode      `protobuf:"varint,1,opt,name=mode,enum=cockroach.sql.distsqlrun.WindowerSpec_Frame_Mode" json:"mode"`
  1588  	Bounds    WindowerSpec_Frame_Bounds    `protobuf:"bytes,2,opt,name=bounds" json:"bounds"`
  1589  	Exclusion WindowerSpec_Frame_Exclusion `protobuf:"varint,3,opt,name=exclusion,enum=cockroach.sql.distsqlrun.WindowerSpec_Frame_Exclusion" json:"exclusion"`
  1590  }
  1591  
  1592  func (m *WindowerSpec_Frame) Reset()         { *m = WindowerSpec_Frame{} }
  1593  func (m *WindowerSpec_Frame) String() string { return proto.CompactTextString(m) }
  1594  func (*WindowerSpec_Frame) ProtoMessage()    {}
  1595  func (*WindowerSpec_Frame) Descriptor() ([]byte, []int) {
  1596  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1}
  1597  }
  1598  func (m *WindowerSpec_Frame) XXX_Unmarshal(b []byte) error {
  1599  	return m.Unmarshal(b)
  1600  }
  1601  func (m *WindowerSpec_Frame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1602  	b = b[:cap(b)]
  1603  	n, err := m.MarshalTo(b)
  1604  	if err != nil {
  1605  		return nil, err
  1606  	}
  1607  	return b[:n], nil
  1608  }
  1609  func (dst *WindowerSpec_Frame) XXX_Merge(src proto.Message) {
  1610  	xxx_messageInfo_WindowerSpec_Frame.Merge(dst, src)
  1611  }
  1612  func (m *WindowerSpec_Frame) XXX_Size() int {
  1613  	return m.Size()
  1614  }
  1615  func (m *WindowerSpec_Frame) XXX_DiscardUnknown() {
  1616  	xxx_messageInfo_WindowerSpec_Frame.DiscardUnknown(m)
  1617  }
  1618  
  1619  var xxx_messageInfo_WindowerSpec_Frame proto.InternalMessageInfo
  1620  
  1621  // Bound specifies the type of boundary and the offset (if present).
  1622  type WindowerSpec_Frame_Bound struct {
  1623  	BoundType WindowerSpec_Frame_BoundType `protobuf:"varint,1,opt,name=boundType,enum=cockroach.sql.distsqlrun.WindowerSpec_Frame_BoundType" json:"boundType"`
  1624  	// For UNBOUNDED_PRECEDING, UNBOUNDED_FOLLOWING, and CURRENT_ROW offset
  1625  	// is ignored. Integer offset for ROWS and GROUPS modes is stored in
  1626  	// int_offset while an encoded datum and the type information are stored
  1627  	// for RANGE mode.
  1628  	IntOffset   uint64    `protobuf:"varint,2,opt,name=int_offset,json=intOffset" json:"int_offset"`
  1629  	TypedOffset []byte    `protobuf:"bytes,3,opt,name=typed_offset,json=typedOffset" json:"typed_offset,omitempty"`
  1630  	OffsetType  DatumInfo `protobuf:"bytes,4,opt,name=offset_type,json=offsetType" json:"offset_type"`
  1631  }
  1632  
  1633  func (m *WindowerSpec_Frame_Bound) Reset()         { *m = WindowerSpec_Frame_Bound{} }
  1634  func (m *WindowerSpec_Frame_Bound) String() string { return proto.CompactTextString(m) }
  1635  func (*WindowerSpec_Frame_Bound) ProtoMessage()    {}
  1636  func (*WindowerSpec_Frame_Bound) Descriptor() ([]byte, []int) {
  1637  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1, 0}
  1638  }
  1639  func (m *WindowerSpec_Frame_Bound) XXX_Unmarshal(b []byte) error {
  1640  	return m.Unmarshal(b)
  1641  }
  1642  func (m *WindowerSpec_Frame_Bound) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1643  	b = b[:cap(b)]
  1644  	n, err := m.MarshalTo(b)
  1645  	if err != nil {
  1646  		return nil, err
  1647  	}
  1648  	return b[:n], nil
  1649  }
  1650  func (dst *WindowerSpec_Frame_Bound) XXX_Merge(src proto.Message) {
  1651  	xxx_messageInfo_WindowerSpec_Frame_Bound.Merge(dst, src)
  1652  }
  1653  func (m *WindowerSpec_Frame_Bound) XXX_Size() int {
  1654  	return m.Size()
  1655  }
  1656  func (m *WindowerSpec_Frame_Bound) XXX_DiscardUnknown() {
  1657  	xxx_messageInfo_WindowerSpec_Frame_Bound.DiscardUnknown(m)
  1658  }
  1659  
  1660  var xxx_messageInfo_WindowerSpec_Frame_Bound proto.InternalMessageInfo
  1661  
  1662  // Bounds specifies boundaries of the window frame.
  1663  type WindowerSpec_Frame_Bounds struct {
  1664  	// Start bound must always be present whereas end bound might be omitted.
  1665  	Start WindowerSpec_Frame_Bound  `protobuf:"bytes,1,opt,name=start" json:"start"`
  1666  	End   *WindowerSpec_Frame_Bound `protobuf:"bytes,2,opt,name=end" json:"end,omitempty"`
  1667  }
  1668  
  1669  func (m *WindowerSpec_Frame_Bounds) Reset()         { *m = WindowerSpec_Frame_Bounds{} }
  1670  func (m *WindowerSpec_Frame_Bounds) String() string { return proto.CompactTextString(m) }
  1671  func (*WindowerSpec_Frame_Bounds) ProtoMessage()    {}
  1672  func (*WindowerSpec_Frame_Bounds) Descriptor() ([]byte, []int) {
  1673  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 1, 1}
  1674  }
  1675  func (m *WindowerSpec_Frame_Bounds) XXX_Unmarshal(b []byte) error {
  1676  	return m.Unmarshal(b)
  1677  }
  1678  func (m *WindowerSpec_Frame_Bounds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1679  	b = b[:cap(b)]
  1680  	n, err := m.MarshalTo(b)
  1681  	if err != nil {
  1682  		return nil, err
  1683  	}
  1684  	return b[:n], nil
  1685  }
  1686  func (dst *WindowerSpec_Frame_Bounds) XXX_Merge(src proto.Message) {
  1687  	xxx_messageInfo_WindowerSpec_Frame_Bounds.Merge(dst, src)
  1688  }
  1689  func (m *WindowerSpec_Frame_Bounds) XXX_Size() int {
  1690  	return m.Size()
  1691  }
  1692  func (m *WindowerSpec_Frame_Bounds) XXX_DiscardUnknown() {
  1693  	xxx_messageInfo_WindowerSpec_Frame_Bounds.DiscardUnknown(m)
  1694  }
  1695  
  1696  var xxx_messageInfo_WindowerSpec_Frame_Bounds proto.InternalMessageInfo
  1697  
  1698  // WindowFn is the specification of a single window function.
  1699  type WindowerSpec_WindowFn struct {
  1700  	// Func is which function to compute.
  1701  	Func WindowerSpec_Func `protobuf:"bytes,1,opt,name=func" json:"func"`
  1702  	// ArgsIdxs contains indices of the columns that are arguments to the
  1703  	// window function.
  1704  	ArgsIdxs []uint32 `protobuf:"varint,7,rep,name=argsIdxs" json:"argsIdxs,omitempty"`
  1705  	// Ordering specifies in which order rows should be considered by this
  1706  	// window function. Its contents come from ORDER BY clause of the window
  1707  	// function.
  1708  	Ordering Ordering `protobuf:"bytes,4,opt,name=ordering" json:"ordering"`
  1709  	// Frame specifies over which frame this window function is computed.
  1710  	Frame *WindowerSpec_Frame `protobuf:"bytes,5,opt,name=frame" json:"frame,omitempty"`
  1711  	// Optional index of a column over which filtering of rows will be done.
  1712  	// Special value -1 indicates that filter is not present.
  1713  	FilterColIdx int32 `protobuf:"varint,6,opt,name=filterColIdx" json:"filterColIdx"`
  1714  	// OutputColIdx specifies the column index which the window function should
  1715  	// put its output into.
  1716  	OutputColIdx uint32 `protobuf:"varint,8,opt,name=outputColIdx" json:"outputColIdx"`
  1717  }
  1718  
  1719  func (m *WindowerSpec_WindowFn) Reset()         { *m = WindowerSpec_WindowFn{} }
  1720  func (m *WindowerSpec_WindowFn) String() string { return proto.CompactTextString(m) }
  1721  func (*WindowerSpec_WindowFn) ProtoMessage()    {}
  1722  func (*WindowerSpec_WindowFn) Descriptor() ([]byte, []int) {
  1723  	return fileDescriptor_processors_sql_c1e87fb3f4a49645, []int{15, 2}
  1724  }
  1725  func (m *WindowerSpec_WindowFn) XXX_Unmarshal(b []byte) error {
  1726  	return m.Unmarshal(b)
  1727  }
  1728  func (m *WindowerSpec_WindowFn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1729  	b = b[:cap(b)]
  1730  	n, err := m.MarshalTo(b)
  1731  	if err != nil {
  1732  		return nil, err
  1733  	}
  1734  	return b[:n], nil
  1735  }
  1736  func (dst *WindowerSpec_WindowFn) XXX_Merge(src proto.Message) {
  1737  	xxx_messageInfo_WindowerSpec_WindowFn.Merge(dst, src)
  1738  }
  1739  func (m *WindowerSpec_WindowFn) XXX_Size() int {
  1740  	return m.Size()
  1741  }
  1742  func (m *WindowerSpec_WindowFn) XXX_DiscardUnknown() {
  1743  	xxx_messageInfo_WindowerSpec_WindowFn.DiscardUnknown(m)
  1744  }
  1745  
  1746  var xxx_messageInfo_WindowerSpec_WindowFn proto.InternalMessageInfo
  1747  
  1748  func init() {
  1749  	proto.RegisterType((*ValuesCoreSpec)(nil), "cockroach.sql.distsqlrun.ValuesCoreSpec")
  1750  	proto.RegisterType((*TableReaderSpec)(nil), "cockroach.sql.distsqlrun.TableReaderSpec")
  1751  	proto.RegisterType((*IndexSkipTableReaderSpec)(nil), "cockroach.sql.distsqlrun.IndexSkipTableReaderSpec")
  1752  	proto.RegisterType((*JoinReaderSpec)(nil), "cockroach.sql.distsqlrun.JoinReaderSpec")
  1753  	proto.RegisterType((*SorterSpec)(nil), "cockroach.sql.distsqlrun.SorterSpec")
  1754  	proto.RegisterType((*DistinctSpec)(nil), "cockroach.sql.distsqlrun.DistinctSpec")
  1755  	proto.RegisterType((*OrdinalitySpec)(nil), "cockroach.sql.distsqlrun.OrdinalitySpec")
  1756  	proto.RegisterType((*ZigzagJoinerSpec)(nil), "cockroach.sql.distsqlrun.ZigzagJoinerSpec")
  1757  	proto.RegisterType((*MergeJoinerSpec)(nil), "cockroach.sql.distsqlrun.MergeJoinerSpec")
  1758  	proto.RegisterType((*HashJoinerSpec)(nil), "cockroach.sql.distsqlrun.HashJoinerSpec")
  1759  	proto.RegisterType((*InvertedJoinerSpec)(nil), "cockroach.sql.distsqlrun.InvertedJoinerSpec")
  1760  	proto.RegisterType((*InvertedFiltererSpec)(nil), "cockroach.sql.distsqlrun.InvertedFiltererSpec")
  1761  	proto.RegisterType((*AggregatorSpec)(nil), "cockroach.sql.distsqlrun.AggregatorSpec")
  1762  	proto.RegisterType((*AggregatorSpec_Aggregation)(nil), "cockroach.sql.distsqlrun.AggregatorSpec.Aggregation")
  1763  	proto.RegisterType((*InterleavedReaderJoinerSpec)(nil), "cockroach.sql.distsqlrun.InterleavedReaderJoinerSpec")
  1764  	proto.RegisterType((*InterleavedReaderJoinerSpec_Table)(nil), "cockroach.sql.distsqlrun.InterleavedReaderJoinerSpec.Table")
  1765  	proto.RegisterType((*ProjectSetSpec)(nil), "cockroach.sql.distsqlrun.ProjectSetSpec")
  1766  	proto.RegisterType((*WindowerSpec)(nil), "cockroach.sql.distsqlrun.WindowerSpec")
  1767  	proto.RegisterType((*WindowerSpec_Func)(nil), "cockroach.sql.distsqlrun.WindowerSpec.Func")
  1768  	proto.RegisterType((*WindowerSpec_Frame)(nil), "cockroach.sql.distsqlrun.WindowerSpec.Frame")
  1769  	proto.RegisterType((*WindowerSpec_Frame_Bound)(nil), "cockroach.sql.distsqlrun.WindowerSpec.Frame.Bound")
  1770  	proto.RegisterType((*WindowerSpec_Frame_Bounds)(nil), "cockroach.sql.distsqlrun.WindowerSpec.Frame.Bounds")
  1771  	proto.RegisterType((*WindowerSpec_WindowFn)(nil), "cockroach.sql.distsqlrun.WindowerSpec.WindowFn")
  1772  	proto.RegisterEnum("cockroach.sql.distsqlrun.ScanVisibility", ScanVisibility_name, ScanVisibility_value)
  1773  	proto.RegisterEnum("cockroach.sql.distsqlrun.AggregatorSpec_Func", AggregatorSpec_Func_name, AggregatorSpec_Func_value)
  1774  	proto.RegisterEnum("cockroach.sql.distsqlrun.AggregatorSpec_Type", AggregatorSpec_Type_name, AggregatorSpec_Type_value)
  1775  	proto.RegisterEnum("cockroach.sql.distsqlrun.WindowerSpec_WindowFunc", WindowerSpec_WindowFunc_name, WindowerSpec_WindowFunc_value)
  1776  	proto.RegisterEnum("cockroach.sql.distsqlrun.WindowerSpec_Frame_Mode", WindowerSpec_Frame_Mode_name, WindowerSpec_Frame_Mode_value)
  1777  	proto.RegisterEnum("cockroach.sql.distsqlrun.WindowerSpec_Frame_BoundType", WindowerSpec_Frame_BoundType_name, WindowerSpec_Frame_BoundType_value)
  1778  	proto.RegisterEnum("cockroach.sql.distsqlrun.WindowerSpec_Frame_Exclusion", WindowerSpec_Frame_Exclusion_name, WindowerSpec_Frame_Exclusion_value)
  1779  }
  1780  func (m *ValuesCoreSpec) Marshal() (dAtA []byte, err error) {
  1781  	size := m.Size()
  1782  	dAtA = make([]byte, size)
  1783  	n, err := m.MarshalTo(dAtA)
  1784  	if err != nil {
  1785  		return nil, err
  1786  	}
  1787  	return dAtA[:n], nil
  1788  }
  1789  
  1790  func (m *ValuesCoreSpec) MarshalTo(dAtA []byte) (int, error) {
  1791  	var i int
  1792  	_ = i
  1793  	var l int
  1794  	_ = l
  1795  	if len(m.Columns) > 0 {
  1796  		for _, msg := range m.Columns {
  1797  			dAtA[i] = 0xa
  1798  			i++
  1799  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  1800  			n, err := msg.MarshalTo(dAtA[i:])
  1801  			if err != nil {
  1802  				return 0, err
  1803  			}
  1804  			i += n
  1805  		}
  1806  	}
  1807  	if len(m.RawBytes) > 0 {
  1808  		for _, b := range m.RawBytes {
  1809  			dAtA[i] = 0x12
  1810  			i++
  1811  			i = encodeVarintProcessorsSql(dAtA, i, uint64(len(b)))
  1812  			i += copy(dAtA[i:], b)
  1813  		}
  1814  	}
  1815  	dAtA[i] = 0x18
  1816  	i++
  1817  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.NumRows))
  1818  	return i, nil
  1819  }
  1820  
  1821  func (m *TableReaderSpec) Marshal() (dAtA []byte, err error) {
  1822  	size := m.Size()
  1823  	dAtA = make([]byte, size)
  1824  	n, err := m.MarshalTo(dAtA)
  1825  	if err != nil {
  1826  		return nil, err
  1827  	}
  1828  	return dAtA[:n], nil
  1829  }
  1830  
  1831  func (m *TableReaderSpec) MarshalTo(dAtA []byte) (int, error) {
  1832  	var i int
  1833  	_ = i
  1834  	var l int
  1835  	_ = l
  1836  	dAtA[i] = 0xa
  1837  	i++
  1838  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Table.Size()))
  1839  	n1, err := m.Table.MarshalTo(dAtA[i:])
  1840  	if err != nil {
  1841  		return 0, err
  1842  	}
  1843  	i += n1
  1844  	dAtA[i] = 0x10
  1845  	i++
  1846  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IndexIdx))
  1847  	dAtA[i] = 0x18
  1848  	i++
  1849  	if m.Reverse {
  1850  		dAtA[i] = 1
  1851  	} else {
  1852  		dAtA[i] = 0
  1853  	}
  1854  	i++
  1855  	if len(m.Spans) > 0 {
  1856  		for _, msg := range m.Spans {
  1857  			dAtA[i] = 0x22
  1858  			i++
  1859  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  1860  			n, err := msg.MarshalTo(dAtA[i:])
  1861  			if err != nil {
  1862  				return 0, err
  1863  			}
  1864  			i += n
  1865  		}
  1866  	}
  1867  	dAtA[i] = 0x28
  1868  	i++
  1869  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LimitHint))
  1870  	dAtA[i] = 0x30
  1871  	i++
  1872  	if m.IsCheck {
  1873  		dAtA[i] = 1
  1874  	} else {
  1875  		dAtA[i] = 0
  1876  	}
  1877  	i++
  1878  	dAtA[i] = 0x38
  1879  	i++
  1880  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Visibility))
  1881  	dAtA[i] = 0x40
  1882  	i++
  1883  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.MaxResults))
  1884  	dAtA[i] = 0x48
  1885  	i++
  1886  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.MaxTimestampAgeNanos))
  1887  	dAtA[i] = 0x50
  1888  	i++
  1889  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingStrength))
  1890  	dAtA[i] = 0x58
  1891  	i++
  1892  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingWaitPolicy))
  1893  	return i, nil
  1894  }
  1895  
  1896  func (m *IndexSkipTableReaderSpec) Marshal() (dAtA []byte, err error) {
  1897  	size := m.Size()
  1898  	dAtA = make([]byte, size)
  1899  	n, err := m.MarshalTo(dAtA)
  1900  	if err != nil {
  1901  		return nil, err
  1902  	}
  1903  	return dAtA[:n], nil
  1904  }
  1905  
  1906  func (m *IndexSkipTableReaderSpec) MarshalTo(dAtA []byte) (int, error) {
  1907  	var i int
  1908  	_ = i
  1909  	var l int
  1910  	_ = l
  1911  	dAtA[i] = 0xa
  1912  	i++
  1913  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Table.Size()))
  1914  	n2, err := m.Table.MarshalTo(dAtA[i:])
  1915  	if err != nil {
  1916  		return 0, err
  1917  	}
  1918  	i += n2
  1919  	dAtA[i] = 0x10
  1920  	i++
  1921  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IndexIdx))
  1922  	if len(m.Spans) > 0 {
  1923  		for _, msg := range m.Spans {
  1924  			dAtA[i] = 0x1a
  1925  			i++
  1926  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  1927  			n, err := msg.MarshalTo(dAtA[i:])
  1928  			if err != nil {
  1929  				return 0, err
  1930  			}
  1931  			i += n
  1932  		}
  1933  	}
  1934  	dAtA[i] = 0x20
  1935  	i++
  1936  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Visibility))
  1937  	dAtA[i] = 0x28
  1938  	i++
  1939  	if m.Reverse {
  1940  		dAtA[i] = 1
  1941  	} else {
  1942  		dAtA[i] = 0
  1943  	}
  1944  	i++
  1945  	dAtA[i] = 0x30
  1946  	i++
  1947  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingStrength))
  1948  	dAtA[i] = 0x38
  1949  	i++
  1950  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingWaitPolicy))
  1951  	return i, nil
  1952  }
  1953  
  1954  func (m *JoinReaderSpec) Marshal() (dAtA []byte, err error) {
  1955  	size := m.Size()
  1956  	dAtA = make([]byte, size)
  1957  	n, err := m.MarshalTo(dAtA)
  1958  	if err != nil {
  1959  		return nil, err
  1960  	}
  1961  	return dAtA[:n], nil
  1962  }
  1963  
  1964  func (m *JoinReaderSpec) MarshalTo(dAtA []byte) (int, error) {
  1965  	var i int
  1966  	_ = i
  1967  	var l int
  1968  	_ = l
  1969  	dAtA[i] = 0xa
  1970  	i++
  1971  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Table.Size()))
  1972  	n3, err := m.Table.MarshalTo(dAtA[i:])
  1973  	if err != nil {
  1974  		return 0, err
  1975  	}
  1976  	i += n3
  1977  	dAtA[i] = 0x10
  1978  	i++
  1979  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IndexIdx))
  1980  	if len(m.LookupColumns) > 0 {
  1981  		dAtA5 := make([]byte, len(m.LookupColumns)*10)
  1982  		var j4 int
  1983  		for _, num := range m.LookupColumns {
  1984  			for num >= 1<<7 {
  1985  				dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)
  1986  				num >>= 7
  1987  				j4++
  1988  			}
  1989  			dAtA5[j4] = uint8(num)
  1990  			j4++
  1991  		}
  1992  		dAtA[i] = 0x1a
  1993  		i++
  1994  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j4))
  1995  		i += copy(dAtA[i:], dAtA5[:j4])
  1996  	}
  1997  	dAtA[i] = 0x22
  1998  	i++
  1999  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2000  	n6, err := m.OnExpr.MarshalTo(dAtA[i:])
  2001  	if err != nil {
  2002  		return 0, err
  2003  	}
  2004  	i += n6
  2005  	dAtA[i] = 0x30
  2006  	i++
  2007  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2008  	dAtA[i] = 0x38
  2009  	i++
  2010  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Visibility))
  2011  	dAtA[i] = 0x40
  2012  	i++
  2013  	if m.LookupColumnsAreKey {
  2014  		dAtA[i] = 1
  2015  	} else {
  2016  		dAtA[i] = 0
  2017  	}
  2018  	i++
  2019  	dAtA[i] = 0x48
  2020  	i++
  2021  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingStrength))
  2022  	dAtA[i] = 0x50
  2023  	i++
  2024  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingWaitPolicy))
  2025  	dAtA[i] = 0x58
  2026  	i++
  2027  	if m.MaintainOrdering {
  2028  		dAtA[i] = 1
  2029  	} else {
  2030  		dAtA[i] = 0
  2031  	}
  2032  	i++
  2033  	return i, nil
  2034  }
  2035  
  2036  func (m *SorterSpec) Marshal() (dAtA []byte, err error) {
  2037  	size := m.Size()
  2038  	dAtA = make([]byte, size)
  2039  	n, err := m.MarshalTo(dAtA)
  2040  	if err != nil {
  2041  		return nil, err
  2042  	}
  2043  	return dAtA[:n], nil
  2044  }
  2045  
  2046  func (m *SorterSpec) MarshalTo(dAtA []byte) (int, error) {
  2047  	var i int
  2048  	_ = i
  2049  	var l int
  2050  	_ = l
  2051  	dAtA[i] = 0xa
  2052  	i++
  2053  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OutputOrdering.Size()))
  2054  	n7, err := m.OutputOrdering.MarshalTo(dAtA[i:])
  2055  	if err != nil {
  2056  		return 0, err
  2057  	}
  2058  	i += n7
  2059  	dAtA[i] = 0x10
  2060  	i++
  2061  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OrderingMatchLen))
  2062  	return i, nil
  2063  }
  2064  
  2065  func (m *DistinctSpec) Marshal() (dAtA []byte, err error) {
  2066  	size := m.Size()
  2067  	dAtA = make([]byte, size)
  2068  	n, err := m.MarshalTo(dAtA)
  2069  	if err != nil {
  2070  		return nil, err
  2071  	}
  2072  	return dAtA[:n], nil
  2073  }
  2074  
  2075  func (m *DistinctSpec) MarshalTo(dAtA []byte) (int, error) {
  2076  	var i int
  2077  	_ = i
  2078  	var l int
  2079  	_ = l
  2080  	if len(m.OrderedColumns) > 0 {
  2081  		for _, num := range m.OrderedColumns {
  2082  			dAtA[i] = 0x8
  2083  			i++
  2084  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2085  		}
  2086  	}
  2087  	if len(m.DistinctColumns) > 0 {
  2088  		for _, num := range m.DistinctColumns {
  2089  			dAtA[i] = 0x10
  2090  			i++
  2091  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2092  		}
  2093  	}
  2094  	dAtA[i] = 0x18
  2095  	i++
  2096  	if m.NullsAreDistinct {
  2097  		dAtA[i] = 1
  2098  	} else {
  2099  		dAtA[i] = 0
  2100  	}
  2101  	i++
  2102  	dAtA[i] = 0x22
  2103  	i++
  2104  	i = encodeVarintProcessorsSql(dAtA, i, uint64(len(m.ErrorOnDup)))
  2105  	i += copy(dAtA[i:], m.ErrorOnDup)
  2106  	return i, nil
  2107  }
  2108  
  2109  func (m *OrdinalitySpec) Marshal() (dAtA []byte, err error) {
  2110  	size := m.Size()
  2111  	dAtA = make([]byte, size)
  2112  	n, err := m.MarshalTo(dAtA)
  2113  	if err != nil {
  2114  		return nil, err
  2115  	}
  2116  	return dAtA[:n], nil
  2117  }
  2118  
  2119  func (m *OrdinalitySpec) MarshalTo(dAtA []byte) (int, error) {
  2120  	var i int
  2121  	_ = i
  2122  	var l int
  2123  	_ = l
  2124  	return i, nil
  2125  }
  2126  
  2127  func (m *ZigzagJoinerSpec) Marshal() (dAtA []byte, err error) {
  2128  	size := m.Size()
  2129  	dAtA = make([]byte, size)
  2130  	n, err := m.MarshalTo(dAtA)
  2131  	if err != nil {
  2132  		return nil, err
  2133  	}
  2134  	return dAtA[:n], nil
  2135  }
  2136  
  2137  func (m *ZigzagJoinerSpec) MarshalTo(dAtA []byte) (int, error) {
  2138  	var i int
  2139  	_ = i
  2140  	var l int
  2141  	_ = l
  2142  	if len(m.Tables) > 0 {
  2143  		for _, msg := range m.Tables {
  2144  			dAtA[i] = 0xa
  2145  			i++
  2146  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2147  			n, err := msg.MarshalTo(dAtA[i:])
  2148  			if err != nil {
  2149  				return 0, err
  2150  			}
  2151  			i += n
  2152  		}
  2153  	}
  2154  	if len(m.EqColumns) > 0 {
  2155  		for _, msg := range m.EqColumns {
  2156  			dAtA[i] = 0x12
  2157  			i++
  2158  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2159  			n, err := msg.MarshalTo(dAtA[i:])
  2160  			if err != nil {
  2161  				return 0, err
  2162  			}
  2163  			i += n
  2164  		}
  2165  	}
  2166  	if len(m.IndexOrdinals) > 0 {
  2167  		dAtA9 := make([]byte, len(m.IndexOrdinals)*10)
  2168  		var j8 int
  2169  		for _, num := range m.IndexOrdinals {
  2170  			for num >= 1<<7 {
  2171  				dAtA9[j8] = uint8(uint64(num)&0x7f | 0x80)
  2172  				num >>= 7
  2173  				j8++
  2174  			}
  2175  			dAtA9[j8] = uint8(num)
  2176  			j8++
  2177  		}
  2178  		dAtA[i] = 0x1a
  2179  		i++
  2180  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j8))
  2181  		i += copy(dAtA[i:], dAtA9[:j8])
  2182  	}
  2183  	dAtA[i] = 0x22
  2184  	i++
  2185  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2186  	n10, err := m.OnExpr.MarshalTo(dAtA[i:])
  2187  	if err != nil {
  2188  		return 0, err
  2189  	}
  2190  	i += n10
  2191  	if len(m.FixedValues) > 0 {
  2192  		for _, msg := range m.FixedValues {
  2193  			dAtA[i] = 0x2a
  2194  			i++
  2195  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2196  			n, err := msg.MarshalTo(dAtA[i:])
  2197  			if err != nil {
  2198  				return 0, err
  2199  			}
  2200  			i += n
  2201  		}
  2202  	}
  2203  	dAtA[i] = 0x30
  2204  	i++
  2205  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2206  	return i, nil
  2207  }
  2208  
  2209  func (m *MergeJoinerSpec) Marshal() (dAtA []byte, err error) {
  2210  	size := m.Size()
  2211  	dAtA = make([]byte, size)
  2212  	n, err := m.MarshalTo(dAtA)
  2213  	if err != nil {
  2214  		return nil, err
  2215  	}
  2216  	return dAtA[:n], nil
  2217  }
  2218  
  2219  func (m *MergeJoinerSpec) MarshalTo(dAtA []byte) (int, error) {
  2220  	var i int
  2221  	_ = i
  2222  	var l int
  2223  	_ = l
  2224  	dAtA[i] = 0xa
  2225  	i++
  2226  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LeftOrdering.Size()))
  2227  	n11, err := m.LeftOrdering.MarshalTo(dAtA[i:])
  2228  	if err != nil {
  2229  		return 0, err
  2230  	}
  2231  	i += n11
  2232  	dAtA[i] = 0x12
  2233  	i++
  2234  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.RightOrdering.Size()))
  2235  	n12, err := m.RightOrdering.MarshalTo(dAtA[i:])
  2236  	if err != nil {
  2237  		return 0, err
  2238  	}
  2239  	i += n12
  2240  	dAtA[i] = 0x2a
  2241  	i++
  2242  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2243  	n13, err := m.OnExpr.MarshalTo(dAtA[i:])
  2244  	if err != nil {
  2245  		return 0, err
  2246  	}
  2247  	i += n13
  2248  	dAtA[i] = 0x30
  2249  	i++
  2250  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2251  	dAtA[i] = 0x38
  2252  	i++
  2253  	if m.NullEquality {
  2254  		dAtA[i] = 1
  2255  	} else {
  2256  		dAtA[i] = 0
  2257  	}
  2258  	i++
  2259  	dAtA[i] = 0x40
  2260  	i++
  2261  	if m.LeftEqColumnsAreKey {
  2262  		dAtA[i] = 1
  2263  	} else {
  2264  		dAtA[i] = 0
  2265  	}
  2266  	i++
  2267  	dAtA[i] = 0x48
  2268  	i++
  2269  	if m.RightEqColumnsAreKey {
  2270  		dAtA[i] = 1
  2271  	} else {
  2272  		dAtA[i] = 0
  2273  	}
  2274  	i++
  2275  	return i, nil
  2276  }
  2277  
  2278  func (m *HashJoinerSpec) Marshal() (dAtA []byte, err error) {
  2279  	size := m.Size()
  2280  	dAtA = make([]byte, size)
  2281  	n, err := m.MarshalTo(dAtA)
  2282  	if err != nil {
  2283  		return nil, err
  2284  	}
  2285  	return dAtA[:n], nil
  2286  }
  2287  
  2288  func (m *HashJoinerSpec) MarshalTo(dAtA []byte) (int, error) {
  2289  	var i int
  2290  	_ = i
  2291  	var l int
  2292  	_ = l
  2293  	if len(m.LeftEqColumns) > 0 {
  2294  		dAtA15 := make([]byte, len(m.LeftEqColumns)*10)
  2295  		var j14 int
  2296  		for _, num := range m.LeftEqColumns {
  2297  			for num >= 1<<7 {
  2298  				dAtA15[j14] = uint8(uint64(num)&0x7f | 0x80)
  2299  				num >>= 7
  2300  				j14++
  2301  			}
  2302  			dAtA15[j14] = uint8(num)
  2303  			j14++
  2304  		}
  2305  		dAtA[i] = 0xa
  2306  		i++
  2307  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j14))
  2308  		i += copy(dAtA[i:], dAtA15[:j14])
  2309  	}
  2310  	if len(m.RightEqColumns) > 0 {
  2311  		dAtA17 := make([]byte, len(m.RightEqColumns)*10)
  2312  		var j16 int
  2313  		for _, num := range m.RightEqColumns {
  2314  			for num >= 1<<7 {
  2315  				dAtA17[j16] = uint8(uint64(num)&0x7f | 0x80)
  2316  				num >>= 7
  2317  				j16++
  2318  			}
  2319  			dAtA17[j16] = uint8(num)
  2320  			j16++
  2321  		}
  2322  		dAtA[i] = 0x12
  2323  		i++
  2324  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j16))
  2325  		i += copy(dAtA[i:], dAtA17[:j16])
  2326  	}
  2327  	dAtA[i] = 0x2a
  2328  	i++
  2329  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2330  	n18, err := m.OnExpr.MarshalTo(dAtA[i:])
  2331  	if err != nil {
  2332  		return 0, err
  2333  	}
  2334  	i += n18
  2335  	dAtA[i] = 0x30
  2336  	i++
  2337  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2338  	dAtA[i] = 0x38
  2339  	i++
  2340  	if m.MergedColumns {
  2341  		dAtA[i] = 1
  2342  	} else {
  2343  		dAtA[i] = 0
  2344  	}
  2345  	i++
  2346  	dAtA[i] = 0x40
  2347  	i++
  2348  	if m.LeftEqColumnsAreKey {
  2349  		dAtA[i] = 1
  2350  	} else {
  2351  		dAtA[i] = 0
  2352  	}
  2353  	i++
  2354  	dAtA[i] = 0x48
  2355  	i++
  2356  	if m.RightEqColumnsAreKey {
  2357  		dAtA[i] = 1
  2358  	} else {
  2359  		dAtA[i] = 0
  2360  	}
  2361  	i++
  2362  	return i, nil
  2363  }
  2364  
  2365  func (m *InvertedJoinerSpec) Marshal() (dAtA []byte, err error) {
  2366  	size := m.Size()
  2367  	dAtA = make([]byte, size)
  2368  	n, err := m.MarshalTo(dAtA)
  2369  	if err != nil {
  2370  		return nil, err
  2371  	}
  2372  	return dAtA[:n], nil
  2373  }
  2374  
  2375  func (m *InvertedJoinerSpec) MarshalTo(dAtA []byte) (int, error) {
  2376  	var i int
  2377  	_ = i
  2378  	var l int
  2379  	_ = l
  2380  	dAtA[i] = 0xa
  2381  	i++
  2382  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Table.Size()))
  2383  	n19, err := m.Table.MarshalTo(dAtA[i:])
  2384  	if err != nil {
  2385  		return 0, err
  2386  	}
  2387  	i += n19
  2388  	dAtA[i] = 0x10
  2389  	i++
  2390  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IndexIdx))
  2391  	dAtA[i] = 0x18
  2392  	i++
  2393  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LookupColumn))
  2394  	dAtA[i] = 0x22
  2395  	i++
  2396  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.InvertedExpr.Size()))
  2397  	n20, err := m.InvertedExpr.MarshalTo(dAtA[i:])
  2398  	if err != nil {
  2399  		return 0, err
  2400  	}
  2401  	i += n20
  2402  	dAtA[i] = 0x2a
  2403  	i++
  2404  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2405  	n21, err := m.OnExpr.MarshalTo(dAtA[i:])
  2406  	if err != nil {
  2407  		return 0, err
  2408  	}
  2409  	i += n21
  2410  	dAtA[i] = 0x30
  2411  	i++
  2412  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2413  	return i, nil
  2414  }
  2415  
  2416  func (m *InvertedFiltererSpec) Marshal() (dAtA []byte, err error) {
  2417  	size := m.Size()
  2418  	dAtA = make([]byte, size)
  2419  	n, err := m.MarshalTo(dAtA)
  2420  	if err != nil {
  2421  		return nil, err
  2422  	}
  2423  	return dAtA[:n], nil
  2424  }
  2425  
  2426  func (m *InvertedFiltererSpec) MarshalTo(dAtA []byte) (int, error) {
  2427  	var i int
  2428  	_ = i
  2429  	var l int
  2430  	_ = l
  2431  	dAtA[i] = 0xa
  2432  	i++
  2433  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.InvertedExpr.Size()))
  2434  	n22, err := m.InvertedExpr.MarshalTo(dAtA[i:])
  2435  	if err != nil {
  2436  		return 0, err
  2437  	}
  2438  	i += n22
  2439  	dAtA[i] = 0x12
  2440  	i++
  2441  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2442  	n23, err := m.OnExpr.MarshalTo(dAtA[i:])
  2443  	if err != nil {
  2444  		return 0, err
  2445  	}
  2446  	i += n23
  2447  	return i, nil
  2448  }
  2449  
  2450  func (m *AggregatorSpec) Marshal() (dAtA []byte, err error) {
  2451  	size := m.Size()
  2452  	dAtA = make([]byte, size)
  2453  	n, err := m.MarshalTo(dAtA)
  2454  	if err != nil {
  2455  		return nil, err
  2456  	}
  2457  	return dAtA[:n], nil
  2458  }
  2459  
  2460  func (m *AggregatorSpec) MarshalTo(dAtA []byte) (int, error) {
  2461  	var i int
  2462  	_ = i
  2463  	var l int
  2464  	_ = l
  2465  	if len(m.GroupCols) > 0 {
  2466  		dAtA25 := make([]byte, len(m.GroupCols)*10)
  2467  		var j24 int
  2468  		for _, num := range m.GroupCols {
  2469  			for num >= 1<<7 {
  2470  				dAtA25[j24] = uint8(uint64(num)&0x7f | 0x80)
  2471  				num >>= 7
  2472  				j24++
  2473  			}
  2474  			dAtA25[j24] = uint8(num)
  2475  			j24++
  2476  		}
  2477  		dAtA[i] = 0x12
  2478  		i++
  2479  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j24))
  2480  		i += copy(dAtA[i:], dAtA25[:j24])
  2481  	}
  2482  	if len(m.Aggregations) > 0 {
  2483  		for _, msg := range m.Aggregations {
  2484  			dAtA[i] = 0x1a
  2485  			i++
  2486  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2487  			n, err := msg.MarshalTo(dAtA[i:])
  2488  			if err != nil {
  2489  				return 0, err
  2490  			}
  2491  			i += n
  2492  		}
  2493  	}
  2494  	if len(m.OrderedGroupCols) > 0 {
  2495  		dAtA27 := make([]byte, len(m.OrderedGroupCols)*10)
  2496  		var j26 int
  2497  		for _, num := range m.OrderedGroupCols {
  2498  			for num >= 1<<7 {
  2499  				dAtA27[j26] = uint8(uint64(num)&0x7f | 0x80)
  2500  				num >>= 7
  2501  				j26++
  2502  			}
  2503  			dAtA27[j26] = uint8(num)
  2504  			j26++
  2505  		}
  2506  		dAtA[i] = 0x22
  2507  		i++
  2508  		i = encodeVarintProcessorsSql(dAtA, i, uint64(j26))
  2509  		i += copy(dAtA[i:], dAtA27[:j26])
  2510  	}
  2511  	dAtA[i] = 0x28
  2512  	i++
  2513  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2514  	return i, nil
  2515  }
  2516  
  2517  func (m *AggregatorSpec_Aggregation) Marshal() (dAtA []byte, err error) {
  2518  	size := m.Size()
  2519  	dAtA = make([]byte, size)
  2520  	n, err := m.MarshalTo(dAtA)
  2521  	if err != nil {
  2522  		return nil, err
  2523  	}
  2524  	return dAtA[:n], nil
  2525  }
  2526  
  2527  func (m *AggregatorSpec_Aggregation) MarshalTo(dAtA []byte) (int, error) {
  2528  	var i int
  2529  	_ = i
  2530  	var l int
  2531  	_ = l
  2532  	dAtA[i] = 0x8
  2533  	i++
  2534  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Func))
  2535  	dAtA[i] = 0x10
  2536  	i++
  2537  	if m.Distinct {
  2538  		dAtA[i] = 1
  2539  	} else {
  2540  		dAtA[i] = 0
  2541  	}
  2542  	i++
  2543  	if m.FilterColIdx != nil {
  2544  		dAtA[i] = 0x20
  2545  		i++
  2546  		i = encodeVarintProcessorsSql(dAtA, i, uint64(*m.FilterColIdx))
  2547  	}
  2548  	if len(m.ColIdx) > 0 {
  2549  		for _, num := range m.ColIdx {
  2550  			dAtA[i] = 0x28
  2551  			i++
  2552  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2553  		}
  2554  	}
  2555  	if len(m.Arguments) > 0 {
  2556  		for _, msg := range m.Arguments {
  2557  			dAtA[i] = 0x32
  2558  			i++
  2559  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2560  			n, err := msg.MarshalTo(dAtA[i:])
  2561  			if err != nil {
  2562  				return 0, err
  2563  			}
  2564  			i += n
  2565  		}
  2566  	}
  2567  	return i, nil
  2568  }
  2569  
  2570  func (m *InterleavedReaderJoinerSpec) Marshal() (dAtA []byte, err error) {
  2571  	size := m.Size()
  2572  	dAtA = make([]byte, size)
  2573  	n, err := m.MarshalTo(dAtA)
  2574  	if err != nil {
  2575  		return nil, err
  2576  	}
  2577  	return dAtA[:n], nil
  2578  }
  2579  
  2580  func (m *InterleavedReaderJoinerSpec) MarshalTo(dAtA []byte) (int, error) {
  2581  	var i int
  2582  	_ = i
  2583  	var l int
  2584  	_ = l
  2585  	if len(m.Tables) > 0 {
  2586  		for _, msg := range m.Tables {
  2587  			dAtA[i] = 0xa
  2588  			i++
  2589  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2590  			n, err := msg.MarshalTo(dAtA[i:])
  2591  			if err != nil {
  2592  				return 0, err
  2593  			}
  2594  			i += n
  2595  		}
  2596  	}
  2597  	dAtA[i] = 0x10
  2598  	i++
  2599  	if m.Reverse {
  2600  		dAtA[i] = 1
  2601  	} else {
  2602  		dAtA[i] = 0
  2603  	}
  2604  	i++
  2605  	dAtA[i] = 0x18
  2606  	i++
  2607  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LimitHint))
  2608  	dAtA[i] = 0x22
  2609  	i++
  2610  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OnExpr.Size()))
  2611  	n28, err := m.OnExpr.MarshalTo(dAtA[i:])
  2612  	if err != nil {
  2613  		return 0, err
  2614  	}
  2615  	i += n28
  2616  	dAtA[i] = 0x28
  2617  	i++
  2618  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Type))
  2619  	dAtA[i] = 0x30
  2620  	i++
  2621  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingStrength))
  2622  	dAtA[i] = 0x38
  2623  	i++
  2624  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.LockingWaitPolicy))
  2625  	return i, nil
  2626  }
  2627  
  2628  func (m *InterleavedReaderJoinerSpec_Table) Marshal() (dAtA []byte, err error) {
  2629  	size := m.Size()
  2630  	dAtA = make([]byte, size)
  2631  	n, err := m.MarshalTo(dAtA)
  2632  	if err != nil {
  2633  		return nil, err
  2634  	}
  2635  	return dAtA[:n], nil
  2636  }
  2637  
  2638  func (m *InterleavedReaderJoinerSpec_Table) MarshalTo(dAtA []byte) (int, error) {
  2639  	var i int
  2640  	_ = i
  2641  	var l int
  2642  	_ = l
  2643  	dAtA[i] = 0xa
  2644  	i++
  2645  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Desc.Size()))
  2646  	n29, err := m.Desc.MarshalTo(dAtA[i:])
  2647  	if err != nil {
  2648  		return 0, err
  2649  	}
  2650  	i += n29
  2651  	dAtA[i] = 0x10
  2652  	i++
  2653  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IndexIdx))
  2654  	dAtA[i] = 0x1a
  2655  	i++
  2656  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Post.Size()))
  2657  	n30, err := m.Post.MarshalTo(dAtA[i:])
  2658  	if err != nil {
  2659  		return 0, err
  2660  	}
  2661  	i += n30
  2662  	dAtA[i] = 0x22
  2663  	i++
  2664  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Ordering.Size()))
  2665  	n31, err := m.Ordering.MarshalTo(dAtA[i:])
  2666  	if err != nil {
  2667  		return 0, err
  2668  	}
  2669  	i += n31
  2670  	if len(m.Spans) > 0 {
  2671  		for _, msg := range m.Spans {
  2672  			dAtA[i] = 0x2a
  2673  			i++
  2674  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2675  			n, err := msg.MarshalTo(dAtA[i:])
  2676  			if err != nil {
  2677  				return 0, err
  2678  			}
  2679  			i += n
  2680  		}
  2681  	}
  2682  	return i, nil
  2683  }
  2684  
  2685  func (m *ProjectSetSpec) Marshal() (dAtA []byte, err error) {
  2686  	size := m.Size()
  2687  	dAtA = make([]byte, size)
  2688  	n, err := m.MarshalTo(dAtA)
  2689  	if err != nil {
  2690  		return nil, err
  2691  	}
  2692  	return dAtA[:n], nil
  2693  }
  2694  
  2695  func (m *ProjectSetSpec) MarshalTo(dAtA []byte) (int, error) {
  2696  	var i int
  2697  	_ = i
  2698  	var l int
  2699  	_ = l
  2700  	if len(m.Exprs) > 0 {
  2701  		for _, msg := range m.Exprs {
  2702  			dAtA[i] = 0xa
  2703  			i++
  2704  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2705  			n, err := msg.MarshalTo(dAtA[i:])
  2706  			if err != nil {
  2707  				return 0, err
  2708  			}
  2709  			i += n
  2710  		}
  2711  	}
  2712  	if len(m.GeneratedColumns) > 0 {
  2713  		for _, msg := range m.GeneratedColumns {
  2714  			dAtA[i] = 0x12
  2715  			i++
  2716  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2717  			n, err := msg.MarshalTo(dAtA[i:])
  2718  			if err != nil {
  2719  				return 0, err
  2720  			}
  2721  			i += n
  2722  		}
  2723  	}
  2724  	if len(m.NumColsPerGen) > 0 {
  2725  		for _, num := range m.NumColsPerGen {
  2726  			dAtA[i] = 0x18
  2727  			i++
  2728  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2729  		}
  2730  	}
  2731  	return i, nil
  2732  }
  2733  
  2734  func (m *WindowerSpec) Marshal() (dAtA []byte, err error) {
  2735  	size := m.Size()
  2736  	dAtA = make([]byte, size)
  2737  	n, err := m.MarshalTo(dAtA)
  2738  	if err != nil {
  2739  		return nil, err
  2740  	}
  2741  	return dAtA[:n], nil
  2742  }
  2743  
  2744  func (m *WindowerSpec) MarshalTo(dAtA []byte) (int, error) {
  2745  	var i int
  2746  	_ = i
  2747  	var l int
  2748  	_ = l
  2749  	if len(m.PartitionBy) > 0 {
  2750  		for _, num := range m.PartitionBy {
  2751  			dAtA[i] = 0x8
  2752  			i++
  2753  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2754  		}
  2755  	}
  2756  	if len(m.WindowFns) > 0 {
  2757  		for _, msg := range m.WindowFns {
  2758  			dAtA[i] = 0x12
  2759  			i++
  2760  			i = encodeVarintProcessorsSql(dAtA, i, uint64(msg.Size()))
  2761  			n, err := msg.MarshalTo(dAtA[i:])
  2762  			if err != nil {
  2763  				return 0, err
  2764  			}
  2765  			i += n
  2766  		}
  2767  	}
  2768  	return i, nil
  2769  }
  2770  
  2771  func (m *WindowerSpec_Func) Marshal() (dAtA []byte, err error) {
  2772  	size := m.Size()
  2773  	dAtA = make([]byte, size)
  2774  	n, err := m.MarshalTo(dAtA)
  2775  	if err != nil {
  2776  		return nil, err
  2777  	}
  2778  	return dAtA[:n], nil
  2779  }
  2780  
  2781  func (m *WindowerSpec_Func) MarshalTo(dAtA []byte) (int, error) {
  2782  	var i int
  2783  	_ = i
  2784  	var l int
  2785  	_ = l
  2786  	if m.AggregateFunc != nil {
  2787  		dAtA[i] = 0x8
  2788  		i++
  2789  		i = encodeVarintProcessorsSql(dAtA, i, uint64(*m.AggregateFunc))
  2790  	}
  2791  	if m.WindowFunc != nil {
  2792  		dAtA[i] = 0x10
  2793  		i++
  2794  		i = encodeVarintProcessorsSql(dAtA, i, uint64(*m.WindowFunc))
  2795  	}
  2796  	return i, nil
  2797  }
  2798  
  2799  func (m *WindowerSpec_Frame) Marshal() (dAtA []byte, err error) {
  2800  	size := m.Size()
  2801  	dAtA = make([]byte, size)
  2802  	n, err := m.MarshalTo(dAtA)
  2803  	if err != nil {
  2804  		return nil, err
  2805  	}
  2806  	return dAtA[:n], nil
  2807  }
  2808  
  2809  func (m *WindowerSpec_Frame) MarshalTo(dAtA []byte) (int, error) {
  2810  	var i int
  2811  	_ = i
  2812  	var l int
  2813  	_ = l
  2814  	dAtA[i] = 0x8
  2815  	i++
  2816  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Mode))
  2817  	dAtA[i] = 0x12
  2818  	i++
  2819  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Bounds.Size()))
  2820  	n32, err := m.Bounds.MarshalTo(dAtA[i:])
  2821  	if err != nil {
  2822  		return 0, err
  2823  	}
  2824  	i += n32
  2825  	dAtA[i] = 0x18
  2826  	i++
  2827  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Exclusion))
  2828  	return i, nil
  2829  }
  2830  
  2831  func (m *WindowerSpec_Frame_Bound) Marshal() (dAtA []byte, err error) {
  2832  	size := m.Size()
  2833  	dAtA = make([]byte, size)
  2834  	n, err := m.MarshalTo(dAtA)
  2835  	if err != nil {
  2836  		return nil, err
  2837  	}
  2838  	return dAtA[:n], nil
  2839  }
  2840  
  2841  func (m *WindowerSpec_Frame_Bound) MarshalTo(dAtA []byte) (int, error) {
  2842  	var i int
  2843  	_ = i
  2844  	var l int
  2845  	_ = l
  2846  	dAtA[i] = 0x8
  2847  	i++
  2848  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.BoundType))
  2849  	dAtA[i] = 0x10
  2850  	i++
  2851  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.IntOffset))
  2852  	if m.TypedOffset != nil {
  2853  		dAtA[i] = 0x1a
  2854  		i++
  2855  		i = encodeVarintProcessorsSql(dAtA, i, uint64(len(m.TypedOffset)))
  2856  		i += copy(dAtA[i:], m.TypedOffset)
  2857  	}
  2858  	dAtA[i] = 0x22
  2859  	i++
  2860  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OffsetType.Size()))
  2861  	n33, err := m.OffsetType.MarshalTo(dAtA[i:])
  2862  	if err != nil {
  2863  		return 0, err
  2864  	}
  2865  	i += n33
  2866  	return i, nil
  2867  }
  2868  
  2869  func (m *WindowerSpec_Frame_Bounds) Marshal() (dAtA []byte, err error) {
  2870  	size := m.Size()
  2871  	dAtA = make([]byte, size)
  2872  	n, err := m.MarshalTo(dAtA)
  2873  	if err != nil {
  2874  		return nil, err
  2875  	}
  2876  	return dAtA[:n], nil
  2877  }
  2878  
  2879  func (m *WindowerSpec_Frame_Bounds) MarshalTo(dAtA []byte) (int, error) {
  2880  	var i int
  2881  	_ = i
  2882  	var l int
  2883  	_ = l
  2884  	dAtA[i] = 0xa
  2885  	i++
  2886  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Start.Size()))
  2887  	n34, err := m.Start.MarshalTo(dAtA[i:])
  2888  	if err != nil {
  2889  		return 0, err
  2890  	}
  2891  	i += n34
  2892  	if m.End != nil {
  2893  		dAtA[i] = 0x12
  2894  		i++
  2895  		i = encodeVarintProcessorsSql(dAtA, i, uint64(m.End.Size()))
  2896  		n35, err := m.End.MarshalTo(dAtA[i:])
  2897  		if err != nil {
  2898  			return 0, err
  2899  		}
  2900  		i += n35
  2901  	}
  2902  	return i, nil
  2903  }
  2904  
  2905  func (m *WindowerSpec_WindowFn) Marshal() (dAtA []byte, err error) {
  2906  	size := m.Size()
  2907  	dAtA = make([]byte, size)
  2908  	n, err := m.MarshalTo(dAtA)
  2909  	if err != nil {
  2910  		return nil, err
  2911  	}
  2912  	return dAtA[:n], nil
  2913  }
  2914  
  2915  func (m *WindowerSpec_WindowFn) MarshalTo(dAtA []byte) (int, error) {
  2916  	var i int
  2917  	_ = i
  2918  	var l int
  2919  	_ = l
  2920  	dAtA[i] = 0xa
  2921  	i++
  2922  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Func.Size()))
  2923  	n36, err := m.Func.MarshalTo(dAtA[i:])
  2924  	if err != nil {
  2925  		return 0, err
  2926  	}
  2927  	i += n36
  2928  	dAtA[i] = 0x22
  2929  	i++
  2930  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Ordering.Size()))
  2931  	n37, err := m.Ordering.MarshalTo(dAtA[i:])
  2932  	if err != nil {
  2933  		return 0, err
  2934  	}
  2935  	i += n37
  2936  	if m.Frame != nil {
  2937  		dAtA[i] = 0x2a
  2938  		i++
  2939  		i = encodeVarintProcessorsSql(dAtA, i, uint64(m.Frame.Size()))
  2940  		n38, err := m.Frame.MarshalTo(dAtA[i:])
  2941  		if err != nil {
  2942  			return 0, err
  2943  		}
  2944  		i += n38
  2945  	}
  2946  	dAtA[i] = 0x30
  2947  	i++
  2948  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.FilterColIdx))
  2949  	if len(m.ArgsIdxs) > 0 {
  2950  		for _, num := range m.ArgsIdxs {
  2951  			dAtA[i] = 0x38
  2952  			i++
  2953  			i = encodeVarintProcessorsSql(dAtA, i, uint64(num))
  2954  		}
  2955  	}
  2956  	dAtA[i] = 0x40
  2957  	i++
  2958  	i = encodeVarintProcessorsSql(dAtA, i, uint64(m.OutputColIdx))
  2959  	return i, nil
  2960  }
  2961  
  2962  func encodeVarintProcessorsSql(dAtA []byte, offset int, v uint64) int {
  2963  	for v >= 1<<7 {
  2964  		dAtA[offset] = uint8(v&0x7f | 0x80)
  2965  		v >>= 7
  2966  		offset++
  2967  	}
  2968  	dAtA[offset] = uint8(v)
  2969  	return offset + 1
  2970  }
  2971  func (m *ValuesCoreSpec) Size() (n int) {
  2972  	if m == nil {
  2973  		return 0
  2974  	}
  2975  	var l int
  2976  	_ = l
  2977  	if len(m.Columns) > 0 {
  2978  		for _, e := range m.Columns {
  2979  			l = e.Size()
  2980  			n += 1 + l + sovProcessorsSql(uint64(l))
  2981  		}
  2982  	}
  2983  	if len(m.RawBytes) > 0 {
  2984  		for _, b := range m.RawBytes {
  2985  			l = len(b)
  2986  			n += 1 + l + sovProcessorsSql(uint64(l))
  2987  		}
  2988  	}
  2989  	n += 1 + sovProcessorsSql(uint64(m.NumRows))
  2990  	return n
  2991  }
  2992  
  2993  func (m *TableReaderSpec) Size() (n int) {
  2994  	if m == nil {
  2995  		return 0
  2996  	}
  2997  	var l int
  2998  	_ = l
  2999  	l = m.Table.Size()
  3000  	n += 1 + l + sovProcessorsSql(uint64(l))
  3001  	n += 1 + sovProcessorsSql(uint64(m.IndexIdx))
  3002  	n += 2
  3003  	if len(m.Spans) > 0 {
  3004  		for _, e := range m.Spans {
  3005  			l = e.Size()
  3006  			n += 1 + l + sovProcessorsSql(uint64(l))
  3007  		}
  3008  	}
  3009  	n += 1 + sovProcessorsSql(uint64(m.LimitHint))
  3010  	n += 2
  3011  	n += 1 + sovProcessorsSql(uint64(m.Visibility))
  3012  	n += 1 + sovProcessorsSql(uint64(m.MaxResults))
  3013  	n += 1 + sovProcessorsSql(uint64(m.MaxTimestampAgeNanos))
  3014  	n += 1 + sovProcessorsSql(uint64(m.LockingStrength))
  3015  	n += 1 + sovProcessorsSql(uint64(m.LockingWaitPolicy))
  3016  	return n
  3017  }
  3018  
  3019  func (m *IndexSkipTableReaderSpec) Size() (n int) {
  3020  	if m == nil {
  3021  		return 0
  3022  	}
  3023  	var l int
  3024  	_ = l
  3025  	l = m.Table.Size()
  3026  	n += 1 + l + sovProcessorsSql(uint64(l))
  3027  	n += 1 + sovProcessorsSql(uint64(m.IndexIdx))
  3028  	if len(m.Spans) > 0 {
  3029  		for _, e := range m.Spans {
  3030  			l = e.Size()
  3031  			n += 1 + l + sovProcessorsSql(uint64(l))
  3032  		}
  3033  	}
  3034  	n += 1 + sovProcessorsSql(uint64(m.Visibility))
  3035  	n += 2
  3036  	n += 1 + sovProcessorsSql(uint64(m.LockingStrength))
  3037  	n += 1 + sovProcessorsSql(uint64(m.LockingWaitPolicy))
  3038  	return n
  3039  }
  3040  
  3041  func (m *JoinReaderSpec) Size() (n int) {
  3042  	if m == nil {
  3043  		return 0
  3044  	}
  3045  	var l int
  3046  	_ = l
  3047  	l = m.Table.Size()
  3048  	n += 1 + l + sovProcessorsSql(uint64(l))
  3049  	n += 1 + sovProcessorsSql(uint64(m.IndexIdx))
  3050  	if len(m.LookupColumns) > 0 {
  3051  		l = 0
  3052  		for _, e := range m.LookupColumns {
  3053  			l += sovProcessorsSql(uint64(e))
  3054  		}
  3055  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3056  	}
  3057  	l = m.OnExpr.Size()
  3058  	n += 1 + l + sovProcessorsSql(uint64(l))
  3059  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3060  	n += 1 + sovProcessorsSql(uint64(m.Visibility))
  3061  	n += 2
  3062  	n += 1 + sovProcessorsSql(uint64(m.LockingStrength))
  3063  	n += 1 + sovProcessorsSql(uint64(m.LockingWaitPolicy))
  3064  	n += 2
  3065  	return n
  3066  }
  3067  
  3068  func (m *SorterSpec) Size() (n int) {
  3069  	if m == nil {
  3070  		return 0
  3071  	}
  3072  	var l int
  3073  	_ = l
  3074  	l = m.OutputOrdering.Size()
  3075  	n += 1 + l + sovProcessorsSql(uint64(l))
  3076  	n += 1 + sovProcessorsSql(uint64(m.OrderingMatchLen))
  3077  	return n
  3078  }
  3079  
  3080  func (m *DistinctSpec) Size() (n int) {
  3081  	if m == nil {
  3082  		return 0
  3083  	}
  3084  	var l int
  3085  	_ = l
  3086  	if len(m.OrderedColumns) > 0 {
  3087  		for _, e := range m.OrderedColumns {
  3088  			n += 1 + sovProcessorsSql(uint64(e))
  3089  		}
  3090  	}
  3091  	if len(m.DistinctColumns) > 0 {
  3092  		for _, e := range m.DistinctColumns {
  3093  			n += 1 + sovProcessorsSql(uint64(e))
  3094  		}
  3095  	}
  3096  	n += 2
  3097  	l = len(m.ErrorOnDup)
  3098  	n += 1 + l + sovProcessorsSql(uint64(l))
  3099  	return n
  3100  }
  3101  
  3102  func (m *OrdinalitySpec) Size() (n int) {
  3103  	if m == nil {
  3104  		return 0
  3105  	}
  3106  	var l int
  3107  	_ = l
  3108  	return n
  3109  }
  3110  
  3111  func (m *ZigzagJoinerSpec) Size() (n int) {
  3112  	if m == nil {
  3113  		return 0
  3114  	}
  3115  	var l int
  3116  	_ = l
  3117  	if len(m.Tables) > 0 {
  3118  		for _, e := range m.Tables {
  3119  			l = e.Size()
  3120  			n += 1 + l + sovProcessorsSql(uint64(l))
  3121  		}
  3122  	}
  3123  	if len(m.EqColumns) > 0 {
  3124  		for _, e := range m.EqColumns {
  3125  			l = e.Size()
  3126  			n += 1 + l + sovProcessorsSql(uint64(l))
  3127  		}
  3128  	}
  3129  	if len(m.IndexOrdinals) > 0 {
  3130  		l = 0
  3131  		for _, e := range m.IndexOrdinals {
  3132  			l += sovProcessorsSql(uint64(e))
  3133  		}
  3134  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3135  	}
  3136  	l = m.OnExpr.Size()
  3137  	n += 1 + l + sovProcessorsSql(uint64(l))
  3138  	if len(m.FixedValues) > 0 {
  3139  		for _, e := range m.FixedValues {
  3140  			l = e.Size()
  3141  			n += 1 + l + sovProcessorsSql(uint64(l))
  3142  		}
  3143  	}
  3144  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3145  	return n
  3146  }
  3147  
  3148  func (m *MergeJoinerSpec) Size() (n int) {
  3149  	if m == nil {
  3150  		return 0
  3151  	}
  3152  	var l int
  3153  	_ = l
  3154  	l = m.LeftOrdering.Size()
  3155  	n += 1 + l + sovProcessorsSql(uint64(l))
  3156  	l = m.RightOrdering.Size()
  3157  	n += 1 + l + sovProcessorsSql(uint64(l))
  3158  	l = m.OnExpr.Size()
  3159  	n += 1 + l + sovProcessorsSql(uint64(l))
  3160  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3161  	n += 2
  3162  	n += 2
  3163  	n += 2
  3164  	return n
  3165  }
  3166  
  3167  func (m *HashJoinerSpec) Size() (n int) {
  3168  	if m == nil {
  3169  		return 0
  3170  	}
  3171  	var l int
  3172  	_ = l
  3173  	if len(m.LeftEqColumns) > 0 {
  3174  		l = 0
  3175  		for _, e := range m.LeftEqColumns {
  3176  			l += sovProcessorsSql(uint64(e))
  3177  		}
  3178  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3179  	}
  3180  	if len(m.RightEqColumns) > 0 {
  3181  		l = 0
  3182  		for _, e := range m.RightEqColumns {
  3183  			l += sovProcessorsSql(uint64(e))
  3184  		}
  3185  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3186  	}
  3187  	l = m.OnExpr.Size()
  3188  	n += 1 + l + sovProcessorsSql(uint64(l))
  3189  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3190  	n += 2
  3191  	n += 2
  3192  	n += 2
  3193  	return n
  3194  }
  3195  
  3196  func (m *InvertedJoinerSpec) Size() (n int) {
  3197  	if m == nil {
  3198  		return 0
  3199  	}
  3200  	var l int
  3201  	_ = l
  3202  	l = m.Table.Size()
  3203  	n += 1 + l + sovProcessorsSql(uint64(l))
  3204  	n += 1 + sovProcessorsSql(uint64(m.IndexIdx))
  3205  	n += 1 + sovProcessorsSql(uint64(m.LookupColumn))
  3206  	l = m.InvertedExpr.Size()
  3207  	n += 1 + l + sovProcessorsSql(uint64(l))
  3208  	l = m.OnExpr.Size()
  3209  	n += 1 + l + sovProcessorsSql(uint64(l))
  3210  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3211  	return n
  3212  }
  3213  
  3214  func (m *InvertedFiltererSpec) Size() (n int) {
  3215  	if m == nil {
  3216  		return 0
  3217  	}
  3218  	var l int
  3219  	_ = l
  3220  	l = m.InvertedExpr.Size()
  3221  	n += 1 + l + sovProcessorsSql(uint64(l))
  3222  	l = m.OnExpr.Size()
  3223  	n += 1 + l + sovProcessorsSql(uint64(l))
  3224  	return n
  3225  }
  3226  
  3227  func (m *AggregatorSpec) Size() (n int) {
  3228  	if m == nil {
  3229  		return 0
  3230  	}
  3231  	var l int
  3232  	_ = l
  3233  	if len(m.GroupCols) > 0 {
  3234  		l = 0
  3235  		for _, e := range m.GroupCols {
  3236  			l += sovProcessorsSql(uint64(e))
  3237  		}
  3238  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3239  	}
  3240  	if len(m.Aggregations) > 0 {
  3241  		for _, e := range m.Aggregations {
  3242  			l = e.Size()
  3243  			n += 1 + l + sovProcessorsSql(uint64(l))
  3244  		}
  3245  	}
  3246  	if len(m.OrderedGroupCols) > 0 {
  3247  		l = 0
  3248  		for _, e := range m.OrderedGroupCols {
  3249  			l += sovProcessorsSql(uint64(e))
  3250  		}
  3251  		n += 1 + sovProcessorsSql(uint64(l)) + l
  3252  	}
  3253  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3254  	return n
  3255  }
  3256  
  3257  func (m *AggregatorSpec_Aggregation) Size() (n int) {
  3258  	if m == nil {
  3259  		return 0
  3260  	}
  3261  	var l int
  3262  	_ = l
  3263  	n += 1 + sovProcessorsSql(uint64(m.Func))
  3264  	n += 2
  3265  	if m.FilterColIdx != nil {
  3266  		n += 1 + sovProcessorsSql(uint64(*m.FilterColIdx))
  3267  	}
  3268  	if len(m.ColIdx) > 0 {
  3269  		for _, e := range m.ColIdx {
  3270  			n += 1 + sovProcessorsSql(uint64(e))
  3271  		}
  3272  	}
  3273  	if len(m.Arguments) > 0 {
  3274  		for _, e := range m.Arguments {
  3275  			l = e.Size()
  3276  			n += 1 + l + sovProcessorsSql(uint64(l))
  3277  		}
  3278  	}
  3279  	return n
  3280  }
  3281  
  3282  func (m *InterleavedReaderJoinerSpec) Size() (n int) {
  3283  	if m == nil {
  3284  		return 0
  3285  	}
  3286  	var l int
  3287  	_ = l
  3288  	if len(m.Tables) > 0 {
  3289  		for _, e := range m.Tables {
  3290  			l = e.Size()
  3291  			n += 1 + l + sovProcessorsSql(uint64(l))
  3292  		}
  3293  	}
  3294  	n += 2
  3295  	n += 1 + sovProcessorsSql(uint64(m.LimitHint))
  3296  	l = m.OnExpr.Size()
  3297  	n += 1 + l + sovProcessorsSql(uint64(l))
  3298  	n += 1 + sovProcessorsSql(uint64(m.Type))
  3299  	n += 1 + sovProcessorsSql(uint64(m.LockingStrength))
  3300  	n += 1 + sovProcessorsSql(uint64(m.LockingWaitPolicy))
  3301  	return n
  3302  }
  3303  
  3304  func (m *InterleavedReaderJoinerSpec_Table) Size() (n int) {
  3305  	if m == nil {
  3306  		return 0
  3307  	}
  3308  	var l int
  3309  	_ = l
  3310  	l = m.Desc.Size()
  3311  	n += 1 + l + sovProcessorsSql(uint64(l))
  3312  	n += 1 + sovProcessorsSql(uint64(m.IndexIdx))
  3313  	l = m.Post.Size()
  3314  	n += 1 + l + sovProcessorsSql(uint64(l))
  3315  	l = m.Ordering.Size()
  3316  	n += 1 + l + sovProcessorsSql(uint64(l))
  3317  	if len(m.Spans) > 0 {
  3318  		for _, e := range m.Spans {
  3319  			l = e.Size()
  3320  			n += 1 + l + sovProcessorsSql(uint64(l))
  3321  		}
  3322  	}
  3323  	return n
  3324  }
  3325  
  3326  func (m *ProjectSetSpec) Size() (n int) {
  3327  	if m == nil {
  3328  		return 0
  3329  	}
  3330  	var l int
  3331  	_ = l
  3332  	if len(m.Exprs) > 0 {
  3333  		for _, e := range m.Exprs {
  3334  			l = e.Size()
  3335  			n += 1 + l + sovProcessorsSql(uint64(l))
  3336  		}
  3337  	}
  3338  	if len(m.GeneratedColumns) > 0 {
  3339  		for _, e := range m.GeneratedColumns {
  3340  			l = e.Size()
  3341  			n += 1 + l + sovProcessorsSql(uint64(l))
  3342  		}
  3343  	}
  3344  	if len(m.NumColsPerGen) > 0 {
  3345  		for _, e := range m.NumColsPerGen {
  3346  			n += 1 + sovProcessorsSql(uint64(e))
  3347  		}
  3348  	}
  3349  	return n
  3350  }
  3351  
  3352  func (m *WindowerSpec) Size() (n int) {
  3353  	if m == nil {
  3354  		return 0
  3355  	}
  3356  	var l int
  3357  	_ = l
  3358  	if len(m.PartitionBy) > 0 {
  3359  		for _, e := range m.PartitionBy {
  3360  			n += 1 + sovProcessorsSql(uint64(e))
  3361  		}
  3362  	}
  3363  	if len(m.WindowFns) > 0 {
  3364  		for _, e := range m.WindowFns {
  3365  			l = e.Size()
  3366  			n += 1 + l + sovProcessorsSql(uint64(l))
  3367  		}
  3368  	}
  3369  	return n
  3370  }
  3371  
  3372  func (m *WindowerSpec_Func) Size() (n int) {
  3373  	if m == nil {
  3374  		return 0
  3375  	}
  3376  	var l int
  3377  	_ = l
  3378  	if m.AggregateFunc != nil {
  3379  		n += 1 + sovProcessorsSql(uint64(*m.AggregateFunc))
  3380  	}
  3381  	if m.WindowFunc != nil {
  3382  		n += 1 + sovProcessorsSql(uint64(*m.WindowFunc))
  3383  	}
  3384  	return n
  3385  }
  3386  
  3387  func (m *WindowerSpec_Frame) Size() (n int) {
  3388  	if m == nil {
  3389  		return 0
  3390  	}
  3391  	var l int
  3392  	_ = l
  3393  	n += 1 + sovProcessorsSql(uint64(m.Mode))
  3394  	l = m.Bounds.Size()
  3395  	n += 1 + l + sovProcessorsSql(uint64(l))
  3396  	n += 1 + sovProcessorsSql(uint64(m.Exclusion))
  3397  	return n
  3398  }
  3399  
  3400  func (m *WindowerSpec_Frame_Bound) Size() (n int) {
  3401  	if m == nil {
  3402  		return 0
  3403  	}
  3404  	var l int
  3405  	_ = l
  3406  	n += 1 + sovProcessorsSql(uint64(m.BoundType))
  3407  	n += 1 + sovProcessorsSql(uint64(m.IntOffset))
  3408  	if m.TypedOffset != nil {
  3409  		l = len(m.TypedOffset)
  3410  		n += 1 + l + sovProcessorsSql(uint64(l))
  3411  	}
  3412  	l = m.OffsetType.Size()
  3413  	n += 1 + l + sovProcessorsSql(uint64(l))
  3414  	return n
  3415  }
  3416  
  3417  func (m *WindowerSpec_Frame_Bounds) Size() (n int) {
  3418  	if m == nil {
  3419  		return 0
  3420  	}
  3421  	var l int
  3422  	_ = l
  3423  	l = m.Start.Size()
  3424  	n += 1 + l + sovProcessorsSql(uint64(l))
  3425  	if m.End != nil {
  3426  		l = m.End.Size()
  3427  		n += 1 + l + sovProcessorsSql(uint64(l))
  3428  	}
  3429  	return n
  3430  }
  3431  
  3432  func (m *WindowerSpec_WindowFn) Size() (n int) {
  3433  	if m == nil {
  3434  		return 0
  3435  	}
  3436  	var l int
  3437  	_ = l
  3438  	l = m.Func.Size()
  3439  	n += 1 + l + sovProcessorsSql(uint64(l))
  3440  	l = m.Ordering.Size()
  3441  	n += 1 + l + sovProcessorsSql(uint64(l))
  3442  	if m.Frame != nil {
  3443  		l = m.Frame.Size()
  3444  		n += 1 + l + sovProcessorsSql(uint64(l))
  3445  	}
  3446  	n += 1 + sovProcessorsSql(uint64(m.FilterColIdx))
  3447  	if len(m.ArgsIdxs) > 0 {
  3448  		for _, e := range m.ArgsIdxs {
  3449  			n += 1 + sovProcessorsSql(uint64(e))
  3450  		}
  3451  	}
  3452  	n += 1 + sovProcessorsSql(uint64(m.OutputColIdx))
  3453  	return n
  3454  }
  3455  
  3456  func sovProcessorsSql(x uint64) (n int) {
  3457  	for {
  3458  		n++
  3459  		x >>= 7
  3460  		if x == 0 {
  3461  			break
  3462  		}
  3463  	}
  3464  	return n
  3465  }
  3466  func sozProcessorsSql(x uint64) (n int) {
  3467  	return sovProcessorsSql(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  3468  }
  3469  func (this *WindowerSpec_Func) GetValue() interface{} {
  3470  	if this.AggregateFunc != nil {
  3471  		return this.AggregateFunc
  3472  	}
  3473  	if this.WindowFunc != nil {
  3474  		return this.WindowFunc
  3475  	}
  3476  	return nil
  3477  }
  3478  
  3479  func (this *WindowerSpec_Func) SetValue(value interface{}) bool {
  3480  	switch vt := value.(type) {
  3481  	case *AggregatorSpec_Func:
  3482  		this.AggregateFunc = vt
  3483  	case *WindowerSpec_WindowFunc:
  3484  		this.WindowFunc = vt
  3485  	default:
  3486  		return false
  3487  	}
  3488  	return true
  3489  }
  3490  func (m *ValuesCoreSpec) Unmarshal(dAtA []byte) error {
  3491  	l := len(dAtA)
  3492  	iNdEx := 0
  3493  	for iNdEx < l {
  3494  		preIndex := iNdEx
  3495  		var wire uint64
  3496  		for shift := uint(0); ; shift += 7 {
  3497  			if shift >= 64 {
  3498  				return ErrIntOverflowProcessorsSql
  3499  			}
  3500  			if iNdEx >= l {
  3501  				return io.ErrUnexpectedEOF
  3502  			}
  3503  			b := dAtA[iNdEx]
  3504  			iNdEx++
  3505  			wire |= (uint64(b) & 0x7F) << shift
  3506  			if b < 0x80 {
  3507  				break
  3508  			}
  3509  		}
  3510  		fieldNum := int32(wire >> 3)
  3511  		wireType := int(wire & 0x7)
  3512  		if wireType == 4 {
  3513  			return fmt.Errorf("proto: ValuesCoreSpec: wiretype end group for non-group")
  3514  		}
  3515  		if fieldNum <= 0 {
  3516  			return fmt.Errorf("proto: ValuesCoreSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  3517  		}
  3518  		switch fieldNum {
  3519  		case 1:
  3520  			if wireType != 2 {
  3521  				return fmt.Errorf("proto: wrong wireType = %d for field Columns", wireType)
  3522  			}
  3523  			var msglen int
  3524  			for shift := uint(0); ; shift += 7 {
  3525  				if shift >= 64 {
  3526  					return ErrIntOverflowProcessorsSql
  3527  				}
  3528  				if iNdEx >= l {
  3529  					return io.ErrUnexpectedEOF
  3530  				}
  3531  				b := dAtA[iNdEx]
  3532  				iNdEx++
  3533  				msglen |= (int(b) & 0x7F) << shift
  3534  				if b < 0x80 {
  3535  					break
  3536  				}
  3537  			}
  3538  			if msglen < 0 {
  3539  				return ErrInvalidLengthProcessorsSql
  3540  			}
  3541  			postIndex := iNdEx + msglen
  3542  			if postIndex > l {
  3543  				return io.ErrUnexpectedEOF
  3544  			}
  3545  			m.Columns = append(m.Columns, DatumInfo{})
  3546  			if err := m.Columns[len(m.Columns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3547  				return err
  3548  			}
  3549  			iNdEx = postIndex
  3550  		case 2:
  3551  			if wireType != 2 {
  3552  				return fmt.Errorf("proto: wrong wireType = %d for field RawBytes", wireType)
  3553  			}
  3554  			var byteLen int
  3555  			for shift := uint(0); ; shift += 7 {
  3556  				if shift >= 64 {
  3557  					return ErrIntOverflowProcessorsSql
  3558  				}
  3559  				if iNdEx >= l {
  3560  					return io.ErrUnexpectedEOF
  3561  				}
  3562  				b := dAtA[iNdEx]
  3563  				iNdEx++
  3564  				byteLen |= (int(b) & 0x7F) << shift
  3565  				if b < 0x80 {
  3566  					break
  3567  				}
  3568  			}
  3569  			if byteLen < 0 {
  3570  				return ErrInvalidLengthProcessorsSql
  3571  			}
  3572  			postIndex := iNdEx + byteLen
  3573  			if postIndex > l {
  3574  				return io.ErrUnexpectedEOF
  3575  			}
  3576  			m.RawBytes = append(m.RawBytes, make([]byte, postIndex-iNdEx))
  3577  			copy(m.RawBytes[len(m.RawBytes)-1], dAtA[iNdEx:postIndex])
  3578  			iNdEx = postIndex
  3579  		case 3:
  3580  			if wireType != 0 {
  3581  				return fmt.Errorf("proto: wrong wireType = %d for field NumRows", wireType)
  3582  			}
  3583  			m.NumRows = 0
  3584  			for shift := uint(0); ; shift += 7 {
  3585  				if shift >= 64 {
  3586  					return ErrIntOverflowProcessorsSql
  3587  				}
  3588  				if iNdEx >= l {
  3589  					return io.ErrUnexpectedEOF
  3590  				}
  3591  				b := dAtA[iNdEx]
  3592  				iNdEx++
  3593  				m.NumRows |= (uint64(b) & 0x7F) << shift
  3594  				if b < 0x80 {
  3595  					break
  3596  				}
  3597  			}
  3598  		default:
  3599  			iNdEx = preIndex
  3600  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  3601  			if err != nil {
  3602  				return err
  3603  			}
  3604  			if skippy < 0 {
  3605  				return ErrInvalidLengthProcessorsSql
  3606  			}
  3607  			if (iNdEx + skippy) > l {
  3608  				return io.ErrUnexpectedEOF
  3609  			}
  3610  			iNdEx += skippy
  3611  		}
  3612  	}
  3613  
  3614  	if iNdEx > l {
  3615  		return io.ErrUnexpectedEOF
  3616  	}
  3617  	return nil
  3618  }
  3619  func (m *TableReaderSpec) Unmarshal(dAtA []byte) error {
  3620  	l := len(dAtA)
  3621  	iNdEx := 0
  3622  	for iNdEx < l {
  3623  		preIndex := iNdEx
  3624  		var wire uint64
  3625  		for shift := uint(0); ; shift += 7 {
  3626  			if shift >= 64 {
  3627  				return ErrIntOverflowProcessorsSql
  3628  			}
  3629  			if iNdEx >= l {
  3630  				return io.ErrUnexpectedEOF
  3631  			}
  3632  			b := dAtA[iNdEx]
  3633  			iNdEx++
  3634  			wire |= (uint64(b) & 0x7F) << shift
  3635  			if b < 0x80 {
  3636  				break
  3637  			}
  3638  		}
  3639  		fieldNum := int32(wire >> 3)
  3640  		wireType := int(wire & 0x7)
  3641  		if wireType == 4 {
  3642  			return fmt.Errorf("proto: TableReaderSpec: wiretype end group for non-group")
  3643  		}
  3644  		if fieldNum <= 0 {
  3645  			return fmt.Errorf("proto: TableReaderSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  3646  		}
  3647  		switch fieldNum {
  3648  		case 1:
  3649  			if wireType != 2 {
  3650  				return fmt.Errorf("proto: wrong wireType = %d for field Table", wireType)
  3651  			}
  3652  			var msglen int
  3653  			for shift := uint(0); ; shift += 7 {
  3654  				if shift >= 64 {
  3655  					return ErrIntOverflowProcessorsSql
  3656  				}
  3657  				if iNdEx >= l {
  3658  					return io.ErrUnexpectedEOF
  3659  				}
  3660  				b := dAtA[iNdEx]
  3661  				iNdEx++
  3662  				msglen |= (int(b) & 0x7F) << shift
  3663  				if b < 0x80 {
  3664  					break
  3665  				}
  3666  			}
  3667  			if msglen < 0 {
  3668  				return ErrInvalidLengthProcessorsSql
  3669  			}
  3670  			postIndex := iNdEx + msglen
  3671  			if postIndex > l {
  3672  				return io.ErrUnexpectedEOF
  3673  			}
  3674  			if err := m.Table.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3675  				return err
  3676  			}
  3677  			iNdEx = postIndex
  3678  		case 2:
  3679  			if wireType != 0 {
  3680  				return fmt.Errorf("proto: wrong wireType = %d for field IndexIdx", wireType)
  3681  			}
  3682  			m.IndexIdx = 0
  3683  			for shift := uint(0); ; shift += 7 {
  3684  				if shift >= 64 {
  3685  					return ErrIntOverflowProcessorsSql
  3686  				}
  3687  				if iNdEx >= l {
  3688  					return io.ErrUnexpectedEOF
  3689  				}
  3690  				b := dAtA[iNdEx]
  3691  				iNdEx++
  3692  				m.IndexIdx |= (uint32(b) & 0x7F) << shift
  3693  				if b < 0x80 {
  3694  					break
  3695  				}
  3696  			}
  3697  		case 3:
  3698  			if wireType != 0 {
  3699  				return fmt.Errorf("proto: wrong wireType = %d for field Reverse", wireType)
  3700  			}
  3701  			var v int
  3702  			for shift := uint(0); ; shift += 7 {
  3703  				if shift >= 64 {
  3704  					return ErrIntOverflowProcessorsSql
  3705  				}
  3706  				if iNdEx >= l {
  3707  					return io.ErrUnexpectedEOF
  3708  				}
  3709  				b := dAtA[iNdEx]
  3710  				iNdEx++
  3711  				v |= (int(b) & 0x7F) << shift
  3712  				if b < 0x80 {
  3713  					break
  3714  				}
  3715  			}
  3716  			m.Reverse = bool(v != 0)
  3717  		case 4:
  3718  			if wireType != 2 {
  3719  				return fmt.Errorf("proto: wrong wireType = %d for field Spans", wireType)
  3720  			}
  3721  			var msglen int
  3722  			for shift := uint(0); ; shift += 7 {
  3723  				if shift >= 64 {
  3724  					return ErrIntOverflowProcessorsSql
  3725  				}
  3726  				if iNdEx >= l {
  3727  					return io.ErrUnexpectedEOF
  3728  				}
  3729  				b := dAtA[iNdEx]
  3730  				iNdEx++
  3731  				msglen |= (int(b) & 0x7F) << shift
  3732  				if b < 0x80 {
  3733  					break
  3734  				}
  3735  			}
  3736  			if msglen < 0 {
  3737  				return ErrInvalidLengthProcessorsSql
  3738  			}
  3739  			postIndex := iNdEx + msglen
  3740  			if postIndex > l {
  3741  				return io.ErrUnexpectedEOF
  3742  			}
  3743  			m.Spans = append(m.Spans, TableReaderSpan{})
  3744  			if err := m.Spans[len(m.Spans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3745  				return err
  3746  			}
  3747  			iNdEx = postIndex
  3748  		case 5:
  3749  			if wireType != 0 {
  3750  				return fmt.Errorf("proto: wrong wireType = %d for field LimitHint", wireType)
  3751  			}
  3752  			m.LimitHint = 0
  3753  			for shift := uint(0); ; shift += 7 {
  3754  				if shift >= 64 {
  3755  					return ErrIntOverflowProcessorsSql
  3756  				}
  3757  				if iNdEx >= l {
  3758  					return io.ErrUnexpectedEOF
  3759  				}
  3760  				b := dAtA[iNdEx]
  3761  				iNdEx++
  3762  				m.LimitHint |= (int64(b) & 0x7F) << shift
  3763  				if b < 0x80 {
  3764  					break
  3765  				}
  3766  			}
  3767  		case 6:
  3768  			if wireType != 0 {
  3769  				return fmt.Errorf("proto: wrong wireType = %d for field IsCheck", wireType)
  3770  			}
  3771  			var v int
  3772  			for shift := uint(0); ; shift += 7 {
  3773  				if shift >= 64 {
  3774  					return ErrIntOverflowProcessorsSql
  3775  				}
  3776  				if iNdEx >= l {
  3777  					return io.ErrUnexpectedEOF
  3778  				}
  3779  				b := dAtA[iNdEx]
  3780  				iNdEx++
  3781  				v |= (int(b) & 0x7F) << shift
  3782  				if b < 0x80 {
  3783  					break
  3784  				}
  3785  			}
  3786  			m.IsCheck = bool(v != 0)
  3787  		case 7:
  3788  			if wireType != 0 {
  3789  				return fmt.Errorf("proto: wrong wireType = %d for field Visibility", wireType)
  3790  			}
  3791  			m.Visibility = 0
  3792  			for shift := uint(0); ; shift += 7 {
  3793  				if shift >= 64 {
  3794  					return ErrIntOverflowProcessorsSql
  3795  				}
  3796  				if iNdEx >= l {
  3797  					return io.ErrUnexpectedEOF
  3798  				}
  3799  				b := dAtA[iNdEx]
  3800  				iNdEx++
  3801  				m.Visibility |= (ScanVisibility(b) & 0x7F) << shift
  3802  				if b < 0x80 {
  3803  					break
  3804  				}
  3805  			}
  3806  		case 8:
  3807  			if wireType != 0 {
  3808  				return fmt.Errorf("proto: wrong wireType = %d for field MaxResults", wireType)
  3809  			}
  3810  			m.MaxResults = 0
  3811  			for shift := uint(0); ; shift += 7 {
  3812  				if shift >= 64 {
  3813  					return ErrIntOverflowProcessorsSql
  3814  				}
  3815  				if iNdEx >= l {
  3816  					return io.ErrUnexpectedEOF
  3817  				}
  3818  				b := dAtA[iNdEx]
  3819  				iNdEx++
  3820  				m.MaxResults |= (uint64(b) & 0x7F) << shift
  3821  				if b < 0x80 {
  3822  					break
  3823  				}
  3824  			}
  3825  		case 9:
  3826  			if wireType != 0 {
  3827  				return fmt.Errorf("proto: wrong wireType = %d for field MaxTimestampAgeNanos", wireType)
  3828  			}
  3829  			m.MaxTimestampAgeNanos = 0
  3830  			for shift := uint(0); ; shift += 7 {
  3831  				if shift >= 64 {
  3832  					return ErrIntOverflowProcessorsSql
  3833  				}
  3834  				if iNdEx >= l {
  3835  					return io.ErrUnexpectedEOF
  3836  				}
  3837  				b := dAtA[iNdEx]
  3838  				iNdEx++
  3839  				m.MaxTimestampAgeNanos |= (uint64(b) & 0x7F) << shift
  3840  				if b < 0x80 {
  3841  					break
  3842  				}
  3843  			}
  3844  		case 10:
  3845  			if wireType != 0 {
  3846  				return fmt.Errorf("proto: wrong wireType = %d for field LockingStrength", wireType)
  3847  			}
  3848  			m.LockingStrength = 0
  3849  			for shift := uint(0); ; shift += 7 {
  3850  				if shift >= 64 {
  3851  					return ErrIntOverflowProcessorsSql
  3852  				}
  3853  				if iNdEx >= l {
  3854  					return io.ErrUnexpectedEOF
  3855  				}
  3856  				b := dAtA[iNdEx]
  3857  				iNdEx++
  3858  				m.LockingStrength |= (sqlbase.ScanLockingStrength(b) & 0x7F) << shift
  3859  				if b < 0x80 {
  3860  					break
  3861  				}
  3862  			}
  3863  		case 11:
  3864  			if wireType != 0 {
  3865  				return fmt.Errorf("proto: wrong wireType = %d for field LockingWaitPolicy", wireType)
  3866  			}
  3867  			m.LockingWaitPolicy = 0
  3868  			for shift := uint(0); ; shift += 7 {
  3869  				if shift >= 64 {
  3870  					return ErrIntOverflowProcessorsSql
  3871  				}
  3872  				if iNdEx >= l {
  3873  					return io.ErrUnexpectedEOF
  3874  				}
  3875  				b := dAtA[iNdEx]
  3876  				iNdEx++
  3877  				m.LockingWaitPolicy |= (sqlbase.ScanLockingWaitPolicy(b) & 0x7F) << shift
  3878  				if b < 0x80 {
  3879  					break
  3880  				}
  3881  			}
  3882  		default:
  3883  			iNdEx = preIndex
  3884  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  3885  			if err != nil {
  3886  				return err
  3887  			}
  3888  			if skippy < 0 {
  3889  				return ErrInvalidLengthProcessorsSql
  3890  			}
  3891  			if (iNdEx + skippy) > l {
  3892  				return io.ErrUnexpectedEOF
  3893  			}
  3894  			iNdEx += skippy
  3895  		}
  3896  	}
  3897  
  3898  	if iNdEx > l {
  3899  		return io.ErrUnexpectedEOF
  3900  	}
  3901  	return nil
  3902  }
  3903  func (m *IndexSkipTableReaderSpec) Unmarshal(dAtA []byte) error {
  3904  	l := len(dAtA)
  3905  	iNdEx := 0
  3906  	for iNdEx < l {
  3907  		preIndex := iNdEx
  3908  		var wire uint64
  3909  		for shift := uint(0); ; shift += 7 {
  3910  			if shift >= 64 {
  3911  				return ErrIntOverflowProcessorsSql
  3912  			}
  3913  			if iNdEx >= l {
  3914  				return io.ErrUnexpectedEOF
  3915  			}
  3916  			b := dAtA[iNdEx]
  3917  			iNdEx++
  3918  			wire |= (uint64(b) & 0x7F) << shift
  3919  			if b < 0x80 {
  3920  				break
  3921  			}
  3922  		}
  3923  		fieldNum := int32(wire >> 3)
  3924  		wireType := int(wire & 0x7)
  3925  		if wireType == 4 {
  3926  			return fmt.Errorf("proto: IndexSkipTableReaderSpec: wiretype end group for non-group")
  3927  		}
  3928  		if fieldNum <= 0 {
  3929  			return fmt.Errorf("proto: IndexSkipTableReaderSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  3930  		}
  3931  		switch fieldNum {
  3932  		case 1:
  3933  			if wireType != 2 {
  3934  				return fmt.Errorf("proto: wrong wireType = %d for field Table", wireType)
  3935  			}
  3936  			var msglen int
  3937  			for shift := uint(0); ; shift += 7 {
  3938  				if shift >= 64 {
  3939  					return ErrIntOverflowProcessorsSql
  3940  				}
  3941  				if iNdEx >= l {
  3942  					return io.ErrUnexpectedEOF
  3943  				}
  3944  				b := dAtA[iNdEx]
  3945  				iNdEx++
  3946  				msglen |= (int(b) & 0x7F) << shift
  3947  				if b < 0x80 {
  3948  					break
  3949  				}
  3950  			}
  3951  			if msglen < 0 {
  3952  				return ErrInvalidLengthProcessorsSql
  3953  			}
  3954  			postIndex := iNdEx + msglen
  3955  			if postIndex > l {
  3956  				return io.ErrUnexpectedEOF
  3957  			}
  3958  			if err := m.Table.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  3959  				return err
  3960  			}
  3961  			iNdEx = postIndex
  3962  		case 2:
  3963  			if wireType != 0 {
  3964  				return fmt.Errorf("proto: wrong wireType = %d for field IndexIdx", wireType)
  3965  			}
  3966  			m.IndexIdx = 0
  3967  			for shift := uint(0); ; shift += 7 {
  3968  				if shift >= 64 {
  3969  					return ErrIntOverflowProcessorsSql
  3970  				}
  3971  				if iNdEx >= l {
  3972  					return io.ErrUnexpectedEOF
  3973  				}
  3974  				b := dAtA[iNdEx]
  3975  				iNdEx++
  3976  				m.IndexIdx |= (uint32(b) & 0x7F) << shift
  3977  				if b < 0x80 {
  3978  					break
  3979  				}
  3980  			}
  3981  		case 3:
  3982  			if wireType != 2 {
  3983  				return fmt.Errorf("proto: wrong wireType = %d for field Spans", wireType)
  3984  			}
  3985  			var msglen int
  3986  			for shift := uint(0); ; shift += 7 {
  3987  				if shift >= 64 {
  3988  					return ErrIntOverflowProcessorsSql
  3989  				}
  3990  				if iNdEx >= l {
  3991  					return io.ErrUnexpectedEOF
  3992  				}
  3993  				b := dAtA[iNdEx]
  3994  				iNdEx++
  3995  				msglen |= (int(b) & 0x7F) << shift
  3996  				if b < 0x80 {
  3997  					break
  3998  				}
  3999  			}
  4000  			if msglen < 0 {
  4001  				return ErrInvalidLengthProcessorsSql
  4002  			}
  4003  			postIndex := iNdEx + msglen
  4004  			if postIndex > l {
  4005  				return io.ErrUnexpectedEOF
  4006  			}
  4007  			m.Spans = append(m.Spans, TableReaderSpan{})
  4008  			if err := m.Spans[len(m.Spans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4009  				return err
  4010  			}
  4011  			iNdEx = postIndex
  4012  		case 4:
  4013  			if wireType != 0 {
  4014  				return fmt.Errorf("proto: wrong wireType = %d for field Visibility", wireType)
  4015  			}
  4016  			m.Visibility = 0
  4017  			for shift := uint(0); ; shift += 7 {
  4018  				if shift >= 64 {
  4019  					return ErrIntOverflowProcessorsSql
  4020  				}
  4021  				if iNdEx >= l {
  4022  					return io.ErrUnexpectedEOF
  4023  				}
  4024  				b := dAtA[iNdEx]
  4025  				iNdEx++
  4026  				m.Visibility |= (ScanVisibility(b) & 0x7F) << shift
  4027  				if b < 0x80 {
  4028  					break
  4029  				}
  4030  			}
  4031  		case 5:
  4032  			if wireType != 0 {
  4033  				return fmt.Errorf("proto: wrong wireType = %d for field Reverse", wireType)
  4034  			}
  4035  			var v int
  4036  			for shift := uint(0); ; shift += 7 {
  4037  				if shift >= 64 {
  4038  					return ErrIntOverflowProcessorsSql
  4039  				}
  4040  				if iNdEx >= l {
  4041  					return io.ErrUnexpectedEOF
  4042  				}
  4043  				b := dAtA[iNdEx]
  4044  				iNdEx++
  4045  				v |= (int(b) & 0x7F) << shift
  4046  				if b < 0x80 {
  4047  					break
  4048  				}
  4049  			}
  4050  			m.Reverse = bool(v != 0)
  4051  		case 6:
  4052  			if wireType != 0 {
  4053  				return fmt.Errorf("proto: wrong wireType = %d for field LockingStrength", wireType)
  4054  			}
  4055  			m.LockingStrength = 0
  4056  			for shift := uint(0); ; shift += 7 {
  4057  				if shift >= 64 {
  4058  					return ErrIntOverflowProcessorsSql
  4059  				}
  4060  				if iNdEx >= l {
  4061  					return io.ErrUnexpectedEOF
  4062  				}
  4063  				b := dAtA[iNdEx]
  4064  				iNdEx++
  4065  				m.LockingStrength |= (sqlbase.ScanLockingStrength(b) & 0x7F) << shift
  4066  				if b < 0x80 {
  4067  					break
  4068  				}
  4069  			}
  4070  		case 7:
  4071  			if wireType != 0 {
  4072  				return fmt.Errorf("proto: wrong wireType = %d for field LockingWaitPolicy", wireType)
  4073  			}
  4074  			m.LockingWaitPolicy = 0
  4075  			for shift := uint(0); ; shift += 7 {
  4076  				if shift >= 64 {
  4077  					return ErrIntOverflowProcessorsSql
  4078  				}
  4079  				if iNdEx >= l {
  4080  					return io.ErrUnexpectedEOF
  4081  				}
  4082  				b := dAtA[iNdEx]
  4083  				iNdEx++
  4084  				m.LockingWaitPolicy |= (sqlbase.ScanLockingWaitPolicy(b) & 0x7F) << shift
  4085  				if b < 0x80 {
  4086  					break
  4087  				}
  4088  			}
  4089  		default:
  4090  			iNdEx = preIndex
  4091  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  4092  			if err != nil {
  4093  				return err
  4094  			}
  4095  			if skippy < 0 {
  4096  				return ErrInvalidLengthProcessorsSql
  4097  			}
  4098  			if (iNdEx + skippy) > l {
  4099  				return io.ErrUnexpectedEOF
  4100  			}
  4101  			iNdEx += skippy
  4102  		}
  4103  	}
  4104  
  4105  	if iNdEx > l {
  4106  		return io.ErrUnexpectedEOF
  4107  	}
  4108  	return nil
  4109  }
  4110  func (m *JoinReaderSpec) Unmarshal(dAtA []byte) error {
  4111  	l := len(dAtA)
  4112  	iNdEx := 0
  4113  	for iNdEx < l {
  4114  		preIndex := iNdEx
  4115  		var wire uint64
  4116  		for shift := uint(0); ; shift += 7 {
  4117  			if shift >= 64 {
  4118  				return ErrIntOverflowProcessorsSql
  4119  			}
  4120  			if iNdEx >= l {
  4121  				return io.ErrUnexpectedEOF
  4122  			}
  4123  			b := dAtA[iNdEx]
  4124  			iNdEx++
  4125  			wire |= (uint64(b) & 0x7F) << shift
  4126  			if b < 0x80 {
  4127  				break
  4128  			}
  4129  		}
  4130  		fieldNum := int32(wire >> 3)
  4131  		wireType := int(wire & 0x7)
  4132  		if wireType == 4 {
  4133  			return fmt.Errorf("proto: JoinReaderSpec: wiretype end group for non-group")
  4134  		}
  4135  		if fieldNum <= 0 {
  4136  			return fmt.Errorf("proto: JoinReaderSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  4137  		}
  4138  		switch fieldNum {
  4139  		case 1:
  4140  			if wireType != 2 {
  4141  				return fmt.Errorf("proto: wrong wireType = %d for field Table", wireType)
  4142  			}
  4143  			var msglen int
  4144  			for shift := uint(0); ; shift += 7 {
  4145  				if shift >= 64 {
  4146  					return ErrIntOverflowProcessorsSql
  4147  				}
  4148  				if iNdEx >= l {
  4149  					return io.ErrUnexpectedEOF
  4150  				}
  4151  				b := dAtA[iNdEx]
  4152  				iNdEx++
  4153  				msglen |= (int(b) & 0x7F) << shift
  4154  				if b < 0x80 {
  4155  					break
  4156  				}
  4157  			}
  4158  			if msglen < 0 {
  4159  				return ErrInvalidLengthProcessorsSql
  4160  			}
  4161  			postIndex := iNdEx + msglen
  4162  			if postIndex > l {
  4163  				return io.ErrUnexpectedEOF
  4164  			}
  4165  			if err := m.Table.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4166  				return err
  4167  			}
  4168  			iNdEx = postIndex
  4169  		case 2:
  4170  			if wireType != 0 {
  4171  				return fmt.Errorf("proto: wrong wireType = %d for field IndexIdx", wireType)
  4172  			}
  4173  			m.IndexIdx = 0
  4174  			for shift := uint(0); ; shift += 7 {
  4175  				if shift >= 64 {
  4176  					return ErrIntOverflowProcessorsSql
  4177  				}
  4178  				if iNdEx >= l {
  4179  					return io.ErrUnexpectedEOF
  4180  				}
  4181  				b := dAtA[iNdEx]
  4182  				iNdEx++
  4183  				m.IndexIdx |= (uint32(b) & 0x7F) << shift
  4184  				if b < 0x80 {
  4185  					break
  4186  				}
  4187  			}
  4188  		case 3:
  4189  			if wireType == 0 {
  4190  				var v uint32
  4191  				for shift := uint(0); ; shift += 7 {
  4192  					if shift >= 64 {
  4193  						return ErrIntOverflowProcessorsSql
  4194  					}
  4195  					if iNdEx >= l {
  4196  						return io.ErrUnexpectedEOF
  4197  					}
  4198  					b := dAtA[iNdEx]
  4199  					iNdEx++
  4200  					v |= (uint32(b) & 0x7F) << shift
  4201  					if b < 0x80 {
  4202  						break
  4203  					}
  4204  				}
  4205  				m.LookupColumns = append(m.LookupColumns, v)
  4206  			} else if wireType == 2 {
  4207  				var packedLen int
  4208  				for shift := uint(0); ; shift += 7 {
  4209  					if shift >= 64 {
  4210  						return ErrIntOverflowProcessorsSql
  4211  					}
  4212  					if iNdEx >= l {
  4213  						return io.ErrUnexpectedEOF
  4214  					}
  4215  					b := dAtA[iNdEx]
  4216  					iNdEx++
  4217  					packedLen |= (int(b) & 0x7F) << shift
  4218  					if b < 0x80 {
  4219  						break
  4220  					}
  4221  				}
  4222  				if packedLen < 0 {
  4223  					return ErrInvalidLengthProcessorsSql
  4224  				}
  4225  				postIndex := iNdEx + packedLen
  4226  				if postIndex > l {
  4227  					return io.ErrUnexpectedEOF
  4228  				}
  4229  				var elementCount int
  4230  				var count int
  4231  				for _, integer := range dAtA {
  4232  					if integer < 128 {
  4233  						count++
  4234  					}
  4235  				}
  4236  				elementCount = count
  4237  				if elementCount != 0 && len(m.LookupColumns) == 0 {
  4238  					m.LookupColumns = make([]uint32, 0, elementCount)
  4239  				}
  4240  				for iNdEx < postIndex {
  4241  					var v uint32
  4242  					for shift := uint(0); ; shift += 7 {
  4243  						if shift >= 64 {
  4244  							return ErrIntOverflowProcessorsSql
  4245  						}
  4246  						if iNdEx >= l {
  4247  							return io.ErrUnexpectedEOF
  4248  						}
  4249  						b := dAtA[iNdEx]
  4250  						iNdEx++
  4251  						v |= (uint32(b) & 0x7F) << shift
  4252  						if b < 0x80 {
  4253  							break
  4254  						}
  4255  					}
  4256  					m.LookupColumns = append(m.LookupColumns, v)
  4257  				}
  4258  			} else {
  4259  				return fmt.Errorf("proto: wrong wireType = %d for field LookupColumns", wireType)
  4260  			}
  4261  		case 4:
  4262  			if wireType != 2 {
  4263  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  4264  			}
  4265  			var msglen int
  4266  			for shift := uint(0); ; shift += 7 {
  4267  				if shift >= 64 {
  4268  					return ErrIntOverflowProcessorsSql
  4269  				}
  4270  				if iNdEx >= l {
  4271  					return io.ErrUnexpectedEOF
  4272  				}
  4273  				b := dAtA[iNdEx]
  4274  				iNdEx++
  4275  				msglen |= (int(b) & 0x7F) << shift
  4276  				if b < 0x80 {
  4277  					break
  4278  				}
  4279  			}
  4280  			if msglen < 0 {
  4281  				return ErrInvalidLengthProcessorsSql
  4282  			}
  4283  			postIndex := iNdEx + msglen
  4284  			if postIndex > l {
  4285  				return io.ErrUnexpectedEOF
  4286  			}
  4287  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4288  				return err
  4289  			}
  4290  			iNdEx = postIndex
  4291  		case 6:
  4292  			if wireType != 0 {
  4293  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  4294  			}
  4295  			m.Type = 0
  4296  			for shift := uint(0); ; shift += 7 {
  4297  				if shift >= 64 {
  4298  					return ErrIntOverflowProcessorsSql
  4299  				}
  4300  				if iNdEx >= l {
  4301  					return io.ErrUnexpectedEOF
  4302  				}
  4303  				b := dAtA[iNdEx]
  4304  				iNdEx++
  4305  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  4306  				if b < 0x80 {
  4307  					break
  4308  				}
  4309  			}
  4310  		case 7:
  4311  			if wireType != 0 {
  4312  				return fmt.Errorf("proto: wrong wireType = %d for field Visibility", wireType)
  4313  			}
  4314  			m.Visibility = 0
  4315  			for shift := uint(0); ; shift += 7 {
  4316  				if shift >= 64 {
  4317  					return ErrIntOverflowProcessorsSql
  4318  				}
  4319  				if iNdEx >= l {
  4320  					return io.ErrUnexpectedEOF
  4321  				}
  4322  				b := dAtA[iNdEx]
  4323  				iNdEx++
  4324  				m.Visibility |= (ScanVisibility(b) & 0x7F) << shift
  4325  				if b < 0x80 {
  4326  					break
  4327  				}
  4328  			}
  4329  		case 8:
  4330  			if wireType != 0 {
  4331  				return fmt.Errorf("proto: wrong wireType = %d for field LookupColumnsAreKey", wireType)
  4332  			}
  4333  			var v int
  4334  			for shift := uint(0); ; shift += 7 {
  4335  				if shift >= 64 {
  4336  					return ErrIntOverflowProcessorsSql
  4337  				}
  4338  				if iNdEx >= l {
  4339  					return io.ErrUnexpectedEOF
  4340  				}
  4341  				b := dAtA[iNdEx]
  4342  				iNdEx++
  4343  				v |= (int(b) & 0x7F) << shift
  4344  				if b < 0x80 {
  4345  					break
  4346  				}
  4347  			}
  4348  			m.LookupColumnsAreKey = bool(v != 0)
  4349  		case 9:
  4350  			if wireType != 0 {
  4351  				return fmt.Errorf("proto: wrong wireType = %d for field LockingStrength", wireType)
  4352  			}
  4353  			m.LockingStrength = 0
  4354  			for shift := uint(0); ; shift += 7 {
  4355  				if shift >= 64 {
  4356  					return ErrIntOverflowProcessorsSql
  4357  				}
  4358  				if iNdEx >= l {
  4359  					return io.ErrUnexpectedEOF
  4360  				}
  4361  				b := dAtA[iNdEx]
  4362  				iNdEx++
  4363  				m.LockingStrength |= (sqlbase.ScanLockingStrength(b) & 0x7F) << shift
  4364  				if b < 0x80 {
  4365  					break
  4366  				}
  4367  			}
  4368  		case 10:
  4369  			if wireType != 0 {
  4370  				return fmt.Errorf("proto: wrong wireType = %d for field LockingWaitPolicy", wireType)
  4371  			}
  4372  			m.LockingWaitPolicy = 0
  4373  			for shift := uint(0); ; shift += 7 {
  4374  				if shift >= 64 {
  4375  					return ErrIntOverflowProcessorsSql
  4376  				}
  4377  				if iNdEx >= l {
  4378  					return io.ErrUnexpectedEOF
  4379  				}
  4380  				b := dAtA[iNdEx]
  4381  				iNdEx++
  4382  				m.LockingWaitPolicy |= (sqlbase.ScanLockingWaitPolicy(b) & 0x7F) << shift
  4383  				if b < 0x80 {
  4384  					break
  4385  				}
  4386  			}
  4387  		case 11:
  4388  			if wireType != 0 {
  4389  				return fmt.Errorf("proto: wrong wireType = %d for field MaintainOrdering", wireType)
  4390  			}
  4391  			var v int
  4392  			for shift := uint(0); ; shift += 7 {
  4393  				if shift >= 64 {
  4394  					return ErrIntOverflowProcessorsSql
  4395  				}
  4396  				if iNdEx >= l {
  4397  					return io.ErrUnexpectedEOF
  4398  				}
  4399  				b := dAtA[iNdEx]
  4400  				iNdEx++
  4401  				v |= (int(b) & 0x7F) << shift
  4402  				if b < 0x80 {
  4403  					break
  4404  				}
  4405  			}
  4406  			m.MaintainOrdering = bool(v != 0)
  4407  		default:
  4408  			iNdEx = preIndex
  4409  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  4410  			if err != nil {
  4411  				return err
  4412  			}
  4413  			if skippy < 0 {
  4414  				return ErrInvalidLengthProcessorsSql
  4415  			}
  4416  			if (iNdEx + skippy) > l {
  4417  				return io.ErrUnexpectedEOF
  4418  			}
  4419  			iNdEx += skippy
  4420  		}
  4421  	}
  4422  
  4423  	if iNdEx > l {
  4424  		return io.ErrUnexpectedEOF
  4425  	}
  4426  	return nil
  4427  }
  4428  func (m *SorterSpec) Unmarshal(dAtA []byte) error {
  4429  	l := len(dAtA)
  4430  	iNdEx := 0
  4431  	for iNdEx < l {
  4432  		preIndex := iNdEx
  4433  		var wire uint64
  4434  		for shift := uint(0); ; shift += 7 {
  4435  			if shift >= 64 {
  4436  				return ErrIntOverflowProcessorsSql
  4437  			}
  4438  			if iNdEx >= l {
  4439  				return io.ErrUnexpectedEOF
  4440  			}
  4441  			b := dAtA[iNdEx]
  4442  			iNdEx++
  4443  			wire |= (uint64(b) & 0x7F) << shift
  4444  			if b < 0x80 {
  4445  				break
  4446  			}
  4447  		}
  4448  		fieldNum := int32(wire >> 3)
  4449  		wireType := int(wire & 0x7)
  4450  		if wireType == 4 {
  4451  			return fmt.Errorf("proto: SorterSpec: wiretype end group for non-group")
  4452  		}
  4453  		if fieldNum <= 0 {
  4454  			return fmt.Errorf("proto: SorterSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  4455  		}
  4456  		switch fieldNum {
  4457  		case 1:
  4458  			if wireType != 2 {
  4459  				return fmt.Errorf("proto: wrong wireType = %d for field OutputOrdering", wireType)
  4460  			}
  4461  			var msglen int
  4462  			for shift := uint(0); ; shift += 7 {
  4463  				if shift >= 64 {
  4464  					return ErrIntOverflowProcessorsSql
  4465  				}
  4466  				if iNdEx >= l {
  4467  					return io.ErrUnexpectedEOF
  4468  				}
  4469  				b := dAtA[iNdEx]
  4470  				iNdEx++
  4471  				msglen |= (int(b) & 0x7F) << shift
  4472  				if b < 0x80 {
  4473  					break
  4474  				}
  4475  			}
  4476  			if msglen < 0 {
  4477  				return ErrInvalidLengthProcessorsSql
  4478  			}
  4479  			postIndex := iNdEx + msglen
  4480  			if postIndex > l {
  4481  				return io.ErrUnexpectedEOF
  4482  			}
  4483  			if err := m.OutputOrdering.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4484  				return err
  4485  			}
  4486  			iNdEx = postIndex
  4487  		case 2:
  4488  			if wireType != 0 {
  4489  				return fmt.Errorf("proto: wrong wireType = %d for field OrderingMatchLen", wireType)
  4490  			}
  4491  			m.OrderingMatchLen = 0
  4492  			for shift := uint(0); ; shift += 7 {
  4493  				if shift >= 64 {
  4494  					return ErrIntOverflowProcessorsSql
  4495  				}
  4496  				if iNdEx >= l {
  4497  					return io.ErrUnexpectedEOF
  4498  				}
  4499  				b := dAtA[iNdEx]
  4500  				iNdEx++
  4501  				m.OrderingMatchLen |= (uint32(b) & 0x7F) << shift
  4502  				if b < 0x80 {
  4503  					break
  4504  				}
  4505  			}
  4506  		default:
  4507  			iNdEx = preIndex
  4508  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  4509  			if err != nil {
  4510  				return err
  4511  			}
  4512  			if skippy < 0 {
  4513  				return ErrInvalidLengthProcessorsSql
  4514  			}
  4515  			if (iNdEx + skippy) > l {
  4516  				return io.ErrUnexpectedEOF
  4517  			}
  4518  			iNdEx += skippy
  4519  		}
  4520  	}
  4521  
  4522  	if iNdEx > l {
  4523  		return io.ErrUnexpectedEOF
  4524  	}
  4525  	return nil
  4526  }
  4527  func (m *DistinctSpec) Unmarshal(dAtA []byte) error {
  4528  	l := len(dAtA)
  4529  	iNdEx := 0
  4530  	for iNdEx < l {
  4531  		preIndex := iNdEx
  4532  		var wire uint64
  4533  		for shift := uint(0); ; shift += 7 {
  4534  			if shift >= 64 {
  4535  				return ErrIntOverflowProcessorsSql
  4536  			}
  4537  			if iNdEx >= l {
  4538  				return io.ErrUnexpectedEOF
  4539  			}
  4540  			b := dAtA[iNdEx]
  4541  			iNdEx++
  4542  			wire |= (uint64(b) & 0x7F) << shift
  4543  			if b < 0x80 {
  4544  				break
  4545  			}
  4546  		}
  4547  		fieldNum := int32(wire >> 3)
  4548  		wireType := int(wire & 0x7)
  4549  		if wireType == 4 {
  4550  			return fmt.Errorf("proto: DistinctSpec: wiretype end group for non-group")
  4551  		}
  4552  		if fieldNum <= 0 {
  4553  			return fmt.Errorf("proto: DistinctSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  4554  		}
  4555  		switch fieldNum {
  4556  		case 1:
  4557  			if wireType == 0 {
  4558  				var v uint32
  4559  				for shift := uint(0); ; shift += 7 {
  4560  					if shift >= 64 {
  4561  						return ErrIntOverflowProcessorsSql
  4562  					}
  4563  					if iNdEx >= l {
  4564  						return io.ErrUnexpectedEOF
  4565  					}
  4566  					b := dAtA[iNdEx]
  4567  					iNdEx++
  4568  					v |= (uint32(b) & 0x7F) << shift
  4569  					if b < 0x80 {
  4570  						break
  4571  					}
  4572  				}
  4573  				m.OrderedColumns = append(m.OrderedColumns, v)
  4574  			} else if wireType == 2 {
  4575  				var packedLen int
  4576  				for shift := uint(0); ; shift += 7 {
  4577  					if shift >= 64 {
  4578  						return ErrIntOverflowProcessorsSql
  4579  					}
  4580  					if iNdEx >= l {
  4581  						return io.ErrUnexpectedEOF
  4582  					}
  4583  					b := dAtA[iNdEx]
  4584  					iNdEx++
  4585  					packedLen |= (int(b) & 0x7F) << shift
  4586  					if b < 0x80 {
  4587  						break
  4588  					}
  4589  				}
  4590  				if packedLen < 0 {
  4591  					return ErrInvalidLengthProcessorsSql
  4592  				}
  4593  				postIndex := iNdEx + packedLen
  4594  				if postIndex > l {
  4595  					return io.ErrUnexpectedEOF
  4596  				}
  4597  				var elementCount int
  4598  				var count int
  4599  				for _, integer := range dAtA {
  4600  					if integer < 128 {
  4601  						count++
  4602  					}
  4603  				}
  4604  				elementCount = count
  4605  				if elementCount != 0 && len(m.OrderedColumns) == 0 {
  4606  					m.OrderedColumns = make([]uint32, 0, elementCount)
  4607  				}
  4608  				for iNdEx < postIndex {
  4609  					var v uint32
  4610  					for shift := uint(0); ; shift += 7 {
  4611  						if shift >= 64 {
  4612  							return ErrIntOverflowProcessorsSql
  4613  						}
  4614  						if iNdEx >= l {
  4615  							return io.ErrUnexpectedEOF
  4616  						}
  4617  						b := dAtA[iNdEx]
  4618  						iNdEx++
  4619  						v |= (uint32(b) & 0x7F) << shift
  4620  						if b < 0x80 {
  4621  							break
  4622  						}
  4623  					}
  4624  					m.OrderedColumns = append(m.OrderedColumns, v)
  4625  				}
  4626  			} else {
  4627  				return fmt.Errorf("proto: wrong wireType = %d for field OrderedColumns", wireType)
  4628  			}
  4629  		case 2:
  4630  			if wireType == 0 {
  4631  				var v uint32
  4632  				for shift := uint(0); ; shift += 7 {
  4633  					if shift >= 64 {
  4634  						return ErrIntOverflowProcessorsSql
  4635  					}
  4636  					if iNdEx >= l {
  4637  						return io.ErrUnexpectedEOF
  4638  					}
  4639  					b := dAtA[iNdEx]
  4640  					iNdEx++
  4641  					v |= (uint32(b) & 0x7F) << shift
  4642  					if b < 0x80 {
  4643  						break
  4644  					}
  4645  				}
  4646  				m.DistinctColumns = append(m.DistinctColumns, v)
  4647  			} else if wireType == 2 {
  4648  				var packedLen int
  4649  				for shift := uint(0); ; shift += 7 {
  4650  					if shift >= 64 {
  4651  						return ErrIntOverflowProcessorsSql
  4652  					}
  4653  					if iNdEx >= l {
  4654  						return io.ErrUnexpectedEOF
  4655  					}
  4656  					b := dAtA[iNdEx]
  4657  					iNdEx++
  4658  					packedLen |= (int(b) & 0x7F) << shift
  4659  					if b < 0x80 {
  4660  						break
  4661  					}
  4662  				}
  4663  				if packedLen < 0 {
  4664  					return ErrInvalidLengthProcessorsSql
  4665  				}
  4666  				postIndex := iNdEx + packedLen
  4667  				if postIndex > l {
  4668  					return io.ErrUnexpectedEOF
  4669  				}
  4670  				var elementCount int
  4671  				var count int
  4672  				for _, integer := range dAtA {
  4673  					if integer < 128 {
  4674  						count++
  4675  					}
  4676  				}
  4677  				elementCount = count
  4678  				if elementCount != 0 && len(m.DistinctColumns) == 0 {
  4679  					m.DistinctColumns = make([]uint32, 0, elementCount)
  4680  				}
  4681  				for iNdEx < postIndex {
  4682  					var v uint32
  4683  					for shift := uint(0); ; shift += 7 {
  4684  						if shift >= 64 {
  4685  							return ErrIntOverflowProcessorsSql
  4686  						}
  4687  						if iNdEx >= l {
  4688  							return io.ErrUnexpectedEOF
  4689  						}
  4690  						b := dAtA[iNdEx]
  4691  						iNdEx++
  4692  						v |= (uint32(b) & 0x7F) << shift
  4693  						if b < 0x80 {
  4694  							break
  4695  						}
  4696  					}
  4697  					m.DistinctColumns = append(m.DistinctColumns, v)
  4698  				}
  4699  			} else {
  4700  				return fmt.Errorf("proto: wrong wireType = %d for field DistinctColumns", wireType)
  4701  			}
  4702  		case 3:
  4703  			if wireType != 0 {
  4704  				return fmt.Errorf("proto: wrong wireType = %d for field NullsAreDistinct", wireType)
  4705  			}
  4706  			var v int
  4707  			for shift := uint(0); ; shift += 7 {
  4708  				if shift >= 64 {
  4709  					return ErrIntOverflowProcessorsSql
  4710  				}
  4711  				if iNdEx >= l {
  4712  					return io.ErrUnexpectedEOF
  4713  				}
  4714  				b := dAtA[iNdEx]
  4715  				iNdEx++
  4716  				v |= (int(b) & 0x7F) << shift
  4717  				if b < 0x80 {
  4718  					break
  4719  				}
  4720  			}
  4721  			m.NullsAreDistinct = bool(v != 0)
  4722  		case 4:
  4723  			if wireType != 2 {
  4724  				return fmt.Errorf("proto: wrong wireType = %d for field ErrorOnDup", wireType)
  4725  			}
  4726  			var stringLen uint64
  4727  			for shift := uint(0); ; shift += 7 {
  4728  				if shift >= 64 {
  4729  					return ErrIntOverflowProcessorsSql
  4730  				}
  4731  				if iNdEx >= l {
  4732  					return io.ErrUnexpectedEOF
  4733  				}
  4734  				b := dAtA[iNdEx]
  4735  				iNdEx++
  4736  				stringLen |= (uint64(b) & 0x7F) << shift
  4737  				if b < 0x80 {
  4738  					break
  4739  				}
  4740  			}
  4741  			intStringLen := int(stringLen)
  4742  			if intStringLen < 0 {
  4743  				return ErrInvalidLengthProcessorsSql
  4744  			}
  4745  			postIndex := iNdEx + intStringLen
  4746  			if postIndex > l {
  4747  				return io.ErrUnexpectedEOF
  4748  			}
  4749  			m.ErrorOnDup = string(dAtA[iNdEx:postIndex])
  4750  			iNdEx = postIndex
  4751  		default:
  4752  			iNdEx = preIndex
  4753  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  4754  			if err != nil {
  4755  				return err
  4756  			}
  4757  			if skippy < 0 {
  4758  				return ErrInvalidLengthProcessorsSql
  4759  			}
  4760  			if (iNdEx + skippy) > l {
  4761  				return io.ErrUnexpectedEOF
  4762  			}
  4763  			iNdEx += skippy
  4764  		}
  4765  	}
  4766  
  4767  	if iNdEx > l {
  4768  		return io.ErrUnexpectedEOF
  4769  	}
  4770  	return nil
  4771  }
  4772  func (m *OrdinalitySpec) Unmarshal(dAtA []byte) error {
  4773  	l := len(dAtA)
  4774  	iNdEx := 0
  4775  	for iNdEx < l {
  4776  		preIndex := iNdEx
  4777  		var wire uint64
  4778  		for shift := uint(0); ; shift += 7 {
  4779  			if shift >= 64 {
  4780  				return ErrIntOverflowProcessorsSql
  4781  			}
  4782  			if iNdEx >= l {
  4783  				return io.ErrUnexpectedEOF
  4784  			}
  4785  			b := dAtA[iNdEx]
  4786  			iNdEx++
  4787  			wire |= (uint64(b) & 0x7F) << shift
  4788  			if b < 0x80 {
  4789  				break
  4790  			}
  4791  		}
  4792  		fieldNum := int32(wire >> 3)
  4793  		wireType := int(wire & 0x7)
  4794  		if wireType == 4 {
  4795  			return fmt.Errorf("proto: OrdinalitySpec: wiretype end group for non-group")
  4796  		}
  4797  		if fieldNum <= 0 {
  4798  			return fmt.Errorf("proto: OrdinalitySpec: illegal tag %d (wire type %d)", fieldNum, wire)
  4799  		}
  4800  		switch fieldNum {
  4801  		default:
  4802  			iNdEx = preIndex
  4803  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  4804  			if err != nil {
  4805  				return err
  4806  			}
  4807  			if skippy < 0 {
  4808  				return ErrInvalidLengthProcessorsSql
  4809  			}
  4810  			if (iNdEx + skippy) > l {
  4811  				return io.ErrUnexpectedEOF
  4812  			}
  4813  			iNdEx += skippy
  4814  		}
  4815  	}
  4816  
  4817  	if iNdEx > l {
  4818  		return io.ErrUnexpectedEOF
  4819  	}
  4820  	return nil
  4821  }
  4822  func (m *ZigzagJoinerSpec) Unmarshal(dAtA []byte) error {
  4823  	l := len(dAtA)
  4824  	iNdEx := 0
  4825  	for iNdEx < l {
  4826  		preIndex := iNdEx
  4827  		var wire uint64
  4828  		for shift := uint(0); ; shift += 7 {
  4829  			if shift >= 64 {
  4830  				return ErrIntOverflowProcessorsSql
  4831  			}
  4832  			if iNdEx >= l {
  4833  				return io.ErrUnexpectedEOF
  4834  			}
  4835  			b := dAtA[iNdEx]
  4836  			iNdEx++
  4837  			wire |= (uint64(b) & 0x7F) << shift
  4838  			if b < 0x80 {
  4839  				break
  4840  			}
  4841  		}
  4842  		fieldNum := int32(wire >> 3)
  4843  		wireType := int(wire & 0x7)
  4844  		if wireType == 4 {
  4845  			return fmt.Errorf("proto: ZigzagJoinerSpec: wiretype end group for non-group")
  4846  		}
  4847  		if fieldNum <= 0 {
  4848  			return fmt.Errorf("proto: ZigzagJoinerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  4849  		}
  4850  		switch fieldNum {
  4851  		case 1:
  4852  			if wireType != 2 {
  4853  				return fmt.Errorf("proto: wrong wireType = %d for field Tables", wireType)
  4854  			}
  4855  			var msglen int
  4856  			for shift := uint(0); ; shift += 7 {
  4857  				if shift >= 64 {
  4858  					return ErrIntOverflowProcessorsSql
  4859  				}
  4860  				if iNdEx >= l {
  4861  					return io.ErrUnexpectedEOF
  4862  				}
  4863  				b := dAtA[iNdEx]
  4864  				iNdEx++
  4865  				msglen |= (int(b) & 0x7F) << shift
  4866  				if b < 0x80 {
  4867  					break
  4868  				}
  4869  			}
  4870  			if msglen < 0 {
  4871  				return ErrInvalidLengthProcessorsSql
  4872  			}
  4873  			postIndex := iNdEx + msglen
  4874  			if postIndex > l {
  4875  				return io.ErrUnexpectedEOF
  4876  			}
  4877  			m.Tables = append(m.Tables, sqlbase.TableDescriptor{})
  4878  			if err := m.Tables[len(m.Tables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4879  				return err
  4880  			}
  4881  			iNdEx = postIndex
  4882  		case 2:
  4883  			if wireType != 2 {
  4884  				return fmt.Errorf("proto: wrong wireType = %d for field EqColumns", wireType)
  4885  			}
  4886  			var msglen int
  4887  			for shift := uint(0); ; shift += 7 {
  4888  				if shift >= 64 {
  4889  					return ErrIntOverflowProcessorsSql
  4890  				}
  4891  				if iNdEx >= l {
  4892  					return io.ErrUnexpectedEOF
  4893  				}
  4894  				b := dAtA[iNdEx]
  4895  				iNdEx++
  4896  				msglen |= (int(b) & 0x7F) << shift
  4897  				if b < 0x80 {
  4898  					break
  4899  				}
  4900  			}
  4901  			if msglen < 0 {
  4902  				return ErrInvalidLengthProcessorsSql
  4903  			}
  4904  			postIndex := iNdEx + msglen
  4905  			if postIndex > l {
  4906  				return io.ErrUnexpectedEOF
  4907  			}
  4908  			m.EqColumns = append(m.EqColumns, Columns{})
  4909  			if err := m.EqColumns[len(m.EqColumns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  4910  				return err
  4911  			}
  4912  			iNdEx = postIndex
  4913  		case 3:
  4914  			if wireType == 0 {
  4915  				var v uint32
  4916  				for shift := uint(0); ; shift += 7 {
  4917  					if shift >= 64 {
  4918  						return ErrIntOverflowProcessorsSql
  4919  					}
  4920  					if iNdEx >= l {
  4921  						return io.ErrUnexpectedEOF
  4922  					}
  4923  					b := dAtA[iNdEx]
  4924  					iNdEx++
  4925  					v |= (uint32(b) & 0x7F) << shift
  4926  					if b < 0x80 {
  4927  						break
  4928  					}
  4929  				}
  4930  				m.IndexOrdinals = append(m.IndexOrdinals, v)
  4931  			} else if wireType == 2 {
  4932  				var packedLen int
  4933  				for shift := uint(0); ; shift += 7 {
  4934  					if shift >= 64 {
  4935  						return ErrIntOverflowProcessorsSql
  4936  					}
  4937  					if iNdEx >= l {
  4938  						return io.ErrUnexpectedEOF
  4939  					}
  4940  					b := dAtA[iNdEx]
  4941  					iNdEx++
  4942  					packedLen |= (int(b) & 0x7F) << shift
  4943  					if b < 0x80 {
  4944  						break
  4945  					}
  4946  				}
  4947  				if packedLen < 0 {
  4948  					return ErrInvalidLengthProcessorsSql
  4949  				}
  4950  				postIndex := iNdEx + packedLen
  4951  				if postIndex > l {
  4952  					return io.ErrUnexpectedEOF
  4953  				}
  4954  				var elementCount int
  4955  				var count int
  4956  				for _, integer := range dAtA {
  4957  					if integer < 128 {
  4958  						count++
  4959  					}
  4960  				}
  4961  				elementCount = count
  4962  				if elementCount != 0 && len(m.IndexOrdinals) == 0 {
  4963  					m.IndexOrdinals = make([]uint32, 0, elementCount)
  4964  				}
  4965  				for iNdEx < postIndex {
  4966  					var v uint32
  4967  					for shift := uint(0); ; shift += 7 {
  4968  						if shift >= 64 {
  4969  							return ErrIntOverflowProcessorsSql
  4970  						}
  4971  						if iNdEx >= l {
  4972  							return io.ErrUnexpectedEOF
  4973  						}
  4974  						b := dAtA[iNdEx]
  4975  						iNdEx++
  4976  						v |= (uint32(b) & 0x7F) << shift
  4977  						if b < 0x80 {
  4978  							break
  4979  						}
  4980  					}
  4981  					m.IndexOrdinals = append(m.IndexOrdinals, v)
  4982  				}
  4983  			} else {
  4984  				return fmt.Errorf("proto: wrong wireType = %d for field IndexOrdinals", wireType)
  4985  			}
  4986  		case 4:
  4987  			if wireType != 2 {
  4988  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  4989  			}
  4990  			var msglen int
  4991  			for shift := uint(0); ; shift += 7 {
  4992  				if shift >= 64 {
  4993  					return ErrIntOverflowProcessorsSql
  4994  				}
  4995  				if iNdEx >= l {
  4996  					return io.ErrUnexpectedEOF
  4997  				}
  4998  				b := dAtA[iNdEx]
  4999  				iNdEx++
  5000  				msglen |= (int(b) & 0x7F) << shift
  5001  				if b < 0x80 {
  5002  					break
  5003  				}
  5004  			}
  5005  			if msglen < 0 {
  5006  				return ErrInvalidLengthProcessorsSql
  5007  			}
  5008  			postIndex := iNdEx + msglen
  5009  			if postIndex > l {
  5010  				return io.ErrUnexpectedEOF
  5011  			}
  5012  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5013  				return err
  5014  			}
  5015  			iNdEx = postIndex
  5016  		case 5:
  5017  			if wireType != 2 {
  5018  				return fmt.Errorf("proto: wrong wireType = %d for field FixedValues", wireType)
  5019  			}
  5020  			var msglen int
  5021  			for shift := uint(0); ; shift += 7 {
  5022  				if shift >= 64 {
  5023  					return ErrIntOverflowProcessorsSql
  5024  				}
  5025  				if iNdEx >= l {
  5026  					return io.ErrUnexpectedEOF
  5027  				}
  5028  				b := dAtA[iNdEx]
  5029  				iNdEx++
  5030  				msglen |= (int(b) & 0x7F) << shift
  5031  				if b < 0x80 {
  5032  					break
  5033  				}
  5034  			}
  5035  			if msglen < 0 {
  5036  				return ErrInvalidLengthProcessorsSql
  5037  			}
  5038  			postIndex := iNdEx + msglen
  5039  			if postIndex > l {
  5040  				return io.ErrUnexpectedEOF
  5041  			}
  5042  			m.FixedValues = append(m.FixedValues, &ValuesCoreSpec{})
  5043  			if err := m.FixedValues[len(m.FixedValues)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5044  				return err
  5045  			}
  5046  			iNdEx = postIndex
  5047  		case 6:
  5048  			if wireType != 0 {
  5049  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  5050  			}
  5051  			m.Type = 0
  5052  			for shift := uint(0); ; shift += 7 {
  5053  				if shift >= 64 {
  5054  					return ErrIntOverflowProcessorsSql
  5055  				}
  5056  				if iNdEx >= l {
  5057  					return io.ErrUnexpectedEOF
  5058  				}
  5059  				b := dAtA[iNdEx]
  5060  				iNdEx++
  5061  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  5062  				if b < 0x80 {
  5063  					break
  5064  				}
  5065  			}
  5066  		default:
  5067  			iNdEx = preIndex
  5068  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  5069  			if err != nil {
  5070  				return err
  5071  			}
  5072  			if skippy < 0 {
  5073  				return ErrInvalidLengthProcessorsSql
  5074  			}
  5075  			if (iNdEx + skippy) > l {
  5076  				return io.ErrUnexpectedEOF
  5077  			}
  5078  			iNdEx += skippy
  5079  		}
  5080  	}
  5081  
  5082  	if iNdEx > l {
  5083  		return io.ErrUnexpectedEOF
  5084  	}
  5085  	return nil
  5086  }
  5087  func (m *MergeJoinerSpec) Unmarshal(dAtA []byte) error {
  5088  	l := len(dAtA)
  5089  	iNdEx := 0
  5090  	for iNdEx < l {
  5091  		preIndex := iNdEx
  5092  		var wire uint64
  5093  		for shift := uint(0); ; shift += 7 {
  5094  			if shift >= 64 {
  5095  				return ErrIntOverflowProcessorsSql
  5096  			}
  5097  			if iNdEx >= l {
  5098  				return io.ErrUnexpectedEOF
  5099  			}
  5100  			b := dAtA[iNdEx]
  5101  			iNdEx++
  5102  			wire |= (uint64(b) & 0x7F) << shift
  5103  			if b < 0x80 {
  5104  				break
  5105  			}
  5106  		}
  5107  		fieldNum := int32(wire >> 3)
  5108  		wireType := int(wire & 0x7)
  5109  		if wireType == 4 {
  5110  			return fmt.Errorf("proto: MergeJoinerSpec: wiretype end group for non-group")
  5111  		}
  5112  		if fieldNum <= 0 {
  5113  			return fmt.Errorf("proto: MergeJoinerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  5114  		}
  5115  		switch fieldNum {
  5116  		case 1:
  5117  			if wireType != 2 {
  5118  				return fmt.Errorf("proto: wrong wireType = %d for field LeftOrdering", wireType)
  5119  			}
  5120  			var msglen int
  5121  			for shift := uint(0); ; shift += 7 {
  5122  				if shift >= 64 {
  5123  					return ErrIntOverflowProcessorsSql
  5124  				}
  5125  				if iNdEx >= l {
  5126  					return io.ErrUnexpectedEOF
  5127  				}
  5128  				b := dAtA[iNdEx]
  5129  				iNdEx++
  5130  				msglen |= (int(b) & 0x7F) << shift
  5131  				if b < 0x80 {
  5132  					break
  5133  				}
  5134  			}
  5135  			if msglen < 0 {
  5136  				return ErrInvalidLengthProcessorsSql
  5137  			}
  5138  			postIndex := iNdEx + msglen
  5139  			if postIndex > l {
  5140  				return io.ErrUnexpectedEOF
  5141  			}
  5142  			if err := m.LeftOrdering.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5143  				return err
  5144  			}
  5145  			iNdEx = postIndex
  5146  		case 2:
  5147  			if wireType != 2 {
  5148  				return fmt.Errorf("proto: wrong wireType = %d for field RightOrdering", wireType)
  5149  			}
  5150  			var msglen int
  5151  			for shift := uint(0); ; shift += 7 {
  5152  				if shift >= 64 {
  5153  					return ErrIntOverflowProcessorsSql
  5154  				}
  5155  				if iNdEx >= l {
  5156  					return io.ErrUnexpectedEOF
  5157  				}
  5158  				b := dAtA[iNdEx]
  5159  				iNdEx++
  5160  				msglen |= (int(b) & 0x7F) << shift
  5161  				if b < 0x80 {
  5162  					break
  5163  				}
  5164  			}
  5165  			if msglen < 0 {
  5166  				return ErrInvalidLengthProcessorsSql
  5167  			}
  5168  			postIndex := iNdEx + msglen
  5169  			if postIndex > l {
  5170  				return io.ErrUnexpectedEOF
  5171  			}
  5172  			if err := m.RightOrdering.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5173  				return err
  5174  			}
  5175  			iNdEx = postIndex
  5176  		case 5:
  5177  			if wireType != 2 {
  5178  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  5179  			}
  5180  			var msglen int
  5181  			for shift := uint(0); ; shift += 7 {
  5182  				if shift >= 64 {
  5183  					return ErrIntOverflowProcessorsSql
  5184  				}
  5185  				if iNdEx >= l {
  5186  					return io.ErrUnexpectedEOF
  5187  				}
  5188  				b := dAtA[iNdEx]
  5189  				iNdEx++
  5190  				msglen |= (int(b) & 0x7F) << shift
  5191  				if b < 0x80 {
  5192  					break
  5193  				}
  5194  			}
  5195  			if msglen < 0 {
  5196  				return ErrInvalidLengthProcessorsSql
  5197  			}
  5198  			postIndex := iNdEx + msglen
  5199  			if postIndex > l {
  5200  				return io.ErrUnexpectedEOF
  5201  			}
  5202  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5203  				return err
  5204  			}
  5205  			iNdEx = postIndex
  5206  		case 6:
  5207  			if wireType != 0 {
  5208  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  5209  			}
  5210  			m.Type = 0
  5211  			for shift := uint(0); ; shift += 7 {
  5212  				if shift >= 64 {
  5213  					return ErrIntOverflowProcessorsSql
  5214  				}
  5215  				if iNdEx >= l {
  5216  					return io.ErrUnexpectedEOF
  5217  				}
  5218  				b := dAtA[iNdEx]
  5219  				iNdEx++
  5220  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  5221  				if b < 0x80 {
  5222  					break
  5223  				}
  5224  			}
  5225  		case 7:
  5226  			if wireType != 0 {
  5227  				return fmt.Errorf("proto: wrong wireType = %d for field NullEquality", wireType)
  5228  			}
  5229  			var v int
  5230  			for shift := uint(0); ; shift += 7 {
  5231  				if shift >= 64 {
  5232  					return ErrIntOverflowProcessorsSql
  5233  				}
  5234  				if iNdEx >= l {
  5235  					return io.ErrUnexpectedEOF
  5236  				}
  5237  				b := dAtA[iNdEx]
  5238  				iNdEx++
  5239  				v |= (int(b) & 0x7F) << shift
  5240  				if b < 0x80 {
  5241  					break
  5242  				}
  5243  			}
  5244  			m.NullEquality = bool(v != 0)
  5245  		case 8:
  5246  			if wireType != 0 {
  5247  				return fmt.Errorf("proto: wrong wireType = %d for field LeftEqColumnsAreKey", wireType)
  5248  			}
  5249  			var v int
  5250  			for shift := uint(0); ; shift += 7 {
  5251  				if shift >= 64 {
  5252  					return ErrIntOverflowProcessorsSql
  5253  				}
  5254  				if iNdEx >= l {
  5255  					return io.ErrUnexpectedEOF
  5256  				}
  5257  				b := dAtA[iNdEx]
  5258  				iNdEx++
  5259  				v |= (int(b) & 0x7F) << shift
  5260  				if b < 0x80 {
  5261  					break
  5262  				}
  5263  			}
  5264  			m.LeftEqColumnsAreKey = bool(v != 0)
  5265  		case 9:
  5266  			if wireType != 0 {
  5267  				return fmt.Errorf("proto: wrong wireType = %d for field RightEqColumnsAreKey", wireType)
  5268  			}
  5269  			var v int
  5270  			for shift := uint(0); ; shift += 7 {
  5271  				if shift >= 64 {
  5272  					return ErrIntOverflowProcessorsSql
  5273  				}
  5274  				if iNdEx >= l {
  5275  					return io.ErrUnexpectedEOF
  5276  				}
  5277  				b := dAtA[iNdEx]
  5278  				iNdEx++
  5279  				v |= (int(b) & 0x7F) << shift
  5280  				if b < 0x80 {
  5281  					break
  5282  				}
  5283  			}
  5284  			m.RightEqColumnsAreKey = bool(v != 0)
  5285  		default:
  5286  			iNdEx = preIndex
  5287  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  5288  			if err != nil {
  5289  				return err
  5290  			}
  5291  			if skippy < 0 {
  5292  				return ErrInvalidLengthProcessorsSql
  5293  			}
  5294  			if (iNdEx + skippy) > l {
  5295  				return io.ErrUnexpectedEOF
  5296  			}
  5297  			iNdEx += skippy
  5298  		}
  5299  	}
  5300  
  5301  	if iNdEx > l {
  5302  		return io.ErrUnexpectedEOF
  5303  	}
  5304  	return nil
  5305  }
  5306  func (m *HashJoinerSpec) Unmarshal(dAtA []byte) error {
  5307  	l := len(dAtA)
  5308  	iNdEx := 0
  5309  	for iNdEx < l {
  5310  		preIndex := iNdEx
  5311  		var wire uint64
  5312  		for shift := uint(0); ; shift += 7 {
  5313  			if shift >= 64 {
  5314  				return ErrIntOverflowProcessorsSql
  5315  			}
  5316  			if iNdEx >= l {
  5317  				return io.ErrUnexpectedEOF
  5318  			}
  5319  			b := dAtA[iNdEx]
  5320  			iNdEx++
  5321  			wire |= (uint64(b) & 0x7F) << shift
  5322  			if b < 0x80 {
  5323  				break
  5324  			}
  5325  		}
  5326  		fieldNum := int32(wire >> 3)
  5327  		wireType := int(wire & 0x7)
  5328  		if wireType == 4 {
  5329  			return fmt.Errorf("proto: HashJoinerSpec: wiretype end group for non-group")
  5330  		}
  5331  		if fieldNum <= 0 {
  5332  			return fmt.Errorf("proto: HashJoinerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  5333  		}
  5334  		switch fieldNum {
  5335  		case 1:
  5336  			if wireType == 0 {
  5337  				var v uint32
  5338  				for shift := uint(0); ; shift += 7 {
  5339  					if shift >= 64 {
  5340  						return ErrIntOverflowProcessorsSql
  5341  					}
  5342  					if iNdEx >= l {
  5343  						return io.ErrUnexpectedEOF
  5344  					}
  5345  					b := dAtA[iNdEx]
  5346  					iNdEx++
  5347  					v |= (uint32(b) & 0x7F) << shift
  5348  					if b < 0x80 {
  5349  						break
  5350  					}
  5351  				}
  5352  				m.LeftEqColumns = append(m.LeftEqColumns, v)
  5353  			} else if wireType == 2 {
  5354  				var packedLen int
  5355  				for shift := uint(0); ; shift += 7 {
  5356  					if shift >= 64 {
  5357  						return ErrIntOverflowProcessorsSql
  5358  					}
  5359  					if iNdEx >= l {
  5360  						return io.ErrUnexpectedEOF
  5361  					}
  5362  					b := dAtA[iNdEx]
  5363  					iNdEx++
  5364  					packedLen |= (int(b) & 0x7F) << shift
  5365  					if b < 0x80 {
  5366  						break
  5367  					}
  5368  				}
  5369  				if packedLen < 0 {
  5370  					return ErrInvalidLengthProcessorsSql
  5371  				}
  5372  				postIndex := iNdEx + packedLen
  5373  				if postIndex > l {
  5374  					return io.ErrUnexpectedEOF
  5375  				}
  5376  				var elementCount int
  5377  				var count int
  5378  				for _, integer := range dAtA {
  5379  					if integer < 128 {
  5380  						count++
  5381  					}
  5382  				}
  5383  				elementCount = count
  5384  				if elementCount != 0 && len(m.LeftEqColumns) == 0 {
  5385  					m.LeftEqColumns = make([]uint32, 0, elementCount)
  5386  				}
  5387  				for iNdEx < postIndex {
  5388  					var v uint32
  5389  					for shift := uint(0); ; shift += 7 {
  5390  						if shift >= 64 {
  5391  							return ErrIntOverflowProcessorsSql
  5392  						}
  5393  						if iNdEx >= l {
  5394  							return io.ErrUnexpectedEOF
  5395  						}
  5396  						b := dAtA[iNdEx]
  5397  						iNdEx++
  5398  						v |= (uint32(b) & 0x7F) << shift
  5399  						if b < 0x80 {
  5400  							break
  5401  						}
  5402  					}
  5403  					m.LeftEqColumns = append(m.LeftEqColumns, v)
  5404  				}
  5405  			} else {
  5406  				return fmt.Errorf("proto: wrong wireType = %d for field LeftEqColumns", wireType)
  5407  			}
  5408  		case 2:
  5409  			if wireType == 0 {
  5410  				var v uint32
  5411  				for shift := uint(0); ; shift += 7 {
  5412  					if shift >= 64 {
  5413  						return ErrIntOverflowProcessorsSql
  5414  					}
  5415  					if iNdEx >= l {
  5416  						return io.ErrUnexpectedEOF
  5417  					}
  5418  					b := dAtA[iNdEx]
  5419  					iNdEx++
  5420  					v |= (uint32(b) & 0x7F) << shift
  5421  					if b < 0x80 {
  5422  						break
  5423  					}
  5424  				}
  5425  				m.RightEqColumns = append(m.RightEqColumns, v)
  5426  			} else if wireType == 2 {
  5427  				var packedLen int
  5428  				for shift := uint(0); ; shift += 7 {
  5429  					if shift >= 64 {
  5430  						return ErrIntOverflowProcessorsSql
  5431  					}
  5432  					if iNdEx >= l {
  5433  						return io.ErrUnexpectedEOF
  5434  					}
  5435  					b := dAtA[iNdEx]
  5436  					iNdEx++
  5437  					packedLen |= (int(b) & 0x7F) << shift
  5438  					if b < 0x80 {
  5439  						break
  5440  					}
  5441  				}
  5442  				if packedLen < 0 {
  5443  					return ErrInvalidLengthProcessorsSql
  5444  				}
  5445  				postIndex := iNdEx + packedLen
  5446  				if postIndex > l {
  5447  					return io.ErrUnexpectedEOF
  5448  				}
  5449  				var elementCount int
  5450  				var count int
  5451  				for _, integer := range dAtA {
  5452  					if integer < 128 {
  5453  						count++
  5454  					}
  5455  				}
  5456  				elementCount = count
  5457  				if elementCount != 0 && len(m.RightEqColumns) == 0 {
  5458  					m.RightEqColumns = make([]uint32, 0, elementCount)
  5459  				}
  5460  				for iNdEx < postIndex {
  5461  					var v uint32
  5462  					for shift := uint(0); ; shift += 7 {
  5463  						if shift >= 64 {
  5464  							return ErrIntOverflowProcessorsSql
  5465  						}
  5466  						if iNdEx >= l {
  5467  							return io.ErrUnexpectedEOF
  5468  						}
  5469  						b := dAtA[iNdEx]
  5470  						iNdEx++
  5471  						v |= (uint32(b) & 0x7F) << shift
  5472  						if b < 0x80 {
  5473  							break
  5474  						}
  5475  					}
  5476  					m.RightEqColumns = append(m.RightEqColumns, v)
  5477  				}
  5478  			} else {
  5479  				return fmt.Errorf("proto: wrong wireType = %d for field RightEqColumns", wireType)
  5480  			}
  5481  		case 5:
  5482  			if wireType != 2 {
  5483  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  5484  			}
  5485  			var msglen int
  5486  			for shift := uint(0); ; shift += 7 {
  5487  				if shift >= 64 {
  5488  					return ErrIntOverflowProcessorsSql
  5489  				}
  5490  				if iNdEx >= l {
  5491  					return io.ErrUnexpectedEOF
  5492  				}
  5493  				b := dAtA[iNdEx]
  5494  				iNdEx++
  5495  				msglen |= (int(b) & 0x7F) << shift
  5496  				if b < 0x80 {
  5497  					break
  5498  				}
  5499  			}
  5500  			if msglen < 0 {
  5501  				return ErrInvalidLengthProcessorsSql
  5502  			}
  5503  			postIndex := iNdEx + msglen
  5504  			if postIndex > l {
  5505  				return io.ErrUnexpectedEOF
  5506  			}
  5507  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5508  				return err
  5509  			}
  5510  			iNdEx = postIndex
  5511  		case 6:
  5512  			if wireType != 0 {
  5513  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  5514  			}
  5515  			m.Type = 0
  5516  			for shift := uint(0); ; shift += 7 {
  5517  				if shift >= 64 {
  5518  					return ErrIntOverflowProcessorsSql
  5519  				}
  5520  				if iNdEx >= l {
  5521  					return io.ErrUnexpectedEOF
  5522  				}
  5523  				b := dAtA[iNdEx]
  5524  				iNdEx++
  5525  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  5526  				if b < 0x80 {
  5527  					break
  5528  				}
  5529  			}
  5530  		case 7:
  5531  			if wireType != 0 {
  5532  				return fmt.Errorf("proto: wrong wireType = %d for field MergedColumns", wireType)
  5533  			}
  5534  			var v int
  5535  			for shift := uint(0); ; shift += 7 {
  5536  				if shift >= 64 {
  5537  					return ErrIntOverflowProcessorsSql
  5538  				}
  5539  				if iNdEx >= l {
  5540  					return io.ErrUnexpectedEOF
  5541  				}
  5542  				b := dAtA[iNdEx]
  5543  				iNdEx++
  5544  				v |= (int(b) & 0x7F) << shift
  5545  				if b < 0x80 {
  5546  					break
  5547  				}
  5548  			}
  5549  			m.MergedColumns = bool(v != 0)
  5550  		case 8:
  5551  			if wireType != 0 {
  5552  				return fmt.Errorf("proto: wrong wireType = %d for field LeftEqColumnsAreKey", wireType)
  5553  			}
  5554  			var v int
  5555  			for shift := uint(0); ; shift += 7 {
  5556  				if shift >= 64 {
  5557  					return ErrIntOverflowProcessorsSql
  5558  				}
  5559  				if iNdEx >= l {
  5560  					return io.ErrUnexpectedEOF
  5561  				}
  5562  				b := dAtA[iNdEx]
  5563  				iNdEx++
  5564  				v |= (int(b) & 0x7F) << shift
  5565  				if b < 0x80 {
  5566  					break
  5567  				}
  5568  			}
  5569  			m.LeftEqColumnsAreKey = bool(v != 0)
  5570  		case 9:
  5571  			if wireType != 0 {
  5572  				return fmt.Errorf("proto: wrong wireType = %d for field RightEqColumnsAreKey", wireType)
  5573  			}
  5574  			var v int
  5575  			for shift := uint(0); ; shift += 7 {
  5576  				if shift >= 64 {
  5577  					return ErrIntOverflowProcessorsSql
  5578  				}
  5579  				if iNdEx >= l {
  5580  					return io.ErrUnexpectedEOF
  5581  				}
  5582  				b := dAtA[iNdEx]
  5583  				iNdEx++
  5584  				v |= (int(b) & 0x7F) << shift
  5585  				if b < 0x80 {
  5586  					break
  5587  				}
  5588  			}
  5589  			m.RightEqColumnsAreKey = bool(v != 0)
  5590  		default:
  5591  			iNdEx = preIndex
  5592  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  5593  			if err != nil {
  5594  				return err
  5595  			}
  5596  			if skippy < 0 {
  5597  				return ErrInvalidLengthProcessorsSql
  5598  			}
  5599  			if (iNdEx + skippy) > l {
  5600  				return io.ErrUnexpectedEOF
  5601  			}
  5602  			iNdEx += skippy
  5603  		}
  5604  	}
  5605  
  5606  	if iNdEx > l {
  5607  		return io.ErrUnexpectedEOF
  5608  	}
  5609  	return nil
  5610  }
  5611  func (m *InvertedJoinerSpec) Unmarshal(dAtA []byte) error {
  5612  	l := len(dAtA)
  5613  	iNdEx := 0
  5614  	for iNdEx < l {
  5615  		preIndex := iNdEx
  5616  		var wire uint64
  5617  		for shift := uint(0); ; shift += 7 {
  5618  			if shift >= 64 {
  5619  				return ErrIntOverflowProcessorsSql
  5620  			}
  5621  			if iNdEx >= l {
  5622  				return io.ErrUnexpectedEOF
  5623  			}
  5624  			b := dAtA[iNdEx]
  5625  			iNdEx++
  5626  			wire |= (uint64(b) & 0x7F) << shift
  5627  			if b < 0x80 {
  5628  				break
  5629  			}
  5630  		}
  5631  		fieldNum := int32(wire >> 3)
  5632  		wireType := int(wire & 0x7)
  5633  		if wireType == 4 {
  5634  			return fmt.Errorf("proto: InvertedJoinerSpec: wiretype end group for non-group")
  5635  		}
  5636  		if fieldNum <= 0 {
  5637  			return fmt.Errorf("proto: InvertedJoinerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  5638  		}
  5639  		switch fieldNum {
  5640  		case 1:
  5641  			if wireType != 2 {
  5642  				return fmt.Errorf("proto: wrong wireType = %d for field Table", wireType)
  5643  			}
  5644  			var msglen int
  5645  			for shift := uint(0); ; shift += 7 {
  5646  				if shift >= 64 {
  5647  					return ErrIntOverflowProcessorsSql
  5648  				}
  5649  				if iNdEx >= l {
  5650  					return io.ErrUnexpectedEOF
  5651  				}
  5652  				b := dAtA[iNdEx]
  5653  				iNdEx++
  5654  				msglen |= (int(b) & 0x7F) << shift
  5655  				if b < 0x80 {
  5656  					break
  5657  				}
  5658  			}
  5659  			if msglen < 0 {
  5660  				return ErrInvalidLengthProcessorsSql
  5661  			}
  5662  			postIndex := iNdEx + msglen
  5663  			if postIndex > l {
  5664  				return io.ErrUnexpectedEOF
  5665  			}
  5666  			if err := m.Table.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5667  				return err
  5668  			}
  5669  			iNdEx = postIndex
  5670  		case 2:
  5671  			if wireType != 0 {
  5672  				return fmt.Errorf("proto: wrong wireType = %d for field IndexIdx", wireType)
  5673  			}
  5674  			m.IndexIdx = 0
  5675  			for shift := uint(0); ; shift += 7 {
  5676  				if shift >= 64 {
  5677  					return ErrIntOverflowProcessorsSql
  5678  				}
  5679  				if iNdEx >= l {
  5680  					return io.ErrUnexpectedEOF
  5681  				}
  5682  				b := dAtA[iNdEx]
  5683  				iNdEx++
  5684  				m.IndexIdx |= (uint32(b) & 0x7F) << shift
  5685  				if b < 0x80 {
  5686  					break
  5687  				}
  5688  			}
  5689  		case 3:
  5690  			if wireType != 0 {
  5691  				return fmt.Errorf("proto: wrong wireType = %d for field LookupColumn", wireType)
  5692  			}
  5693  			m.LookupColumn = 0
  5694  			for shift := uint(0); ; shift += 7 {
  5695  				if shift >= 64 {
  5696  					return ErrIntOverflowProcessorsSql
  5697  				}
  5698  				if iNdEx >= l {
  5699  					return io.ErrUnexpectedEOF
  5700  				}
  5701  				b := dAtA[iNdEx]
  5702  				iNdEx++
  5703  				m.LookupColumn |= (uint32(b) & 0x7F) << shift
  5704  				if b < 0x80 {
  5705  					break
  5706  				}
  5707  			}
  5708  		case 4:
  5709  			if wireType != 2 {
  5710  				return fmt.Errorf("proto: wrong wireType = %d for field InvertedExpr", wireType)
  5711  			}
  5712  			var msglen int
  5713  			for shift := uint(0); ; shift += 7 {
  5714  				if shift >= 64 {
  5715  					return ErrIntOverflowProcessorsSql
  5716  				}
  5717  				if iNdEx >= l {
  5718  					return io.ErrUnexpectedEOF
  5719  				}
  5720  				b := dAtA[iNdEx]
  5721  				iNdEx++
  5722  				msglen |= (int(b) & 0x7F) << shift
  5723  				if b < 0x80 {
  5724  					break
  5725  				}
  5726  			}
  5727  			if msglen < 0 {
  5728  				return ErrInvalidLengthProcessorsSql
  5729  			}
  5730  			postIndex := iNdEx + msglen
  5731  			if postIndex > l {
  5732  				return io.ErrUnexpectedEOF
  5733  			}
  5734  			if err := m.InvertedExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5735  				return err
  5736  			}
  5737  			iNdEx = postIndex
  5738  		case 5:
  5739  			if wireType != 2 {
  5740  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  5741  			}
  5742  			var msglen int
  5743  			for shift := uint(0); ; shift += 7 {
  5744  				if shift >= 64 {
  5745  					return ErrIntOverflowProcessorsSql
  5746  				}
  5747  				if iNdEx >= l {
  5748  					return io.ErrUnexpectedEOF
  5749  				}
  5750  				b := dAtA[iNdEx]
  5751  				iNdEx++
  5752  				msglen |= (int(b) & 0x7F) << shift
  5753  				if b < 0x80 {
  5754  					break
  5755  				}
  5756  			}
  5757  			if msglen < 0 {
  5758  				return ErrInvalidLengthProcessorsSql
  5759  			}
  5760  			postIndex := iNdEx + msglen
  5761  			if postIndex > l {
  5762  				return io.ErrUnexpectedEOF
  5763  			}
  5764  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5765  				return err
  5766  			}
  5767  			iNdEx = postIndex
  5768  		case 6:
  5769  			if wireType != 0 {
  5770  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  5771  			}
  5772  			m.Type = 0
  5773  			for shift := uint(0); ; shift += 7 {
  5774  				if shift >= 64 {
  5775  					return ErrIntOverflowProcessorsSql
  5776  				}
  5777  				if iNdEx >= l {
  5778  					return io.ErrUnexpectedEOF
  5779  				}
  5780  				b := dAtA[iNdEx]
  5781  				iNdEx++
  5782  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  5783  				if b < 0x80 {
  5784  					break
  5785  				}
  5786  			}
  5787  		default:
  5788  			iNdEx = preIndex
  5789  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  5790  			if err != nil {
  5791  				return err
  5792  			}
  5793  			if skippy < 0 {
  5794  				return ErrInvalidLengthProcessorsSql
  5795  			}
  5796  			if (iNdEx + skippy) > l {
  5797  				return io.ErrUnexpectedEOF
  5798  			}
  5799  			iNdEx += skippy
  5800  		}
  5801  	}
  5802  
  5803  	if iNdEx > l {
  5804  		return io.ErrUnexpectedEOF
  5805  	}
  5806  	return nil
  5807  }
  5808  func (m *InvertedFiltererSpec) Unmarshal(dAtA []byte) error {
  5809  	l := len(dAtA)
  5810  	iNdEx := 0
  5811  	for iNdEx < l {
  5812  		preIndex := iNdEx
  5813  		var wire uint64
  5814  		for shift := uint(0); ; shift += 7 {
  5815  			if shift >= 64 {
  5816  				return ErrIntOverflowProcessorsSql
  5817  			}
  5818  			if iNdEx >= l {
  5819  				return io.ErrUnexpectedEOF
  5820  			}
  5821  			b := dAtA[iNdEx]
  5822  			iNdEx++
  5823  			wire |= (uint64(b) & 0x7F) << shift
  5824  			if b < 0x80 {
  5825  				break
  5826  			}
  5827  		}
  5828  		fieldNum := int32(wire >> 3)
  5829  		wireType := int(wire & 0x7)
  5830  		if wireType == 4 {
  5831  			return fmt.Errorf("proto: InvertedFiltererSpec: wiretype end group for non-group")
  5832  		}
  5833  		if fieldNum <= 0 {
  5834  			return fmt.Errorf("proto: InvertedFiltererSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  5835  		}
  5836  		switch fieldNum {
  5837  		case 1:
  5838  			if wireType != 2 {
  5839  				return fmt.Errorf("proto: wrong wireType = %d for field InvertedExpr", wireType)
  5840  			}
  5841  			var msglen int
  5842  			for shift := uint(0); ; shift += 7 {
  5843  				if shift >= 64 {
  5844  					return ErrIntOverflowProcessorsSql
  5845  				}
  5846  				if iNdEx >= l {
  5847  					return io.ErrUnexpectedEOF
  5848  				}
  5849  				b := dAtA[iNdEx]
  5850  				iNdEx++
  5851  				msglen |= (int(b) & 0x7F) << shift
  5852  				if b < 0x80 {
  5853  					break
  5854  				}
  5855  			}
  5856  			if msglen < 0 {
  5857  				return ErrInvalidLengthProcessorsSql
  5858  			}
  5859  			postIndex := iNdEx + msglen
  5860  			if postIndex > l {
  5861  				return io.ErrUnexpectedEOF
  5862  			}
  5863  			if err := m.InvertedExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5864  				return err
  5865  			}
  5866  			iNdEx = postIndex
  5867  		case 2:
  5868  			if wireType != 2 {
  5869  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  5870  			}
  5871  			var msglen int
  5872  			for shift := uint(0); ; shift += 7 {
  5873  				if shift >= 64 {
  5874  					return ErrIntOverflowProcessorsSql
  5875  				}
  5876  				if iNdEx >= l {
  5877  					return io.ErrUnexpectedEOF
  5878  				}
  5879  				b := dAtA[iNdEx]
  5880  				iNdEx++
  5881  				msglen |= (int(b) & 0x7F) << shift
  5882  				if b < 0x80 {
  5883  					break
  5884  				}
  5885  			}
  5886  			if msglen < 0 {
  5887  				return ErrInvalidLengthProcessorsSql
  5888  			}
  5889  			postIndex := iNdEx + msglen
  5890  			if postIndex > l {
  5891  				return io.ErrUnexpectedEOF
  5892  			}
  5893  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  5894  				return err
  5895  			}
  5896  			iNdEx = postIndex
  5897  		default:
  5898  			iNdEx = preIndex
  5899  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  5900  			if err != nil {
  5901  				return err
  5902  			}
  5903  			if skippy < 0 {
  5904  				return ErrInvalidLengthProcessorsSql
  5905  			}
  5906  			if (iNdEx + skippy) > l {
  5907  				return io.ErrUnexpectedEOF
  5908  			}
  5909  			iNdEx += skippy
  5910  		}
  5911  	}
  5912  
  5913  	if iNdEx > l {
  5914  		return io.ErrUnexpectedEOF
  5915  	}
  5916  	return nil
  5917  }
  5918  func (m *AggregatorSpec) Unmarshal(dAtA []byte) error {
  5919  	l := len(dAtA)
  5920  	iNdEx := 0
  5921  	for iNdEx < l {
  5922  		preIndex := iNdEx
  5923  		var wire uint64
  5924  		for shift := uint(0); ; shift += 7 {
  5925  			if shift >= 64 {
  5926  				return ErrIntOverflowProcessorsSql
  5927  			}
  5928  			if iNdEx >= l {
  5929  				return io.ErrUnexpectedEOF
  5930  			}
  5931  			b := dAtA[iNdEx]
  5932  			iNdEx++
  5933  			wire |= (uint64(b) & 0x7F) << shift
  5934  			if b < 0x80 {
  5935  				break
  5936  			}
  5937  		}
  5938  		fieldNum := int32(wire >> 3)
  5939  		wireType := int(wire & 0x7)
  5940  		if wireType == 4 {
  5941  			return fmt.Errorf("proto: AggregatorSpec: wiretype end group for non-group")
  5942  		}
  5943  		if fieldNum <= 0 {
  5944  			return fmt.Errorf("proto: AggregatorSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  5945  		}
  5946  		switch fieldNum {
  5947  		case 2:
  5948  			if wireType == 0 {
  5949  				var v uint32
  5950  				for shift := uint(0); ; shift += 7 {
  5951  					if shift >= 64 {
  5952  						return ErrIntOverflowProcessorsSql
  5953  					}
  5954  					if iNdEx >= l {
  5955  						return io.ErrUnexpectedEOF
  5956  					}
  5957  					b := dAtA[iNdEx]
  5958  					iNdEx++
  5959  					v |= (uint32(b) & 0x7F) << shift
  5960  					if b < 0x80 {
  5961  						break
  5962  					}
  5963  				}
  5964  				m.GroupCols = append(m.GroupCols, v)
  5965  			} else if wireType == 2 {
  5966  				var packedLen int
  5967  				for shift := uint(0); ; shift += 7 {
  5968  					if shift >= 64 {
  5969  						return ErrIntOverflowProcessorsSql
  5970  					}
  5971  					if iNdEx >= l {
  5972  						return io.ErrUnexpectedEOF
  5973  					}
  5974  					b := dAtA[iNdEx]
  5975  					iNdEx++
  5976  					packedLen |= (int(b) & 0x7F) << shift
  5977  					if b < 0x80 {
  5978  						break
  5979  					}
  5980  				}
  5981  				if packedLen < 0 {
  5982  					return ErrInvalidLengthProcessorsSql
  5983  				}
  5984  				postIndex := iNdEx + packedLen
  5985  				if postIndex > l {
  5986  					return io.ErrUnexpectedEOF
  5987  				}
  5988  				var elementCount int
  5989  				var count int
  5990  				for _, integer := range dAtA {
  5991  					if integer < 128 {
  5992  						count++
  5993  					}
  5994  				}
  5995  				elementCount = count
  5996  				if elementCount != 0 && len(m.GroupCols) == 0 {
  5997  					m.GroupCols = make([]uint32, 0, elementCount)
  5998  				}
  5999  				for iNdEx < postIndex {
  6000  					var v uint32
  6001  					for shift := uint(0); ; shift += 7 {
  6002  						if shift >= 64 {
  6003  							return ErrIntOverflowProcessorsSql
  6004  						}
  6005  						if iNdEx >= l {
  6006  							return io.ErrUnexpectedEOF
  6007  						}
  6008  						b := dAtA[iNdEx]
  6009  						iNdEx++
  6010  						v |= (uint32(b) & 0x7F) << shift
  6011  						if b < 0x80 {
  6012  							break
  6013  						}
  6014  					}
  6015  					m.GroupCols = append(m.GroupCols, v)
  6016  				}
  6017  			} else {
  6018  				return fmt.Errorf("proto: wrong wireType = %d for field GroupCols", wireType)
  6019  			}
  6020  		case 3:
  6021  			if wireType != 2 {
  6022  				return fmt.Errorf("proto: wrong wireType = %d for field Aggregations", wireType)
  6023  			}
  6024  			var msglen int
  6025  			for shift := uint(0); ; shift += 7 {
  6026  				if shift >= 64 {
  6027  					return ErrIntOverflowProcessorsSql
  6028  				}
  6029  				if iNdEx >= l {
  6030  					return io.ErrUnexpectedEOF
  6031  				}
  6032  				b := dAtA[iNdEx]
  6033  				iNdEx++
  6034  				msglen |= (int(b) & 0x7F) << shift
  6035  				if b < 0x80 {
  6036  					break
  6037  				}
  6038  			}
  6039  			if msglen < 0 {
  6040  				return ErrInvalidLengthProcessorsSql
  6041  			}
  6042  			postIndex := iNdEx + msglen
  6043  			if postIndex > l {
  6044  				return io.ErrUnexpectedEOF
  6045  			}
  6046  			m.Aggregations = append(m.Aggregations, AggregatorSpec_Aggregation{})
  6047  			if err := m.Aggregations[len(m.Aggregations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6048  				return err
  6049  			}
  6050  			iNdEx = postIndex
  6051  		case 4:
  6052  			if wireType == 0 {
  6053  				var v uint32
  6054  				for shift := uint(0); ; shift += 7 {
  6055  					if shift >= 64 {
  6056  						return ErrIntOverflowProcessorsSql
  6057  					}
  6058  					if iNdEx >= l {
  6059  						return io.ErrUnexpectedEOF
  6060  					}
  6061  					b := dAtA[iNdEx]
  6062  					iNdEx++
  6063  					v |= (uint32(b) & 0x7F) << shift
  6064  					if b < 0x80 {
  6065  						break
  6066  					}
  6067  				}
  6068  				m.OrderedGroupCols = append(m.OrderedGroupCols, v)
  6069  			} else if wireType == 2 {
  6070  				var packedLen int
  6071  				for shift := uint(0); ; shift += 7 {
  6072  					if shift >= 64 {
  6073  						return ErrIntOverflowProcessorsSql
  6074  					}
  6075  					if iNdEx >= l {
  6076  						return io.ErrUnexpectedEOF
  6077  					}
  6078  					b := dAtA[iNdEx]
  6079  					iNdEx++
  6080  					packedLen |= (int(b) & 0x7F) << shift
  6081  					if b < 0x80 {
  6082  						break
  6083  					}
  6084  				}
  6085  				if packedLen < 0 {
  6086  					return ErrInvalidLengthProcessorsSql
  6087  				}
  6088  				postIndex := iNdEx + packedLen
  6089  				if postIndex > l {
  6090  					return io.ErrUnexpectedEOF
  6091  				}
  6092  				var elementCount int
  6093  				var count int
  6094  				for _, integer := range dAtA {
  6095  					if integer < 128 {
  6096  						count++
  6097  					}
  6098  				}
  6099  				elementCount = count
  6100  				if elementCount != 0 && len(m.OrderedGroupCols) == 0 {
  6101  					m.OrderedGroupCols = make([]uint32, 0, elementCount)
  6102  				}
  6103  				for iNdEx < postIndex {
  6104  					var v uint32
  6105  					for shift := uint(0); ; shift += 7 {
  6106  						if shift >= 64 {
  6107  							return ErrIntOverflowProcessorsSql
  6108  						}
  6109  						if iNdEx >= l {
  6110  							return io.ErrUnexpectedEOF
  6111  						}
  6112  						b := dAtA[iNdEx]
  6113  						iNdEx++
  6114  						v |= (uint32(b) & 0x7F) << shift
  6115  						if b < 0x80 {
  6116  							break
  6117  						}
  6118  					}
  6119  					m.OrderedGroupCols = append(m.OrderedGroupCols, v)
  6120  				}
  6121  			} else {
  6122  				return fmt.Errorf("proto: wrong wireType = %d for field OrderedGroupCols", wireType)
  6123  			}
  6124  		case 5:
  6125  			if wireType != 0 {
  6126  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  6127  			}
  6128  			m.Type = 0
  6129  			for shift := uint(0); ; shift += 7 {
  6130  				if shift >= 64 {
  6131  					return ErrIntOverflowProcessorsSql
  6132  				}
  6133  				if iNdEx >= l {
  6134  					return io.ErrUnexpectedEOF
  6135  				}
  6136  				b := dAtA[iNdEx]
  6137  				iNdEx++
  6138  				m.Type |= (AggregatorSpec_Type(b) & 0x7F) << shift
  6139  				if b < 0x80 {
  6140  					break
  6141  				}
  6142  			}
  6143  		default:
  6144  			iNdEx = preIndex
  6145  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  6146  			if err != nil {
  6147  				return err
  6148  			}
  6149  			if skippy < 0 {
  6150  				return ErrInvalidLengthProcessorsSql
  6151  			}
  6152  			if (iNdEx + skippy) > l {
  6153  				return io.ErrUnexpectedEOF
  6154  			}
  6155  			iNdEx += skippy
  6156  		}
  6157  	}
  6158  
  6159  	if iNdEx > l {
  6160  		return io.ErrUnexpectedEOF
  6161  	}
  6162  	return nil
  6163  }
  6164  func (m *AggregatorSpec_Aggregation) Unmarshal(dAtA []byte) error {
  6165  	l := len(dAtA)
  6166  	iNdEx := 0
  6167  	for iNdEx < l {
  6168  		preIndex := iNdEx
  6169  		var wire uint64
  6170  		for shift := uint(0); ; shift += 7 {
  6171  			if shift >= 64 {
  6172  				return ErrIntOverflowProcessorsSql
  6173  			}
  6174  			if iNdEx >= l {
  6175  				return io.ErrUnexpectedEOF
  6176  			}
  6177  			b := dAtA[iNdEx]
  6178  			iNdEx++
  6179  			wire |= (uint64(b) & 0x7F) << shift
  6180  			if b < 0x80 {
  6181  				break
  6182  			}
  6183  		}
  6184  		fieldNum := int32(wire >> 3)
  6185  		wireType := int(wire & 0x7)
  6186  		if wireType == 4 {
  6187  			return fmt.Errorf("proto: Aggregation: wiretype end group for non-group")
  6188  		}
  6189  		if fieldNum <= 0 {
  6190  			return fmt.Errorf("proto: Aggregation: illegal tag %d (wire type %d)", fieldNum, wire)
  6191  		}
  6192  		switch fieldNum {
  6193  		case 1:
  6194  			if wireType != 0 {
  6195  				return fmt.Errorf("proto: wrong wireType = %d for field Func", wireType)
  6196  			}
  6197  			m.Func = 0
  6198  			for shift := uint(0); ; shift += 7 {
  6199  				if shift >= 64 {
  6200  					return ErrIntOverflowProcessorsSql
  6201  				}
  6202  				if iNdEx >= l {
  6203  					return io.ErrUnexpectedEOF
  6204  				}
  6205  				b := dAtA[iNdEx]
  6206  				iNdEx++
  6207  				m.Func |= (AggregatorSpec_Func(b) & 0x7F) << shift
  6208  				if b < 0x80 {
  6209  					break
  6210  				}
  6211  			}
  6212  		case 2:
  6213  			if wireType != 0 {
  6214  				return fmt.Errorf("proto: wrong wireType = %d for field Distinct", wireType)
  6215  			}
  6216  			var v int
  6217  			for shift := uint(0); ; shift += 7 {
  6218  				if shift >= 64 {
  6219  					return ErrIntOverflowProcessorsSql
  6220  				}
  6221  				if iNdEx >= l {
  6222  					return io.ErrUnexpectedEOF
  6223  				}
  6224  				b := dAtA[iNdEx]
  6225  				iNdEx++
  6226  				v |= (int(b) & 0x7F) << shift
  6227  				if b < 0x80 {
  6228  					break
  6229  				}
  6230  			}
  6231  			m.Distinct = bool(v != 0)
  6232  		case 4:
  6233  			if wireType != 0 {
  6234  				return fmt.Errorf("proto: wrong wireType = %d for field FilterColIdx", wireType)
  6235  			}
  6236  			var v uint32
  6237  			for shift := uint(0); ; shift += 7 {
  6238  				if shift >= 64 {
  6239  					return ErrIntOverflowProcessorsSql
  6240  				}
  6241  				if iNdEx >= l {
  6242  					return io.ErrUnexpectedEOF
  6243  				}
  6244  				b := dAtA[iNdEx]
  6245  				iNdEx++
  6246  				v |= (uint32(b) & 0x7F) << shift
  6247  				if b < 0x80 {
  6248  					break
  6249  				}
  6250  			}
  6251  			m.FilterColIdx = &v
  6252  		case 5:
  6253  			if wireType == 0 {
  6254  				var v uint32
  6255  				for shift := uint(0); ; shift += 7 {
  6256  					if shift >= 64 {
  6257  						return ErrIntOverflowProcessorsSql
  6258  					}
  6259  					if iNdEx >= l {
  6260  						return io.ErrUnexpectedEOF
  6261  					}
  6262  					b := dAtA[iNdEx]
  6263  					iNdEx++
  6264  					v |= (uint32(b) & 0x7F) << shift
  6265  					if b < 0x80 {
  6266  						break
  6267  					}
  6268  				}
  6269  				m.ColIdx = append(m.ColIdx, v)
  6270  			} else if wireType == 2 {
  6271  				var packedLen int
  6272  				for shift := uint(0); ; shift += 7 {
  6273  					if shift >= 64 {
  6274  						return ErrIntOverflowProcessorsSql
  6275  					}
  6276  					if iNdEx >= l {
  6277  						return io.ErrUnexpectedEOF
  6278  					}
  6279  					b := dAtA[iNdEx]
  6280  					iNdEx++
  6281  					packedLen |= (int(b) & 0x7F) << shift
  6282  					if b < 0x80 {
  6283  						break
  6284  					}
  6285  				}
  6286  				if packedLen < 0 {
  6287  					return ErrInvalidLengthProcessorsSql
  6288  				}
  6289  				postIndex := iNdEx + packedLen
  6290  				if postIndex > l {
  6291  					return io.ErrUnexpectedEOF
  6292  				}
  6293  				var elementCount int
  6294  				var count int
  6295  				for _, integer := range dAtA {
  6296  					if integer < 128 {
  6297  						count++
  6298  					}
  6299  				}
  6300  				elementCount = count
  6301  				if elementCount != 0 && len(m.ColIdx) == 0 {
  6302  					m.ColIdx = make([]uint32, 0, elementCount)
  6303  				}
  6304  				for iNdEx < postIndex {
  6305  					var v uint32
  6306  					for shift := uint(0); ; shift += 7 {
  6307  						if shift >= 64 {
  6308  							return ErrIntOverflowProcessorsSql
  6309  						}
  6310  						if iNdEx >= l {
  6311  							return io.ErrUnexpectedEOF
  6312  						}
  6313  						b := dAtA[iNdEx]
  6314  						iNdEx++
  6315  						v |= (uint32(b) & 0x7F) << shift
  6316  						if b < 0x80 {
  6317  							break
  6318  						}
  6319  					}
  6320  					m.ColIdx = append(m.ColIdx, v)
  6321  				}
  6322  			} else {
  6323  				return fmt.Errorf("proto: wrong wireType = %d for field ColIdx", wireType)
  6324  			}
  6325  		case 6:
  6326  			if wireType != 2 {
  6327  				return fmt.Errorf("proto: wrong wireType = %d for field Arguments", wireType)
  6328  			}
  6329  			var msglen int
  6330  			for shift := uint(0); ; shift += 7 {
  6331  				if shift >= 64 {
  6332  					return ErrIntOverflowProcessorsSql
  6333  				}
  6334  				if iNdEx >= l {
  6335  					return io.ErrUnexpectedEOF
  6336  				}
  6337  				b := dAtA[iNdEx]
  6338  				iNdEx++
  6339  				msglen |= (int(b) & 0x7F) << shift
  6340  				if b < 0x80 {
  6341  					break
  6342  				}
  6343  			}
  6344  			if msglen < 0 {
  6345  				return ErrInvalidLengthProcessorsSql
  6346  			}
  6347  			postIndex := iNdEx + msglen
  6348  			if postIndex > l {
  6349  				return io.ErrUnexpectedEOF
  6350  			}
  6351  			m.Arguments = append(m.Arguments, Expression{})
  6352  			if err := m.Arguments[len(m.Arguments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6353  				return err
  6354  			}
  6355  			iNdEx = postIndex
  6356  		default:
  6357  			iNdEx = preIndex
  6358  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  6359  			if err != nil {
  6360  				return err
  6361  			}
  6362  			if skippy < 0 {
  6363  				return ErrInvalidLengthProcessorsSql
  6364  			}
  6365  			if (iNdEx + skippy) > l {
  6366  				return io.ErrUnexpectedEOF
  6367  			}
  6368  			iNdEx += skippy
  6369  		}
  6370  	}
  6371  
  6372  	if iNdEx > l {
  6373  		return io.ErrUnexpectedEOF
  6374  	}
  6375  	return nil
  6376  }
  6377  func (m *InterleavedReaderJoinerSpec) Unmarshal(dAtA []byte) error {
  6378  	l := len(dAtA)
  6379  	iNdEx := 0
  6380  	for iNdEx < l {
  6381  		preIndex := iNdEx
  6382  		var wire uint64
  6383  		for shift := uint(0); ; shift += 7 {
  6384  			if shift >= 64 {
  6385  				return ErrIntOverflowProcessorsSql
  6386  			}
  6387  			if iNdEx >= l {
  6388  				return io.ErrUnexpectedEOF
  6389  			}
  6390  			b := dAtA[iNdEx]
  6391  			iNdEx++
  6392  			wire |= (uint64(b) & 0x7F) << shift
  6393  			if b < 0x80 {
  6394  				break
  6395  			}
  6396  		}
  6397  		fieldNum := int32(wire >> 3)
  6398  		wireType := int(wire & 0x7)
  6399  		if wireType == 4 {
  6400  			return fmt.Errorf("proto: InterleavedReaderJoinerSpec: wiretype end group for non-group")
  6401  		}
  6402  		if fieldNum <= 0 {
  6403  			return fmt.Errorf("proto: InterleavedReaderJoinerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  6404  		}
  6405  		switch fieldNum {
  6406  		case 1:
  6407  			if wireType != 2 {
  6408  				return fmt.Errorf("proto: wrong wireType = %d for field Tables", wireType)
  6409  			}
  6410  			var msglen int
  6411  			for shift := uint(0); ; shift += 7 {
  6412  				if shift >= 64 {
  6413  					return ErrIntOverflowProcessorsSql
  6414  				}
  6415  				if iNdEx >= l {
  6416  					return io.ErrUnexpectedEOF
  6417  				}
  6418  				b := dAtA[iNdEx]
  6419  				iNdEx++
  6420  				msglen |= (int(b) & 0x7F) << shift
  6421  				if b < 0x80 {
  6422  					break
  6423  				}
  6424  			}
  6425  			if msglen < 0 {
  6426  				return ErrInvalidLengthProcessorsSql
  6427  			}
  6428  			postIndex := iNdEx + msglen
  6429  			if postIndex > l {
  6430  				return io.ErrUnexpectedEOF
  6431  			}
  6432  			m.Tables = append(m.Tables, InterleavedReaderJoinerSpec_Table{})
  6433  			if err := m.Tables[len(m.Tables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6434  				return err
  6435  			}
  6436  			iNdEx = postIndex
  6437  		case 2:
  6438  			if wireType != 0 {
  6439  				return fmt.Errorf("proto: wrong wireType = %d for field Reverse", wireType)
  6440  			}
  6441  			var v int
  6442  			for shift := uint(0); ; shift += 7 {
  6443  				if shift >= 64 {
  6444  					return ErrIntOverflowProcessorsSql
  6445  				}
  6446  				if iNdEx >= l {
  6447  					return io.ErrUnexpectedEOF
  6448  				}
  6449  				b := dAtA[iNdEx]
  6450  				iNdEx++
  6451  				v |= (int(b) & 0x7F) << shift
  6452  				if b < 0x80 {
  6453  					break
  6454  				}
  6455  			}
  6456  			m.Reverse = bool(v != 0)
  6457  		case 3:
  6458  			if wireType != 0 {
  6459  				return fmt.Errorf("proto: wrong wireType = %d for field LimitHint", wireType)
  6460  			}
  6461  			m.LimitHint = 0
  6462  			for shift := uint(0); ; shift += 7 {
  6463  				if shift >= 64 {
  6464  					return ErrIntOverflowProcessorsSql
  6465  				}
  6466  				if iNdEx >= l {
  6467  					return io.ErrUnexpectedEOF
  6468  				}
  6469  				b := dAtA[iNdEx]
  6470  				iNdEx++
  6471  				m.LimitHint |= (int64(b) & 0x7F) << shift
  6472  				if b < 0x80 {
  6473  					break
  6474  				}
  6475  			}
  6476  		case 4:
  6477  			if wireType != 2 {
  6478  				return fmt.Errorf("proto: wrong wireType = %d for field OnExpr", wireType)
  6479  			}
  6480  			var msglen int
  6481  			for shift := uint(0); ; shift += 7 {
  6482  				if shift >= 64 {
  6483  					return ErrIntOverflowProcessorsSql
  6484  				}
  6485  				if iNdEx >= l {
  6486  					return io.ErrUnexpectedEOF
  6487  				}
  6488  				b := dAtA[iNdEx]
  6489  				iNdEx++
  6490  				msglen |= (int(b) & 0x7F) << shift
  6491  				if b < 0x80 {
  6492  					break
  6493  				}
  6494  			}
  6495  			if msglen < 0 {
  6496  				return ErrInvalidLengthProcessorsSql
  6497  			}
  6498  			postIndex := iNdEx + msglen
  6499  			if postIndex > l {
  6500  				return io.ErrUnexpectedEOF
  6501  			}
  6502  			if err := m.OnExpr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6503  				return err
  6504  			}
  6505  			iNdEx = postIndex
  6506  		case 5:
  6507  			if wireType != 0 {
  6508  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  6509  			}
  6510  			m.Type = 0
  6511  			for shift := uint(0); ; shift += 7 {
  6512  				if shift >= 64 {
  6513  					return ErrIntOverflowProcessorsSql
  6514  				}
  6515  				if iNdEx >= l {
  6516  					return io.ErrUnexpectedEOF
  6517  				}
  6518  				b := dAtA[iNdEx]
  6519  				iNdEx++
  6520  				m.Type |= (sqlbase.JoinType(b) & 0x7F) << shift
  6521  				if b < 0x80 {
  6522  					break
  6523  				}
  6524  			}
  6525  		case 6:
  6526  			if wireType != 0 {
  6527  				return fmt.Errorf("proto: wrong wireType = %d for field LockingStrength", wireType)
  6528  			}
  6529  			m.LockingStrength = 0
  6530  			for shift := uint(0); ; shift += 7 {
  6531  				if shift >= 64 {
  6532  					return ErrIntOverflowProcessorsSql
  6533  				}
  6534  				if iNdEx >= l {
  6535  					return io.ErrUnexpectedEOF
  6536  				}
  6537  				b := dAtA[iNdEx]
  6538  				iNdEx++
  6539  				m.LockingStrength |= (sqlbase.ScanLockingStrength(b) & 0x7F) << shift
  6540  				if b < 0x80 {
  6541  					break
  6542  				}
  6543  			}
  6544  		case 7:
  6545  			if wireType != 0 {
  6546  				return fmt.Errorf("proto: wrong wireType = %d for field LockingWaitPolicy", wireType)
  6547  			}
  6548  			m.LockingWaitPolicy = 0
  6549  			for shift := uint(0); ; shift += 7 {
  6550  				if shift >= 64 {
  6551  					return ErrIntOverflowProcessorsSql
  6552  				}
  6553  				if iNdEx >= l {
  6554  					return io.ErrUnexpectedEOF
  6555  				}
  6556  				b := dAtA[iNdEx]
  6557  				iNdEx++
  6558  				m.LockingWaitPolicy |= (sqlbase.ScanLockingWaitPolicy(b) & 0x7F) << shift
  6559  				if b < 0x80 {
  6560  					break
  6561  				}
  6562  			}
  6563  		default:
  6564  			iNdEx = preIndex
  6565  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  6566  			if err != nil {
  6567  				return err
  6568  			}
  6569  			if skippy < 0 {
  6570  				return ErrInvalidLengthProcessorsSql
  6571  			}
  6572  			if (iNdEx + skippy) > l {
  6573  				return io.ErrUnexpectedEOF
  6574  			}
  6575  			iNdEx += skippy
  6576  		}
  6577  	}
  6578  
  6579  	if iNdEx > l {
  6580  		return io.ErrUnexpectedEOF
  6581  	}
  6582  	return nil
  6583  }
  6584  func (m *InterleavedReaderJoinerSpec_Table) Unmarshal(dAtA []byte) error {
  6585  	l := len(dAtA)
  6586  	iNdEx := 0
  6587  	for iNdEx < l {
  6588  		preIndex := iNdEx
  6589  		var wire uint64
  6590  		for shift := uint(0); ; shift += 7 {
  6591  			if shift >= 64 {
  6592  				return ErrIntOverflowProcessorsSql
  6593  			}
  6594  			if iNdEx >= l {
  6595  				return io.ErrUnexpectedEOF
  6596  			}
  6597  			b := dAtA[iNdEx]
  6598  			iNdEx++
  6599  			wire |= (uint64(b) & 0x7F) << shift
  6600  			if b < 0x80 {
  6601  				break
  6602  			}
  6603  		}
  6604  		fieldNum := int32(wire >> 3)
  6605  		wireType := int(wire & 0x7)
  6606  		if wireType == 4 {
  6607  			return fmt.Errorf("proto: Table: wiretype end group for non-group")
  6608  		}
  6609  		if fieldNum <= 0 {
  6610  			return fmt.Errorf("proto: Table: illegal tag %d (wire type %d)", fieldNum, wire)
  6611  		}
  6612  		switch fieldNum {
  6613  		case 1:
  6614  			if wireType != 2 {
  6615  				return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType)
  6616  			}
  6617  			var msglen int
  6618  			for shift := uint(0); ; shift += 7 {
  6619  				if shift >= 64 {
  6620  					return ErrIntOverflowProcessorsSql
  6621  				}
  6622  				if iNdEx >= l {
  6623  					return io.ErrUnexpectedEOF
  6624  				}
  6625  				b := dAtA[iNdEx]
  6626  				iNdEx++
  6627  				msglen |= (int(b) & 0x7F) << shift
  6628  				if b < 0x80 {
  6629  					break
  6630  				}
  6631  			}
  6632  			if msglen < 0 {
  6633  				return ErrInvalidLengthProcessorsSql
  6634  			}
  6635  			postIndex := iNdEx + msglen
  6636  			if postIndex > l {
  6637  				return io.ErrUnexpectedEOF
  6638  			}
  6639  			if err := m.Desc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6640  				return err
  6641  			}
  6642  			iNdEx = postIndex
  6643  		case 2:
  6644  			if wireType != 0 {
  6645  				return fmt.Errorf("proto: wrong wireType = %d for field IndexIdx", wireType)
  6646  			}
  6647  			m.IndexIdx = 0
  6648  			for shift := uint(0); ; shift += 7 {
  6649  				if shift >= 64 {
  6650  					return ErrIntOverflowProcessorsSql
  6651  				}
  6652  				if iNdEx >= l {
  6653  					return io.ErrUnexpectedEOF
  6654  				}
  6655  				b := dAtA[iNdEx]
  6656  				iNdEx++
  6657  				m.IndexIdx |= (uint32(b) & 0x7F) << shift
  6658  				if b < 0x80 {
  6659  					break
  6660  				}
  6661  			}
  6662  		case 3:
  6663  			if wireType != 2 {
  6664  				return fmt.Errorf("proto: wrong wireType = %d for field Post", wireType)
  6665  			}
  6666  			var msglen int
  6667  			for shift := uint(0); ; shift += 7 {
  6668  				if shift >= 64 {
  6669  					return ErrIntOverflowProcessorsSql
  6670  				}
  6671  				if iNdEx >= l {
  6672  					return io.ErrUnexpectedEOF
  6673  				}
  6674  				b := dAtA[iNdEx]
  6675  				iNdEx++
  6676  				msglen |= (int(b) & 0x7F) << shift
  6677  				if b < 0x80 {
  6678  					break
  6679  				}
  6680  			}
  6681  			if msglen < 0 {
  6682  				return ErrInvalidLengthProcessorsSql
  6683  			}
  6684  			postIndex := iNdEx + msglen
  6685  			if postIndex > l {
  6686  				return io.ErrUnexpectedEOF
  6687  			}
  6688  			if err := m.Post.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6689  				return err
  6690  			}
  6691  			iNdEx = postIndex
  6692  		case 4:
  6693  			if wireType != 2 {
  6694  				return fmt.Errorf("proto: wrong wireType = %d for field Ordering", wireType)
  6695  			}
  6696  			var msglen int
  6697  			for shift := uint(0); ; shift += 7 {
  6698  				if shift >= 64 {
  6699  					return ErrIntOverflowProcessorsSql
  6700  				}
  6701  				if iNdEx >= l {
  6702  					return io.ErrUnexpectedEOF
  6703  				}
  6704  				b := dAtA[iNdEx]
  6705  				iNdEx++
  6706  				msglen |= (int(b) & 0x7F) << shift
  6707  				if b < 0x80 {
  6708  					break
  6709  				}
  6710  			}
  6711  			if msglen < 0 {
  6712  				return ErrInvalidLengthProcessorsSql
  6713  			}
  6714  			postIndex := iNdEx + msglen
  6715  			if postIndex > l {
  6716  				return io.ErrUnexpectedEOF
  6717  			}
  6718  			if err := m.Ordering.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6719  				return err
  6720  			}
  6721  			iNdEx = postIndex
  6722  		case 5:
  6723  			if wireType != 2 {
  6724  				return fmt.Errorf("proto: wrong wireType = %d for field Spans", wireType)
  6725  			}
  6726  			var msglen int
  6727  			for shift := uint(0); ; shift += 7 {
  6728  				if shift >= 64 {
  6729  					return ErrIntOverflowProcessorsSql
  6730  				}
  6731  				if iNdEx >= l {
  6732  					return io.ErrUnexpectedEOF
  6733  				}
  6734  				b := dAtA[iNdEx]
  6735  				iNdEx++
  6736  				msglen |= (int(b) & 0x7F) << shift
  6737  				if b < 0x80 {
  6738  					break
  6739  				}
  6740  			}
  6741  			if msglen < 0 {
  6742  				return ErrInvalidLengthProcessorsSql
  6743  			}
  6744  			postIndex := iNdEx + msglen
  6745  			if postIndex > l {
  6746  				return io.ErrUnexpectedEOF
  6747  			}
  6748  			m.Spans = append(m.Spans, TableReaderSpan{})
  6749  			if err := m.Spans[len(m.Spans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6750  				return err
  6751  			}
  6752  			iNdEx = postIndex
  6753  		default:
  6754  			iNdEx = preIndex
  6755  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  6756  			if err != nil {
  6757  				return err
  6758  			}
  6759  			if skippy < 0 {
  6760  				return ErrInvalidLengthProcessorsSql
  6761  			}
  6762  			if (iNdEx + skippy) > l {
  6763  				return io.ErrUnexpectedEOF
  6764  			}
  6765  			iNdEx += skippy
  6766  		}
  6767  	}
  6768  
  6769  	if iNdEx > l {
  6770  		return io.ErrUnexpectedEOF
  6771  	}
  6772  	return nil
  6773  }
  6774  func (m *ProjectSetSpec) Unmarshal(dAtA []byte) error {
  6775  	l := len(dAtA)
  6776  	iNdEx := 0
  6777  	for iNdEx < l {
  6778  		preIndex := iNdEx
  6779  		var wire uint64
  6780  		for shift := uint(0); ; shift += 7 {
  6781  			if shift >= 64 {
  6782  				return ErrIntOverflowProcessorsSql
  6783  			}
  6784  			if iNdEx >= l {
  6785  				return io.ErrUnexpectedEOF
  6786  			}
  6787  			b := dAtA[iNdEx]
  6788  			iNdEx++
  6789  			wire |= (uint64(b) & 0x7F) << shift
  6790  			if b < 0x80 {
  6791  				break
  6792  			}
  6793  		}
  6794  		fieldNum := int32(wire >> 3)
  6795  		wireType := int(wire & 0x7)
  6796  		if wireType == 4 {
  6797  			return fmt.Errorf("proto: ProjectSetSpec: wiretype end group for non-group")
  6798  		}
  6799  		if fieldNum <= 0 {
  6800  			return fmt.Errorf("proto: ProjectSetSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  6801  		}
  6802  		switch fieldNum {
  6803  		case 1:
  6804  			if wireType != 2 {
  6805  				return fmt.Errorf("proto: wrong wireType = %d for field Exprs", wireType)
  6806  			}
  6807  			var msglen int
  6808  			for shift := uint(0); ; shift += 7 {
  6809  				if shift >= 64 {
  6810  					return ErrIntOverflowProcessorsSql
  6811  				}
  6812  				if iNdEx >= l {
  6813  					return io.ErrUnexpectedEOF
  6814  				}
  6815  				b := dAtA[iNdEx]
  6816  				iNdEx++
  6817  				msglen |= (int(b) & 0x7F) << shift
  6818  				if b < 0x80 {
  6819  					break
  6820  				}
  6821  			}
  6822  			if msglen < 0 {
  6823  				return ErrInvalidLengthProcessorsSql
  6824  			}
  6825  			postIndex := iNdEx + msglen
  6826  			if postIndex > l {
  6827  				return io.ErrUnexpectedEOF
  6828  			}
  6829  			m.Exprs = append(m.Exprs, Expression{})
  6830  			if err := m.Exprs[len(m.Exprs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6831  				return err
  6832  			}
  6833  			iNdEx = postIndex
  6834  		case 2:
  6835  			if wireType != 2 {
  6836  				return fmt.Errorf("proto: wrong wireType = %d for field GeneratedColumns", wireType)
  6837  			}
  6838  			var msglen int
  6839  			for shift := uint(0); ; shift += 7 {
  6840  				if shift >= 64 {
  6841  					return ErrIntOverflowProcessorsSql
  6842  				}
  6843  				if iNdEx >= l {
  6844  					return io.ErrUnexpectedEOF
  6845  				}
  6846  				b := dAtA[iNdEx]
  6847  				iNdEx++
  6848  				msglen |= (int(b) & 0x7F) << shift
  6849  				if b < 0x80 {
  6850  					break
  6851  				}
  6852  			}
  6853  			if msglen < 0 {
  6854  				return ErrInvalidLengthProcessorsSql
  6855  			}
  6856  			postIndex := iNdEx + msglen
  6857  			if postIndex > l {
  6858  				return io.ErrUnexpectedEOF
  6859  			}
  6860  			m.GeneratedColumns = append(m.GeneratedColumns, &types.T{})
  6861  			if err := m.GeneratedColumns[len(m.GeneratedColumns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  6862  				return err
  6863  			}
  6864  			iNdEx = postIndex
  6865  		case 3:
  6866  			if wireType == 0 {
  6867  				var v uint32
  6868  				for shift := uint(0); ; shift += 7 {
  6869  					if shift >= 64 {
  6870  						return ErrIntOverflowProcessorsSql
  6871  					}
  6872  					if iNdEx >= l {
  6873  						return io.ErrUnexpectedEOF
  6874  					}
  6875  					b := dAtA[iNdEx]
  6876  					iNdEx++
  6877  					v |= (uint32(b) & 0x7F) << shift
  6878  					if b < 0x80 {
  6879  						break
  6880  					}
  6881  				}
  6882  				m.NumColsPerGen = append(m.NumColsPerGen, v)
  6883  			} else if wireType == 2 {
  6884  				var packedLen int
  6885  				for shift := uint(0); ; shift += 7 {
  6886  					if shift >= 64 {
  6887  						return ErrIntOverflowProcessorsSql
  6888  					}
  6889  					if iNdEx >= l {
  6890  						return io.ErrUnexpectedEOF
  6891  					}
  6892  					b := dAtA[iNdEx]
  6893  					iNdEx++
  6894  					packedLen |= (int(b) & 0x7F) << shift
  6895  					if b < 0x80 {
  6896  						break
  6897  					}
  6898  				}
  6899  				if packedLen < 0 {
  6900  					return ErrInvalidLengthProcessorsSql
  6901  				}
  6902  				postIndex := iNdEx + packedLen
  6903  				if postIndex > l {
  6904  					return io.ErrUnexpectedEOF
  6905  				}
  6906  				var elementCount int
  6907  				var count int
  6908  				for _, integer := range dAtA {
  6909  					if integer < 128 {
  6910  						count++
  6911  					}
  6912  				}
  6913  				elementCount = count
  6914  				if elementCount != 0 && len(m.NumColsPerGen) == 0 {
  6915  					m.NumColsPerGen = make([]uint32, 0, elementCount)
  6916  				}
  6917  				for iNdEx < postIndex {
  6918  					var v uint32
  6919  					for shift := uint(0); ; shift += 7 {
  6920  						if shift >= 64 {
  6921  							return ErrIntOverflowProcessorsSql
  6922  						}
  6923  						if iNdEx >= l {
  6924  							return io.ErrUnexpectedEOF
  6925  						}
  6926  						b := dAtA[iNdEx]
  6927  						iNdEx++
  6928  						v |= (uint32(b) & 0x7F) << shift
  6929  						if b < 0x80 {
  6930  							break
  6931  						}
  6932  					}
  6933  					m.NumColsPerGen = append(m.NumColsPerGen, v)
  6934  				}
  6935  			} else {
  6936  				return fmt.Errorf("proto: wrong wireType = %d for field NumColsPerGen", wireType)
  6937  			}
  6938  		default:
  6939  			iNdEx = preIndex
  6940  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  6941  			if err != nil {
  6942  				return err
  6943  			}
  6944  			if skippy < 0 {
  6945  				return ErrInvalidLengthProcessorsSql
  6946  			}
  6947  			if (iNdEx + skippy) > l {
  6948  				return io.ErrUnexpectedEOF
  6949  			}
  6950  			iNdEx += skippy
  6951  		}
  6952  	}
  6953  
  6954  	if iNdEx > l {
  6955  		return io.ErrUnexpectedEOF
  6956  	}
  6957  	return nil
  6958  }
  6959  func (m *WindowerSpec) Unmarshal(dAtA []byte) error {
  6960  	l := len(dAtA)
  6961  	iNdEx := 0
  6962  	for iNdEx < l {
  6963  		preIndex := iNdEx
  6964  		var wire uint64
  6965  		for shift := uint(0); ; shift += 7 {
  6966  			if shift >= 64 {
  6967  				return ErrIntOverflowProcessorsSql
  6968  			}
  6969  			if iNdEx >= l {
  6970  				return io.ErrUnexpectedEOF
  6971  			}
  6972  			b := dAtA[iNdEx]
  6973  			iNdEx++
  6974  			wire |= (uint64(b) & 0x7F) << shift
  6975  			if b < 0x80 {
  6976  				break
  6977  			}
  6978  		}
  6979  		fieldNum := int32(wire >> 3)
  6980  		wireType := int(wire & 0x7)
  6981  		if wireType == 4 {
  6982  			return fmt.Errorf("proto: WindowerSpec: wiretype end group for non-group")
  6983  		}
  6984  		if fieldNum <= 0 {
  6985  			return fmt.Errorf("proto: WindowerSpec: illegal tag %d (wire type %d)", fieldNum, wire)
  6986  		}
  6987  		switch fieldNum {
  6988  		case 1:
  6989  			if wireType == 0 {
  6990  				var v uint32
  6991  				for shift := uint(0); ; shift += 7 {
  6992  					if shift >= 64 {
  6993  						return ErrIntOverflowProcessorsSql
  6994  					}
  6995  					if iNdEx >= l {
  6996  						return io.ErrUnexpectedEOF
  6997  					}
  6998  					b := dAtA[iNdEx]
  6999  					iNdEx++
  7000  					v |= (uint32(b) & 0x7F) << shift
  7001  					if b < 0x80 {
  7002  						break
  7003  					}
  7004  				}
  7005  				m.PartitionBy = append(m.PartitionBy, v)
  7006  			} else if wireType == 2 {
  7007  				var packedLen int
  7008  				for shift := uint(0); ; shift += 7 {
  7009  					if shift >= 64 {
  7010  						return ErrIntOverflowProcessorsSql
  7011  					}
  7012  					if iNdEx >= l {
  7013  						return io.ErrUnexpectedEOF
  7014  					}
  7015  					b := dAtA[iNdEx]
  7016  					iNdEx++
  7017  					packedLen |= (int(b) & 0x7F) << shift
  7018  					if b < 0x80 {
  7019  						break
  7020  					}
  7021  				}
  7022  				if packedLen < 0 {
  7023  					return ErrInvalidLengthProcessorsSql
  7024  				}
  7025  				postIndex := iNdEx + packedLen
  7026  				if postIndex > l {
  7027  					return io.ErrUnexpectedEOF
  7028  				}
  7029  				var elementCount int
  7030  				var count int
  7031  				for _, integer := range dAtA {
  7032  					if integer < 128 {
  7033  						count++
  7034  					}
  7035  				}
  7036  				elementCount = count
  7037  				if elementCount != 0 && len(m.PartitionBy) == 0 {
  7038  					m.PartitionBy = make([]uint32, 0, elementCount)
  7039  				}
  7040  				for iNdEx < postIndex {
  7041  					var v uint32
  7042  					for shift := uint(0); ; shift += 7 {
  7043  						if shift >= 64 {
  7044  							return ErrIntOverflowProcessorsSql
  7045  						}
  7046  						if iNdEx >= l {
  7047  							return io.ErrUnexpectedEOF
  7048  						}
  7049  						b := dAtA[iNdEx]
  7050  						iNdEx++
  7051  						v |= (uint32(b) & 0x7F) << shift
  7052  						if b < 0x80 {
  7053  							break
  7054  						}
  7055  					}
  7056  					m.PartitionBy = append(m.PartitionBy, v)
  7057  				}
  7058  			} else {
  7059  				return fmt.Errorf("proto: wrong wireType = %d for field PartitionBy", wireType)
  7060  			}
  7061  		case 2:
  7062  			if wireType != 2 {
  7063  				return fmt.Errorf("proto: wrong wireType = %d for field WindowFns", wireType)
  7064  			}
  7065  			var msglen int
  7066  			for shift := uint(0); ; shift += 7 {
  7067  				if shift >= 64 {
  7068  					return ErrIntOverflowProcessorsSql
  7069  				}
  7070  				if iNdEx >= l {
  7071  					return io.ErrUnexpectedEOF
  7072  				}
  7073  				b := dAtA[iNdEx]
  7074  				iNdEx++
  7075  				msglen |= (int(b) & 0x7F) << shift
  7076  				if b < 0x80 {
  7077  					break
  7078  				}
  7079  			}
  7080  			if msglen < 0 {
  7081  				return ErrInvalidLengthProcessorsSql
  7082  			}
  7083  			postIndex := iNdEx + msglen
  7084  			if postIndex > l {
  7085  				return io.ErrUnexpectedEOF
  7086  			}
  7087  			m.WindowFns = append(m.WindowFns, WindowerSpec_WindowFn{})
  7088  			if err := m.WindowFns[len(m.WindowFns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7089  				return err
  7090  			}
  7091  			iNdEx = postIndex
  7092  		default:
  7093  			iNdEx = preIndex
  7094  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7095  			if err != nil {
  7096  				return err
  7097  			}
  7098  			if skippy < 0 {
  7099  				return ErrInvalidLengthProcessorsSql
  7100  			}
  7101  			if (iNdEx + skippy) > l {
  7102  				return io.ErrUnexpectedEOF
  7103  			}
  7104  			iNdEx += skippy
  7105  		}
  7106  	}
  7107  
  7108  	if iNdEx > l {
  7109  		return io.ErrUnexpectedEOF
  7110  	}
  7111  	return nil
  7112  }
  7113  func (m *WindowerSpec_Func) Unmarshal(dAtA []byte) error {
  7114  	l := len(dAtA)
  7115  	iNdEx := 0
  7116  	for iNdEx < l {
  7117  		preIndex := iNdEx
  7118  		var wire uint64
  7119  		for shift := uint(0); ; shift += 7 {
  7120  			if shift >= 64 {
  7121  				return ErrIntOverflowProcessorsSql
  7122  			}
  7123  			if iNdEx >= l {
  7124  				return io.ErrUnexpectedEOF
  7125  			}
  7126  			b := dAtA[iNdEx]
  7127  			iNdEx++
  7128  			wire |= (uint64(b) & 0x7F) << shift
  7129  			if b < 0x80 {
  7130  				break
  7131  			}
  7132  		}
  7133  		fieldNum := int32(wire >> 3)
  7134  		wireType := int(wire & 0x7)
  7135  		if wireType == 4 {
  7136  			return fmt.Errorf("proto: Func: wiretype end group for non-group")
  7137  		}
  7138  		if fieldNum <= 0 {
  7139  			return fmt.Errorf("proto: Func: illegal tag %d (wire type %d)", fieldNum, wire)
  7140  		}
  7141  		switch fieldNum {
  7142  		case 1:
  7143  			if wireType != 0 {
  7144  				return fmt.Errorf("proto: wrong wireType = %d for field AggregateFunc", wireType)
  7145  			}
  7146  			var v AggregatorSpec_Func
  7147  			for shift := uint(0); ; shift += 7 {
  7148  				if shift >= 64 {
  7149  					return ErrIntOverflowProcessorsSql
  7150  				}
  7151  				if iNdEx >= l {
  7152  					return io.ErrUnexpectedEOF
  7153  				}
  7154  				b := dAtA[iNdEx]
  7155  				iNdEx++
  7156  				v |= (AggregatorSpec_Func(b) & 0x7F) << shift
  7157  				if b < 0x80 {
  7158  					break
  7159  				}
  7160  			}
  7161  			m.AggregateFunc = &v
  7162  		case 2:
  7163  			if wireType != 0 {
  7164  				return fmt.Errorf("proto: wrong wireType = %d for field WindowFunc", wireType)
  7165  			}
  7166  			var v WindowerSpec_WindowFunc
  7167  			for shift := uint(0); ; shift += 7 {
  7168  				if shift >= 64 {
  7169  					return ErrIntOverflowProcessorsSql
  7170  				}
  7171  				if iNdEx >= l {
  7172  					return io.ErrUnexpectedEOF
  7173  				}
  7174  				b := dAtA[iNdEx]
  7175  				iNdEx++
  7176  				v |= (WindowerSpec_WindowFunc(b) & 0x7F) << shift
  7177  				if b < 0x80 {
  7178  					break
  7179  				}
  7180  			}
  7181  			m.WindowFunc = &v
  7182  		default:
  7183  			iNdEx = preIndex
  7184  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7185  			if err != nil {
  7186  				return err
  7187  			}
  7188  			if skippy < 0 {
  7189  				return ErrInvalidLengthProcessorsSql
  7190  			}
  7191  			if (iNdEx + skippy) > l {
  7192  				return io.ErrUnexpectedEOF
  7193  			}
  7194  			iNdEx += skippy
  7195  		}
  7196  	}
  7197  
  7198  	if iNdEx > l {
  7199  		return io.ErrUnexpectedEOF
  7200  	}
  7201  	return nil
  7202  }
  7203  func (m *WindowerSpec_Frame) Unmarshal(dAtA []byte) error {
  7204  	l := len(dAtA)
  7205  	iNdEx := 0
  7206  	for iNdEx < l {
  7207  		preIndex := iNdEx
  7208  		var wire uint64
  7209  		for shift := uint(0); ; shift += 7 {
  7210  			if shift >= 64 {
  7211  				return ErrIntOverflowProcessorsSql
  7212  			}
  7213  			if iNdEx >= l {
  7214  				return io.ErrUnexpectedEOF
  7215  			}
  7216  			b := dAtA[iNdEx]
  7217  			iNdEx++
  7218  			wire |= (uint64(b) & 0x7F) << shift
  7219  			if b < 0x80 {
  7220  				break
  7221  			}
  7222  		}
  7223  		fieldNum := int32(wire >> 3)
  7224  		wireType := int(wire & 0x7)
  7225  		if wireType == 4 {
  7226  			return fmt.Errorf("proto: Frame: wiretype end group for non-group")
  7227  		}
  7228  		if fieldNum <= 0 {
  7229  			return fmt.Errorf("proto: Frame: illegal tag %d (wire type %d)", fieldNum, wire)
  7230  		}
  7231  		switch fieldNum {
  7232  		case 1:
  7233  			if wireType != 0 {
  7234  				return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType)
  7235  			}
  7236  			m.Mode = 0
  7237  			for shift := uint(0); ; shift += 7 {
  7238  				if shift >= 64 {
  7239  					return ErrIntOverflowProcessorsSql
  7240  				}
  7241  				if iNdEx >= l {
  7242  					return io.ErrUnexpectedEOF
  7243  				}
  7244  				b := dAtA[iNdEx]
  7245  				iNdEx++
  7246  				m.Mode |= (WindowerSpec_Frame_Mode(b) & 0x7F) << shift
  7247  				if b < 0x80 {
  7248  					break
  7249  				}
  7250  			}
  7251  		case 2:
  7252  			if wireType != 2 {
  7253  				return fmt.Errorf("proto: wrong wireType = %d for field Bounds", wireType)
  7254  			}
  7255  			var msglen int
  7256  			for shift := uint(0); ; shift += 7 {
  7257  				if shift >= 64 {
  7258  					return ErrIntOverflowProcessorsSql
  7259  				}
  7260  				if iNdEx >= l {
  7261  					return io.ErrUnexpectedEOF
  7262  				}
  7263  				b := dAtA[iNdEx]
  7264  				iNdEx++
  7265  				msglen |= (int(b) & 0x7F) << shift
  7266  				if b < 0x80 {
  7267  					break
  7268  				}
  7269  			}
  7270  			if msglen < 0 {
  7271  				return ErrInvalidLengthProcessorsSql
  7272  			}
  7273  			postIndex := iNdEx + msglen
  7274  			if postIndex > l {
  7275  				return io.ErrUnexpectedEOF
  7276  			}
  7277  			if err := m.Bounds.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7278  				return err
  7279  			}
  7280  			iNdEx = postIndex
  7281  		case 3:
  7282  			if wireType != 0 {
  7283  				return fmt.Errorf("proto: wrong wireType = %d for field Exclusion", wireType)
  7284  			}
  7285  			m.Exclusion = 0
  7286  			for shift := uint(0); ; shift += 7 {
  7287  				if shift >= 64 {
  7288  					return ErrIntOverflowProcessorsSql
  7289  				}
  7290  				if iNdEx >= l {
  7291  					return io.ErrUnexpectedEOF
  7292  				}
  7293  				b := dAtA[iNdEx]
  7294  				iNdEx++
  7295  				m.Exclusion |= (WindowerSpec_Frame_Exclusion(b) & 0x7F) << shift
  7296  				if b < 0x80 {
  7297  					break
  7298  				}
  7299  			}
  7300  		default:
  7301  			iNdEx = preIndex
  7302  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7303  			if err != nil {
  7304  				return err
  7305  			}
  7306  			if skippy < 0 {
  7307  				return ErrInvalidLengthProcessorsSql
  7308  			}
  7309  			if (iNdEx + skippy) > l {
  7310  				return io.ErrUnexpectedEOF
  7311  			}
  7312  			iNdEx += skippy
  7313  		}
  7314  	}
  7315  
  7316  	if iNdEx > l {
  7317  		return io.ErrUnexpectedEOF
  7318  	}
  7319  	return nil
  7320  }
  7321  func (m *WindowerSpec_Frame_Bound) Unmarshal(dAtA []byte) error {
  7322  	l := len(dAtA)
  7323  	iNdEx := 0
  7324  	for iNdEx < l {
  7325  		preIndex := iNdEx
  7326  		var wire uint64
  7327  		for shift := uint(0); ; shift += 7 {
  7328  			if shift >= 64 {
  7329  				return ErrIntOverflowProcessorsSql
  7330  			}
  7331  			if iNdEx >= l {
  7332  				return io.ErrUnexpectedEOF
  7333  			}
  7334  			b := dAtA[iNdEx]
  7335  			iNdEx++
  7336  			wire |= (uint64(b) & 0x7F) << shift
  7337  			if b < 0x80 {
  7338  				break
  7339  			}
  7340  		}
  7341  		fieldNum := int32(wire >> 3)
  7342  		wireType := int(wire & 0x7)
  7343  		if wireType == 4 {
  7344  			return fmt.Errorf("proto: Bound: wiretype end group for non-group")
  7345  		}
  7346  		if fieldNum <= 0 {
  7347  			return fmt.Errorf("proto: Bound: illegal tag %d (wire type %d)", fieldNum, wire)
  7348  		}
  7349  		switch fieldNum {
  7350  		case 1:
  7351  			if wireType != 0 {
  7352  				return fmt.Errorf("proto: wrong wireType = %d for field BoundType", wireType)
  7353  			}
  7354  			m.BoundType = 0
  7355  			for shift := uint(0); ; shift += 7 {
  7356  				if shift >= 64 {
  7357  					return ErrIntOverflowProcessorsSql
  7358  				}
  7359  				if iNdEx >= l {
  7360  					return io.ErrUnexpectedEOF
  7361  				}
  7362  				b := dAtA[iNdEx]
  7363  				iNdEx++
  7364  				m.BoundType |= (WindowerSpec_Frame_BoundType(b) & 0x7F) << shift
  7365  				if b < 0x80 {
  7366  					break
  7367  				}
  7368  			}
  7369  		case 2:
  7370  			if wireType != 0 {
  7371  				return fmt.Errorf("proto: wrong wireType = %d for field IntOffset", wireType)
  7372  			}
  7373  			m.IntOffset = 0
  7374  			for shift := uint(0); ; shift += 7 {
  7375  				if shift >= 64 {
  7376  					return ErrIntOverflowProcessorsSql
  7377  				}
  7378  				if iNdEx >= l {
  7379  					return io.ErrUnexpectedEOF
  7380  				}
  7381  				b := dAtA[iNdEx]
  7382  				iNdEx++
  7383  				m.IntOffset |= (uint64(b) & 0x7F) << shift
  7384  				if b < 0x80 {
  7385  					break
  7386  				}
  7387  			}
  7388  		case 3:
  7389  			if wireType != 2 {
  7390  				return fmt.Errorf("proto: wrong wireType = %d for field TypedOffset", wireType)
  7391  			}
  7392  			var byteLen int
  7393  			for shift := uint(0); ; shift += 7 {
  7394  				if shift >= 64 {
  7395  					return ErrIntOverflowProcessorsSql
  7396  				}
  7397  				if iNdEx >= l {
  7398  					return io.ErrUnexpectedEOF
  7399  				}
  7400  				b := dAtA[iNdEx]
  7401  				iNdEx++
  7402  				byteLen |= (int(b) & 0x7F) << shift
  7403  				if b < 0x80 {
  7404  					break
  7405  				}
  7406  			}
  7407  			if byteLen < 0 {
  7408  				return ErrInvalidLengthProcessorsSql
  7409  			}
  7410  			postIndex := iNdEx + byteLen
  7411  			if postIndex > l {
  7412  				return io.ErrUnexpectedEOF
  7413  			}
  7414  			m.TypedOffset = append(m.TypedOffset[:0], dAtA[iNdEx:postIndex]...)
  7415  			if m.TypedOffset == nil {
  7416  				m.TypedOffset = []byte{}
  7417  			}
  7418  			iNdEx = postIndex
  7419  		case 4:
  7420  			if wireType != 2 {
  7421  				return fmt.Errorf("proto: wrong wireType = %d for field OffsetType", wireType)
  7422  			}
  7423  			var msglen int
  7424  			for shift := uint(0); ; shift += 7 {
  7425  				if shift >= 64 {
  7426  					return ErrIntOverflowProcessorsSql
  7427  				}
  7428  				if iNdEx >= l {
  7429  					return io.ErrUnexpectedEOF
  7430  				}
  7431  				b := dAtA[iNdEx]
  7432  				iNdEx++
  7433  				msglen |= (int(b) & 0x7F) << shift
  7434  				if b < 0x80 {
  7435  					break
  7436  				}
  7437  			}
  7438  			if msglen < 0 {
  7439  				return ErrInvalidLengthProcessorsSql
  7440  			}
  7441  			postIndex := iNdEx + msglen
  7442  			if postIndex > l {
  7443  				return io.ErrUnexpectedEOF
  7444  			}
  7445  			if err := m.OffsetType.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7446  				return err
  7447  			}
  7448  			iNdEx = postIndex
  7449  		default:
  7450  			iNdEx = preIndex
  7451  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7452  			if err != nil {
  7453  				return err
  7454  			}
  7455  			if skippy < 0 {
  7456  				return ErrInvalidLengthProcessorsSql
  7457  			}
  7458  			if (iNdEx + skippy) > l {
  7459  				return io.ErrUnexpectedEOF
  7460  			}
  7461  			iNdEx += skippy
  7462  		}
  7463  	}
  7464  
  7465  	if iNdEx > l {
  7466  		return io.ErrUnexpectedEOF
  7467  	}
  7468  	return nil
  7469  }
  7470  func (m *WindowerSpec_Frame_Bounds) Unmarshal(dAtA []byte) error {
  7471  	l := len(dAtA)
  7472  	iNdEx := 0
  7473  	for iNdEx < l {
  7474  		preIndex := iNdEx
  7475  		var wire uint64
  7476  		for shift := uint(0); ; shift += 7 {
  7477  			if shift >= 64 {
  7478  				return ErrIntOverflowProcessorsSql
  7479  			}
  7480  			if iNdEx >= l {
  7481  				return io.ErrUnexpectedEOF
  7482  			}
  7483  			b := dAtA[iNdEx]
  7484  			iNdEx++
  7485  			wire |= (uint64(b) & 0x7F) << shift
  7486  			if b < 0x80 {
  7487  				break
  7488  			}
  7489  		}
  7490  		fieldNum := int32(wire >> 3)
  7491  		wireType := int(wire & 0x7)
  7492  		if wireType == 4 {
  7493  			return fmt.Errorf("proto: Bounds: wiretype end group for non-group")
  7494  		}
  7495  		if fieldNum <= 0 {
  7496  			return fmt.Errorf("proto: Bounds: illegal tag %d (wire type %d)", fieldNum, wire)
  7497  		}
  7498  		switch fieldNum {
  7499  		case 1:
  7500  			if wireType != 2 {
  7501  				return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType)
  7502  			}
  7503  			var msglen int
  7504  			for shift := uint(0); ; shift += 7 {
  7505  				if shift >= 64 {
  7506  					return ErrIntOverflowProcessorsSql
  7507  				}
  7508  				if iNdEx >= l {
  7509  					return io.ErrUnexpectedEOF
  7510  				}
  7511  				b := dAtA[iNdEx]
  7512  				iNdEx++
  7513  				msglen |= (int(b) & 0x7F) << shift
  7514  				if b < 0x80 {
  7515  					break
  7516  				}
  7517  			}
  7518  			if msglen < 0 {
  7519  				return ErrInvalidLengthProcessorsSql
  7520  			}
  7521  			postIndex := iNdEx + msglen
  7522  			if postIndex > l {
  7523  				return io.ErrUnexpectedEOF
  7524  			}
  7525  			if err := m.Start.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7526  				return err
  7527  			}
  7528  			iNdEx = postIndex
  7529  		case 2:
  7530  			if wireType != 2 {
  7531  				return fmt.Errorf("proto: wrong wireType = %d for field End", wireType)
  7532  			}
  7533  			var msglen int
  7534  			for shift := uint(0); ; shift += 7 {
  7535  				if shift >= 64 {
  7536  					return ErrIntOverflowProcessorsSql
  7537  				}
  7538  				if iNdEx >= l {
  7539  					return io.ErrUnexpectedEOF
  7540  				}
  7541  				b := dAtA[iNdEx]
  7542  				iNdEx++
  7543  				msglen |= (int(b) & 0x7F) << shift
  7544  				if b < 0x80 {
  7545  					break
  7546  				}
  7547  			}
  7548  			if msglen < 0 {
  7549  				return ErrInvalidLengthProcessorsSql
  7550  			}
  7551  			postIndex := iNdEx + msglen
  7552  			if postIndex > l {
  7553  				return io.ErrUnexpectedEOF
  7554  			}
  7555  			if m.End == nil {
  7556  				m.End = &WindowerSpec_Frame_Bound{}
  7557  			}
  7558  			if err := m.End.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7559  				return err
  7560  			}
  7561  			iNdEx = postIndex
  7562  		default:
  7563  			iNdEx = preIndex
  7564  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7565  			if err != nil {
  7566  				return err
  7567  			}
  7568  			if skippy < 0 {
  7569  				return ErrInvalidLengthProcessorsSql
  7570  			}
  7571  			if (iNdEx + skippy) > l {
  7572  				return io.ErrUnexpectedEOF
  7573  			}
  7574  			iNdEx += skippy
  7575  		}
  7576  	}
  7577  
  7578  	if iNdEx > l {
  7579  		return io.ErrUnexpectedEOF
  7580  	}
  7581  	return nil
  7582  }
  7583  func (m *WindowerSpec_WindowFn) Unmarshal(dAtA []byte) error {
  7584  	l := len(dAtA)
  7585  	iNdEx := 0
  7586  	for iNdEx < l {
  7587  		preIndex := iNdEx
  7588  		var wire uint64
  7589  		for shift := uint(0); ; shift += 7 {
  7590  			if shift >= 64 {
  7591  				return ErrIntOverflowProcessorsSql
  7592  			}
  7593  			if iNdEx >= l {
  7594  				return io.ErrUnexpectedEOF
  7595  			}
  7596  			b := dAtA[iNdEx]
  7597  			iNdEx++
  7598  			wire |= (uint64(b) & 0x7F) << shift
  7599  			if b < 0x80 {
  7600  				break
  7601  			}
  7602  		}
  7603  		fieldNum := int32(wire >> 3)
  7604  		wireType := int(wire & 0x7)
  7605  		if wireType == 4 {
  7606  			return fmt.Errorf("proto: WindowFn: wiretype end group for non-group")
  7607  		}
  7608  		if fieldNum <= 0 {
  7609  			return fmt.Errorf("proto: WindowFn: illegal tag %d (wire type %d)", fieldNum, wire)
  7610  		}
  7611  		switch fieldNum {
  7612  		case 1:
  7613  			if wireType != 2 {
  7614  				return fmt.Errorf("proto: wrong wireType = %d for field Func", wireType)
  7615  			}
  7616  			var msglen int
  7617  			for shift := uint(0); ; shift += 7 {
  7618  				if shift >= 64 {
  7619  					return ErrIntOverflowProcessorsSql
  7620  				}
  7621  				if iNdEx >= l {
  7622  					return io.ErrUnexpectedEOF
  7623  				}
  7624  				b := dAtA[iNdEx]
  7625  				iNdEx++
  7626  				msglen |= (int(b) & 0x7F) << shift
  7627  				if b < 0x80 {
  7628  					break
  7629  				}
  7630  			}
  7631  			if msglen < 0 {
  7632  				return ErrInvalidLengthProcessorsSql
  7633  			}
  7634  			postIndex := iNdEx + msglen
  7635  			if postIndex > l {
  7636  				return io.ErrUnexpectedEOF
  7637  			}
  7638  			if err := m.Func.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7639  				return err
  7640  			}
  7641  			iNdEx = postIndex
  7642  		case 4:
  7643  			if wireType != 2 {
  7644  				return fmt.Errorf("proto: wrong wireType = %d for field Ordering", wireType)
  7645  			}
  7646  			var msglen int
  7647  			for shift := uint(0); ; shift += 7 {
  7648  				if shift >= 64 {
  7649  					return ErrIntOverflowProcessorsSql
  7650  				}
  7651  				if iNdEx >= l {
  7652  					return io.ErrUnexpectedEOF
  7653  				}
  7654  				b := dAtA[iNdEx]
  7655  				iNdEx++
  7656  				msglen |= (int(b) & 0x7F) << shift
  7657  				if b < 0x80 {
  7658  					break
  7659  				}
  7660  			}
  7661  			if msglen < 0 {
  7662  				return ErrInvalidLengthProcessorsSql
  7663  			}
  7664  			postIndex := iNdEx + msglen
  7665  			if postIndex > l {
  7666  				return io.ErrUnexpectedEOF
  7667  			}
  7668  			if err := m.Ordering.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7669  				return err
  7670  			}
  7671  			iNdEx = postIndex
  7672  		case 5:
  7673  			if wireType != 2 {
  7674  				return fmt.Errorf("proto: wrong wireType = %d for field Frame", wireType)
  7675  			}
  7676  			var msglen int
  7677  			for shift := uint(0); ; shift += 7 {
  7678  				if shift >= 64 {
  7679  					return ErrIntOverflowProcessorsSql
  7680  				}
  7681  				if iNdEx >= l {
  7682  					return io.ErrUnexpectedEOF
  7683  				}
  7684  				b := dAtA[iNdEx]
  7685  				iNdEx++
  7686  				msglen |= (int(b) & 0x7F) << shift
  7687  				if b < 0x80 {
  7688  					break
  7689  				}
  7690  			}
  7691  			if msglen < 0 {
  7692  				return ErrInvalidLengthProcessorsSql
  7693  			}
  7694  			postIndex := iNdEx + msglen
  7695  			if postIndex > l {
  7696  				return io.ErrUnexpectedEOF
  7697  			}
  7698  			if m.Frame == nil {
  7699  				m.Frame = &WindowerSpec_Frame{}
  7700  			}
  7701  			if err := m.Frame.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  7702  				return err
  7703  			}
  7704  			iNdEx = postIndex
  7705  		case 6:
  7706  			if wireType != 0 {
  7707  				return fmt.Errorf("proto: wrong wireType = %d for field FilterColIdx", wireType)
  7708  			}
  7709  			m.FilterColIdx = 0
  7710  			for shift := uint(0); ; shift += 7 {
  7711  				if shift >= 64 {
  7712  					return ErrIntOverflowProcessorsSql
  7713  				}
  7714  				if iNdEx >= l {
  7715  					return io.ErrUnexpectedEOF
  7716  				}
  7717  				b := dAtA[iNdEx]
  7718  				iNdEx++
  7719  				m.FilterColIdx |= (int32(b) & 0x7F) << shift
  7720  				if b < 0x80 {
  7721  					break
  7722  				}
  7723  			}
  7724  		case 7:
  7725  			if wireType == 0 {
  7726  				var v uint32
  7727  				for shift := uint(0); ; shift += 7 {
  7728  					if shift >= 64 {
  7729  						return ErrIntOverflowProcessorsSql
  7730  					}
  7731  					if iNdEx >= l {
  7732  						return io.ErrUnexpectedEOF
  7733  					}
  7734  					b := dAtA[iNdEx]
  7735  					iNdEx++
  7736  					v |= (uint32(b) & 0x7F) << shift
  7737  					if b < 0x80 {
  7738  						break
  7739  					}
  7740  				}
  7741  				m.ArgsIdxs = append(m.ArgsIdxs, v)
  7742  			} else if wireType == 2 {
  7743  				var packedLen int
  7744  				for shift := uint(0); ; shift += 7 {
  7745  					if shift >= 64 {
  7746  						return ErrIntOverflowProcessorsSql
  7747  					}
  7748  					if iNdEx >= l {
  7749  						return io.ErrUnexpectedEOF
  7750  					}
  7751  					b := dAtA[iNdEx]
  7752  					iNdEx++
  7753  					packedLen |= (int(b) & 0x7F) << shift
  7754  					if b < 0x80 {
  7755  						break
  7756  					}
  7757  				}
  7758  				if packedLen < 0 {
  7759  					return ErrInvalidLengthProcessorsSql
  7760  				}
  7761  				postIndex := iNdEx + packedLen
  7762  				if postIndex > l {
  7763  					return io.ErrUnexpectedEOF
  7764  				}
  7765  				var elementCount int
  7766  				var count int
  7767  				for _, integer := range dAtA {
  7768  					if integer < 128 {
  7769  						count++
  7770  					}
  7771  				}
  7772  				elementCount = count
  7773  				if elementCount != 0 && len(m.ArgsIdxs) == 0 {
  7774  					m.ArgsIdxs = make([]uint32, 0, elementCount)
  7775  				}
  7776  				for iNdEx < postIndex {
  7777  					var v uint32
  7778  					for shift := uint(0); ; shift += 7 {
  7779  						if shift >= 64 {
  7780  							return ErrIntOverflowProcessorsSql
  7781  						}
  7782  						if iNdEx >= l {
  7783  							return io.ErrUnexpectedEOF
  7784  						}
  7785  						b := dAtA[iNdEx]
  7786  						iNdEx++
  7787  						v |= (uint32(b) & 0x7F) << shift
  7788  						if b < 0x80 {
  7789  							break
  7790  						}
  7791  					}
  7792  					m.ArgsIdxs = append(m.ArgsIdxs, v)
  7793  				}
  7794  			} else {
  7795  				return fmt.Errorf("proto: wrong wireType = %d for field ArgsIdxs", wireType)
  7796  			}
  7797  		case 8:
  7798  			if wireType != 0 {
  7799  				return fmt.Errorf("proto: wrong wireType = %d for field OutputColIdx", wireType)
  7800  			}
  7801  			m.OutputColIdx = 0
  7802  			for shift := uint(0); ; shift += 7 {
  7803  				if shift >= 64 {
  7804  					return ErrIntOverflowProcessorsSql
  7805  				}
  7806  				if iNdEx >= l {
  7807  					return io.ErrUnexpectedEOF
  7808  				}
  7809  				b := dAtA[iNdEx]
  7810  				iNdEx++
  7811  				m.OutputColIdx |= (uint32(b) & 0x7F) << shift
  7812  				if b < 0x80 {
  7813  					break
  7814  				}
  7815  			}
  7816  		default:
  7817  			iNdEx = preIndex
  7818  			skippy, err := skipProcessorsSql(dAtA[iNdEx:])
  7819  			if err != nil {
  7820  				return err
  7821  			}
  7822  			if skippy < 0 {
  7823  				return ErrInvalidLengthProcessorsSql
  7824  			}
  7825  			if (iNdEx + skippy) > l {
  7826  				return io.ErrUnexpectedEOF
  7827  			}
  7828  			iNdEx += skippy
  7829  		}
  7830  	}
  7831  
  7832  	if iNdEx > l {
  7833  		return io.ErrUnexpectedEOF
  7834  	}
  7835  	return nil
  7836  }
  7837  func skipProcessorsSql(dAtA []byte) (n int, err error) {
  7838  	l := len(dAtA)
  7839  	iNdEx := 0
  7840  	for iNdEx < l {
  7841  		var wire uint64
  7842  		for shift := uint(0); ; shift += 7 {
  7843  			if shift >= 64 {
  7844  				return 0, ErrIntOverflowProcessorsSql
  7845  			}
  7846  			if iNdEx >= l {
  7847  				return 0, io.ErrUnexpectedEOF
  7848  			}
  7849  			b := dAtA[iNdEx]
  7850  			iNdEx++
  7851  			wire |= (uint64(b) & 0x7F) << shift
  7852  			if b < 0x80 {
  7853  				break
  7854  			}
  7855  		}
  7856  		wireType := int(wire & 0x7)
  7857  		switch wireType {
  7858  		case 0:
  7859  			for shift := uint(0); ; shift += 7 {
  7860  				if shift >= 64 {
  7861  					return 0, ErrIntOverflowProcessorsSql
  7862  				}
  7863  				if iNdEx >= l {
  7864  					return 0, io.ErrUnexpectedEOF
  7865  				}
  7866  				iNdEx++
  7867  				if dAtA[iNdEx-1] < 0x80 {
  7868  					break
  7869  				}
  7870  			}
  7871  			return iNdEx, nil
  7872  		case 1:
  7873  			iNdEx += 8
  7874  			return iNdEx, nil
  7875  		case 2:
  7876  			var length int
  7877  			for shift := uint(0); ; shift += 7 {
  7878  				if shift >= 64 {
  7879  					return 0, ErrIntOverflowProcessorsSql
  7880  				}
  7881  				if iNdEx >= l {
  7882  					return 0, io.ErrUnexpectedEOF
  7883  				}
  7884  				b := dAtA[iNdEx]
  7885  				iNdEx++
  7886  				length |= (int(b) & 0x7F) << shift
  7887  				if b < 0x80 {
  7888  					break
  7889  				}
  7890  			}
  7891  			iNdEx += length
  7892  			if length < 0 {
  7893  				return 0, ErrInvalidLengthProcessorsSql
  7894  			}
  7895  			return iNdEx, nil
  7896  		case 3:
  7897  			for {
  7898  				var innerWire uint64
  7899  				var start int = iNdEx
  7900  				for shift := uint(0); ; shift += 7 {
  7901  					if shift >= 64 {
  7902  						return 0, ErrIntOverflowProcessorsSql
  7903  					}
  7904  					if iNdEx >= l {
  7905  						return 0, io.ErrUnexpectedEOF
  7906  					}
  7907  					b := dAtA[iNdEx]
  7908  					iNdEx++
  7909  					innerWire |= (uint64(b) & 0x7F) << shift
  7910  					if b < 0x80 {
  7911  						break
  7912  					}
  7913  				}
  7914  				innerWireType := int(innerWire & 0x7)
  7915  				if innerWireType == 4 {
  7916  					break
  7917  				}
  7918  				next, err := skipProcessorsSql(dAtA[start:])
  7919  				if err != nil {
  7920  					return 0, err
  7921  				}
  7922  				iNdEx = start + next
  7923  			}
  7924  			return iNdEx, nil
  7925  		case 4:
  7926  			return iNdEx, nil
  7927  		case 5:
  7928  			iNdEx += 4
  7929  			return iNdEx, nil
  7930  		default:
  7931  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  7932  		}
  7933  	}
  7934  	panic("unreachable")
  7935  }
  7936  
  7937  var (
  7938  	ErrInvalidLengthProcessorsSql = fmt.Errorf("proto: negative length found during unmarshaling")
  7939  	ErrIntOverflowProcessorsSql   = fmt.Errorf("proto: integer overflow")
  7940  )
  7941  
  7942  func init() {
  7943  	proto.RegisterFile("sql/execinfrapb/processors_sql.proto", fileDescriptor_processors_sql_c1e87fb3f4a49645)
  7944  }
  7945  
  7946  var fileDescriptor_processors_sql_c1e87fb3f4a49645 = []byte{
  7947  	// 2616 bytes of a gzipped FileDescriptorProto
  7948  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4b, 0x8f, 0xdb, 0xd6,
  7949  	0xf5, 0x1f, 0xea, 0xad, 0xa3, 0xc7, 0xd0, 0xd7, 0x93, 0x58, 0x51, 0xfe, 0x18, 0x8f, 0x95, 0xd7,
  7950  	0xd8, 0x71, 0x66, 0xfe, 0x99, 0x14, 0x29, 0x92, 0x74, 0x11, 0x4a, 0xa2, 0x64, 0xd9, 0x1a, 0x72,
  7951  	0x4c, 0x49, 0x76, 0x1e, 0x40, 0x08, 0x8e, 0x78, 0x47, 0xc3, 0x98, 0x22, 0x35, 0x24, 0xe5, 0x99,
  7952  	0xc9, 0x17, 0xe8, 0xb6, 0x45, 0x37, 0x45, 0x17, 0x45, 0x36, 0x45, 0xbf, 0x40, 0x77, 0x05, 0xd2,
  7953  	0x4d, 0x0b, 0x78, 0x99, 0x55, 0x9b, 0x55, 0xd1, 0x38, 0x1f, 0x22, 0x28, 0xd0, 0x45, 0x71, 0x1f,
  7954  	0xe4, 0x50, 0x82, 0xe5, 0x58, 0xf6, 0x24, 0x46, 0x37, 0x82, 0xee, 0x39, 0xf7, 0xfc, 0xee, 0x39,
  7955  	0xf7, 0x9c, 0x7b, 0xce, 0xb9, 0x97, 0xf0, 0xaa, 0x7f, 0x64, 0x6f, 0xe3, 0x13, 0x3c, 0xb4, 0x9c,
  7956  	0x03, 0xcf, 0x98, 0xec, 0x6f, 0x4f, 0x3c, 0x77, 0x88, 0x7d, 0xdf, 0xf5, 0x7c, 0xdd, 0x3f, 0xb2,
  7957  	0xb7, 0x26, 0x9e, 0x1b, 0xb8, 0xa8, 0x32, 0x74, 0x87, 0xf7, 0x3c, 0xd7, 0x18, 0x1e, 0x6e, 0x11,
  7958  	0xa2, 0x69, 0xf9, 0x81, 0x7f, 0x64, 0x7b, 0x53, 0xa7, 0xfa, 0x7f, 0x44, 0xde, 0x3f, 0xb2, 0xf7,
  7959  	0x0d, 0x1f, 0x6f, 0xfb, 0x81, 0x37, 0x1d, 0x06, 0x53, 0x0f, 0x9b, 0x4c, 0xae, 0xfa, 0x72, 0x9c,
  7960  	0xfb, 0xb9, 0x6b, 0x39, 0x7a, 0x70, 0x3a, 0xc1, 0x9c, 0xf9, 0x52, 0x9c, 0x69, 0xbb, 0xc3, 0x7b,
  7961  	0x96, 0x33, 0xe2, 0xac, 0x17, 0x08, 0x8b, 0x4c, 0xf5, 0xd9, 0x2f, 0x27, 0x57, 0xe7, 0x95, 0x35,
  7962  	0x8d, 0xc0, 0xe0, 0xbc, 0xd7, 0x1e, 0x63, 0x08, 0x59, 0x81, 0x4f, 0xbb, 0x46, 0xa6, 0xb9, 0x93,
  7963  	0x60, 0xdb, 0x72, 0xee, 0x63, 0x2f, 0xc0, 0x26, 0x3e, 0x99, 0x78, 0xdb, 0xfe, 0xc4, 0x70, 0x74,
  7964  	0xf2, 0x0f, 0xfb, 0xbe, 0xe5, 0x3a, 0x7c, 0xee, 0xda, 0xc8, 0x1d, 0xb9, 0xf4, 0xef, 0x36, 0xf9,
  7965  	0xc7, 0xa8, 0xb5, 0xdf, 0x08, 0x50, 0xbe, 0x63, 0xd8, 0x53, 0xec, 0x37, 0x5c, 0x0f, 0xf7, 0x26,
  7966  	0x78, 0x88, 0x1a, 0x90, 0x1d, 0xba, 0xf6, 0x74, 0xec, 0xf8, 0x15, 0x61, 0x23, 0xb9, 0x59, 0xd8,
  7967  	0x79, 0x65, 0x6b, 0xd1, 0x86, 0x6d, 0x35, 0x8d, 0x60, 0x3a, 0xee, 0x38, 0x07, 0x6e, 0x3d, 0xf5,
  7968  	0xe0, 0x9f, 0x97, 0x57, 0xb4, 0x50, 0x12, 0xbd, 0x0c, 0x79, 0xcf, 0x38, 0xd6, 0xf7, 0x4f, 0x03,
  7969  	0xec, 0x57, 0x12, 0x1b, 0xc9, 0xcd, 0xa2, 0x96, 0xf3, 0x8c, 0xe3, 0x3a, 0x19, 0xa3, 0xcb, 0x90,
  7970  	0x73, 0xa6, 0x63, 0xdd, 0x73, 0x8f, 0xfd, 0x4a, 0x72, 0x43, 0xd8, 0x4c, 0x85, 0xd2, 0xce, 0x74,
  7971  	0xac, 0xb9, 0xc7, 0x7e, 0xed, 0x77, 0x69, 0x58, 0xed, 0x1b, 0xfb, 0x36, 0xd6, 0xb0, 0x61, 0x62,
  7972  	0x8f, 0xaa, 0x55, 0x87, 0x74, 0x40, 0x48, 0x15, 0x61, 0x43, 0xd8, 0x2c, 0xec, 0xbc, 0x3e, 0xa7,
  7973  	0x14, 0xdf, 0xfa, 0x2d, 0x2a, 0xd6, 0xc4, 0xfe, 0xd0, 0xb3, 0x26, 0x81, 0xeb, 0x71, 0x64, 0x26,
  7974  	0x8a, 0xae, 0x40, 0xde, 0x72, 0x4c, 0x7c, 0xa2, 0x5b, 0xe6, 0x49, 0x25, 0xb1, 0x21, 0x6c, 0x96,
  7975  	0x38, 0x3f, 0x47, 0xc9, 0x1d, 0xf3, 0x04, 0xad, 0x43, 0xd6, 0xc3, 0xf7, 0xb1, 0xe7, 0x63, 0xaa,
  7976  	0x5a, 0x2e, 0x54, 0x8d, 0x13, 0x91, 0x0c, 0x69, 0xb2, 0xbf, 0x7e, 0x25, 0x45, 0xf7, 0xe6, 0xea,
  7977  	0xe2, 0xbd, 0x99, 0x31, 0xc0, 0x70, 0x42, 0x4d, 0xa8, 0x34, 0x7a, 0x05, 0xc0, 0xb6, 0xc6, 0x56,
  7978  	0xa0, 0x1f, 0x5a, 0x4e, 0x50, 0x49, 0x6f, 0x08, 0x9b, 0x49, 0x3e, 0x21, 0x4f, 0xe9, 0x37, 0x2c,
  7979  	0x27, 0x20, 0xfb, 0x64, 0xf9, 0xfa, 0xf0, 0x10, 0x0f, 0xef, 0x55, 0x32, 0x71, 0x65, 0x2c, 0xbf,
  7980  	0x41, 0x88, 0x48, 0x01, 0xb8, 0x6f, 0xf9, 0xd6, 0xbe, 0x65, 0x5b, 0xc1, 0x69, 0x25, 0xbb, 0x21,
  7981  	0x6c, 0x96, 0x77, 0x36, 0x17, 0x6b, 0xd4, 0x1b, 0x1a, 0xce, 0x9d, 0x68, 0x3e, 0x07, 0x8b, 0x21,
  7982  	0xa0, 0xd7, 0xa0, 0x30, 0x36, 0x4e, 0x74, 0x0f, 0xfb, 0x53, 0x3b, 0xf0, 0x2b, 0xb9, 0x98, 0x6f,
  7983  	0x60, 0x6c, 0x9c, 0x68, 0x8c, 0x8e, 0x3e, 0x80, 0x4b, 0x64, 0x5a, 0x60, 0x8d, 0xb1, 0x1f, 0x18,
  7984  	0xe3, 0x89, 0x6e, 0x8c, 0xb0, 0xee, 0x18, 0x8e, 0xeb, 0x57, 0xf2, 0x31, 0x91, 0xb5, 0xb1, 0x71,
  7985  	0xd2, 0x0f, 0xe7, 0x48, 0x23, 0xac, 0x90, 0x19, 0xe8, 0x53, 0x10, 0xf9, 0xf1, 0xd0, 0xfd, 0xc0,
  7986  	0xc3, 0xce, 0x28, 0x38, 0xac, 0x00, 0xd5, 0xfc, 0xda, 0x02, 0x97, 0x12, 0xb5, 0xbb, 0x4c, 0xa4,
  7987  	0xc7, 0x25, 0xf8, 0x0a, 0xab, 0xf6, 0x2c, 0x19, 0xed, 0xc3, 0xc5, 0x10, 0xfc, 0xd8, 0xb0, 0x02,
  7988  	0x7d, 0xe2, 0xda, 0xd6, 0xf0, 0xb4, 0x52, 0xa0, 0xf8, 0xd7, 0x7f, 0x18, 0xff, 0xae, 0x61, 0x05,
  7989  	0x7b, 0x54, 0x86, 0xaf, 0x70, 0xc1, 0x9e, 0x67, 0xd4, 0xfe, 0x9d, 0x84, 0x4a, 0x87, 0x84, 0x4b,
  7990  	0xef, 0x9e, 0x35, 0x79, 0x4e, 0x51, 0x1a, 0x45, 0x61, 0xf2, 0x99, 0xa2, 0x70, 0x36, 0x7e, 0x52,
  7991  	0xcf, 0x1c, 0x3f, 0xb1, 0xc3, 0x93, 0x7e, 0xd4, 0xe1, 0x79, 0x94, 0xef, 0x33, 0x3f, 0xb2, 0xef,
  7992  	0xb3, 0xe7, 0xe9, 0xfb, 0x3f, 0xa6, 0xa1, 0x7c, 0xd3, 0xb5, 0x9c, 0x9f, 0xde, 0xe3, 0x57, 0xa1,
  7993  	0x6c, 0xbb, 0xee, 0xbd, 0xe9, 0x44, 0x0f, 0x93, 0x33, 0x71, 0x7d, 0xa9, 0x9e, 0x10, 0x05, 0xad,
  7994  	0xc4, 0x38, 0x0d, 0x9e, 0x7b, 0x1b, 0x90, 0x75, 0x59, 0x01, 0xa0, 0x2e, 0x2d, 0xec, 0xbc, 0xba,
  7995  	0xd8, 0xa5, 0x72, 0x54, 0x26, 0xf8, 0x8a, 0x19, 0xd7, 0x21, 0x34, 0xf4, 0x1e, 0xa4, 0x48, 0xb1,
  7996  	0xe2, 0xee, 0xb9, 0xbc, 0xc0, 0x2a, 0xb2, 0x17, 0xfd, 0xd3, 0x09, 0xe6, 0xc2, 0x54, 0xe4, 0xdc,
  7997  	0xb3, 0xd2, 0x7b, 0xf0, 0xe2, 0xac, 0xe9, 0xba, 0xe1, 0x61, 0xfd, 0x1e, 0x3e, 0xa5, 0x09, 0x2a,
  7998  	0x0c, 0xb2, 0x8b, 0x33, 0x9b, 0x20, 0x79, 0xf8, 0x16, 0x3e, 0x7d, 0x64, 0xc0, 0xe5, 0x7f, 0xe4,
  7999  	0x80, 0x83, 0x73, 0x0c, 0x38, 0xf4, 0x36, 0x5c, 0x18, 0x1b, 0x96, 0x13, 0x18, 0x96, 0xa3, 0xbb,
  8000  	0x9e, 0x89, 0x3d, 0xcb, 0x19, 0xd1, 0x74, 0x16, 0x9a, 0x2d, 0x86, 0x6c, 0x95, 0x73, 0x6f, 0xa6,
  8001  	0x72, 0x69, 0x31, 0x43, 0x0a, 0x3b, 0xf4, 0x5c, 0x2f, 0xe0, 0x51, 0x7a, 0x1b, 0x56, 0xdd, 0x69,
  8002  	0x30, 0x99, 0x06, 0x67, 0x28, 0x2c, 0x5e, 0x6b, 0x8b, 0x1d, 0x13, 0x22, 0xf2, 0x95, 0xca, 0x0c,
  8003  	0x20, 0xa4, 0xa2, 0x1d, 0x40, 0x21, 0x96, 0x3e, 0x36, 0x82, 0xe1, 0xa1, 0x6e, 0x63, 0x67, 0x26,
  8004  	0x7a, 0xc5, 0x90, 0xbf, 0x4b, 0xd8, 0x5d, 0xec, 0xd4, 0xbe, 0x12, 0xa0, 0xd8, 0xb4, 0xfc, 0xc0,
  8005  	0x72, 0x86, 0x01, 0xd5, 0xeb, 0x0d, 0x58, 0xa5, 0x93, 0xb0, 0xa9, 0xc7, 0x9b, 0x8e, 0x92, 0x56,
  8006  	0xe6, 0xe4, 0x30, 0xa8, 0xaf, 0x82, 0x68, 0x72, 0xc1, 0x68, 0x66, 0x82, 0xce, 0x5c, 0x0d, 0xe9,
  8007  	0xe1, 0xd4, 0x1d, 0x40, 0xce, 0xd4, 0xb6, 0x59, 0x98, 0x84, 0xcc, 0x99, 0x6a, 0x2e, 0x52, 0xbe,
  8008  	0xe4, 0xe1, 0x50, 0x17, 0xf4, 0x3a, 0x14, 0xb1, 0xe7, 0xb9, 0x9e, 0xee, 0x3a, 0xba, 0x39, 0x9d,
  8009  	0xd0, 0x83, 0x93, 0x0f, 0x63, 0x91, 0x72, 0x54, 0xa7, 0x39, 0x9d, 0xd4, 0x44, 0x28, 0xab, 0x9e,
  8010  	0x69, 0x39, 0x06, 0x89, 0x4c, 0x62, 0x41, 0xed, 0xb7, 0x49, 0x10, 0x3f, 0xb1, 0x46, 0x5f, 0x18,
  8011  	0x23, 0x72, 0x18, 0xf8, 0x76, 0x37, 0x21, 0x43, 0x4f, 0x76, 0xd8, 0x42, 0x2d, 0x97, 0x15, 0xb8,
  8012  	0x2c, 0x6a, 0x01, 0xe0, 0xa3, 0x19, 0x6b, 0x0b, 0x3b, 0x57, 0x16, 0xfb, 0x8b, 0xdb, 0x1f, 0xf6,
  8013  	0x11, 0xf8, 0xe8, 0x6c, 0xef, 0xca, 0x2c, 0xbd, 0xb8, 0x4c, 0xf5, 0x99, 0xdc, 0x41, 0x39, 0xdc,
  8014  	0xa6, 0x73, 0xca, 0x1d, 0xb7, 0xa0, 0x78, 0x60, 0x9d, 0x60, 0x53, 0xbf, 0x4f, 0x3b, 0xcb, 0x4a,
  8015  	0x9a, 0x6a, 0xfe, 0x98, 0x14, 0x30, 0xdb, 0x81, 0x6a, 0x05, 0x2a, 0xcd, 0x88, 0xcf, 0x90, 0x88,
  8016  	0x6a, 0x7f, 0x4f, 0xc2, 0xea, 0x2e, 0xf6, 0x46, 0x38, 0xe6, 0x99, 0x5d, 0x28, 0xd9, 0xf8, 0xe0,
  8017  	0x19, 0x8e, 0x41, 0x91, 0x88, 0x47, 0x87, 0x40, 0x85, 0xb2, 0x67, 0x8d, 0x0e, 0x63, 0x78, 0x89,
  8018  	0x25, 0xf1, 0x4a, 0x54, 0x3e, 0x02, 0x8c, 0x39, 0x20, 0xfd, 0x3c, 0x92, 0xf7, 0x55, 0x28, 0x91,
  8019  	0xc3, 0xa1, 0xe3, 0xa3, 0xa9, 0x11, 0xe5, 0xef, 0xf0, 0xdc, 0x14, 0x09, 0x4b, 0xe6, 0x1c, 0xf4,
  8020  	0x3e, 0x5c, 0xa2, 0x5b, 0x79, 0x16, 0xa3, 0x0b, 0x12, 0x33, 0x3e, 0x08, 0xe4, 0xa3, 0xd9, 0xc4,
  8021  	0xfc, 0x0b, 0xa8, 0xb0, 0x7d, 0x7b, 0x84, 0x70, 0x3e, 0x26, 0xbc, 0x46, 0x67, 0xcd, 0x49, 0xd7,
  8022  	0x7e, 0x9d, 0x84, 0xf2, 0x0d, 0xc3, 0x3f, 0x8c, 0xf9, 0xf5, 0x1a, 0xac, 0xce, 0x29, 0xc3, 0x12,
  8023  	0x09, 0x2f, 0x90, 0x71, 0x15, 0xd0, 0x75, 0x10, 0xe7, 0x17, 0x67, 0xb9, 0x84, 0x4e, 0x2e, 0xcf,
  8024  	0x2e, 0xf9, 0xdc, 0x3d, 0xf2, 0x26, 0x94, 0xc7, 0x24, 0x88, 0xcf, 0x32, 0x64, 0xdc, 0x25, 0x25,
  8025  	0xc6, 0x0b, 0x95, 0x7d, 0x7e, 0x3e, 0xf9, 0x3e, 0x01, 0xa8, 0xc3, 0xaf, 0xa1, 0x31, 0xbf, 0xfc,
  8026  	0x64, 0xed, 0x51, 0x69, 0xa6, 0x47, 0xa0, 0xe9, 0xbe, 0x14, 0x1d, 0xd9, 0x58, 0x6b, 0x80, 0x54,
  8027  	0x28, 0x85, 0xd7, 0xe5, 0xa7, 0x4d, 0x74, 0xc5, 0x10, 0x80, 0xfa, 0xf6, 0x39, 0x07, 0x48, 0xed,
  8028  	0xcf, 0x02, 0xac, 0x85, 0x3b, 0xdf, 0xb2, 0xec, 0x00, 0x7b, 0x7c, 0xef, 0x3f, 0x9b, 0xb7, 0x94,
  8029  	0xf9, 0xe0, 0x9d, 0x39, 0x70, 0x77, 0x12, 0x6c, 0xc5, 0x1f, 0x10, 0xb6, 0xc8, 0x45, 0xe1, 0x4c,
  8030  	0xd1, 0x3d, 0xcf, 0x0d, 0xdc, 0x1f, 0x32, 0x3c, 0xf1, 0xb4, 0x86, 0xd7, 0xfe, 0x96, 0x85, 0xb2,
  8031  	0x34, 0x1a, 0x79, 0x78, 0x64, 0x04, 0x2e, 0xd3, 0xfb, 0x0a, 0xc0, 0xc8, 0x73, 0x99, 0x2f, 0xe3,
  8032  	0x27, 0x33, 0x4f, 0xa9, 0x0d, 0xd7, 0xf6, 0xd1, 0x67, 0x50, 0x34, 0xb8, 0x90, 0xe5, 0x46, 0xf7,
  8033  	0xa0, 0x9f, 0x2d, 0x5e, 0x7f, 0x76, 0x89, 0x68, 0x18, 0xf3, 0x69, 0x1c, 0x0f, 0xfd, 0x3f, 0x6f,
  8034  	0x6e, 0xb0, 0xa9, 0xc7, 0x54, 0x49, 0x45, 0xaa, 0x88, 0x9c, 0xdb, 0x8e, 0x34, 0x6a, 0x73, 0x07,
  8035  	0xa6, 0xa9, 0x03, 0xdf, 0x7a, 0x62, 0x4d, 0xe6, 0xdd, 0x59, 0xfd, 0x65, 0x02, 0x0a, 0x31, 0xf5,
  8036  	0x08, 0xf0, 0xc1, 0xd4, 0x19, 0x52, 0xe7, 0x2d, 0x03, 0xdc, 0x9a, 0x3a, 0xc3, 0x10, 0x98, 0x00,
  8037  	0xa0, 0x0d, 0xc8, 0x45, 0xdd, 0x50, 0x22, 0x76, 0x9e, 0x23, 0x2a, 0x7a, 0x15, 0xca, 0x07, 0x34,
  8038  	0x80, 0x88, 0xb9, 0xf4, 0xb4, 0x91, 0xb3, 0x51, 0xd2, 0x8a, 0x8c, 0xda, 0x70, 0x6d, 0x72, 0xd6,
  8039  	0x2e, 0xd1, 0x07, 0x22, 0xca, 0x4e, 0xd3, 0x0e, 0x2c, 0x33, 0x64, 0x8c, 0x1b, 0x90, 0x37, 0xbc,
  8040  	0xd1, 0x74, 0x8c, 0x9d, 0xc0, 0xaf, 0x64, 0xa8, 0x47, 0x96, 0x89, 0x88, 0x33, 0xe1, 0x9b, 0xa9,
  8041  	0x5c, 0x52, 0x4c, 0xd5, 0xfe, 0x93, 0x80, 0x14, 0xb1, 0x02, 0x89, 0x50, 0x94, 0x94, 0x8f, 0x75,
  8042  	0x45, 0xed, 0xeb, 0xca, 0xa0, 0xdb, 0x15, 0x57, 0x50, 0x16, 0x92, 0xd2, 0x9d, 0xb6, 0x28, 0xa0,
  8043  	0x22, 0xe4, 0xea, 0xaa, 0xda, 0xd5, 0x25, 0xa5, 0x29, 0x26, 0x50, 0x01, 0xb2, 0x74, 0xa4, 0x6a,
  8044  	0x62, 0x12, 0x95, 0x01, 0x1a, 0xaa, 0xd2, 0x90, 0xfa, 0xba, 0xd4, 0x6e, 0x8b, 0x29, 0x94, 0x87,
  8045  	0x74, 0x43, 0x1d, 0x28, 0x7d, 0x31, 0x4d, 0xc4, 0x77, 0xa5, 0x8f, 0xc4, 0x2c, 0xfd, 0xd3, 0x51,
  8046  	0xc4, 0x1c, 0x02, 0xc8, 0xf4, 0xfa, 0xcd, 0xa6, 0x7c, 0x47, 0xcc, 0x13, 0x62, 0x6f, 0xb0, 0x2b,
  8047  	0x02, 0x81, 0xeb, 0x0d, 0x76, 0xf5, 0x8e, 0xd2, 0x17, 0x0b, 0x64, 0xa5, 0x3b, 0x92, 0xd6, 0x91,
  8048  	0x94, 0x86, 0x2c, 0x16, 0x09, 0xeb, 0x23, 0x55, 0xa3, 0xc8, 0x25, 0xb6, 0xd2, 0x40, 0xe9, 0xeb,
  8049  	0x9a, 0x7a, 0xb7, 0x27, 0x96, 0xa9, 0xdc, 0x6d, 0xad, 0xd9, 0x69, 0xb5, 0xc4, 0x55, 0x84, 0xa0,
  8050  	0xdc, 0xea, 0x28, 0x52, 0x57, 0x8f, 0xa4, 0x45, 0x62, 0x10, 0xa3, 0xf1, 0x35, 0x2f, 0xa0, 0x12,
  8051  	0xe4, 0x25, 0x4d, 0x93, 0x3e, 0xa6, 0x88, 0x88, 0x2c, 0x76, 0xb3, 0xa7, 0x2a, 0x74, 0x74, 0x91,
  8052  	0x30, 0xc9, 0xa8, 0x4e, 0x87, 0x6b, 0x64, 0xb9, 0x5e, 0x5f, 0xeb, 0x28, 0x6d, 0x3a, 0x7e, 0x81,
  8053  	0x5a, 0xdd, 0xe9, 0xd3, 0x2d, 0x78, 0x91, 0x18, 0x42, 0x06, 0xaa, 0x26, 0x5e, 0x42, 0x39, 0x48,
  8054  	0x35, 0x54, 0x4d, 0x13, 0x2b, 0xa8, 0x02, 0x6b, 0x7b, 0xb2, 0xd6, 0x90, 0x95, 0x7e, 0xa7, 0x2b,
  8055  	0xeb, 0xcd, 0x4e, 0xaf, 0xa1, 0x77, 0x76, 0xf7, 0xba, 0xe2, 0x4b, 0x73, 0x9c, 0x86, 0xaa, 0xf4,
  8056  	0x19, 0xa7, 0x5a, 0xbb, 0x0e, 0x29, 0x12, 0x9c, 0x04, 0x45, 0x1a, 0xf4, 0x55, 0x71, 0x85, 0x6e,
  8057  	0x52, 0x43, 0xea, 0x4a, 0x9a, 0x28, 0x10, 0x25, 0x14, 0x55, 0xd1, 0xf9, 0x38, 0x51, 0xfb, 0x4b,
  8058  	0x06, 0x5e, 0xee, 0x38, 0x01, 0xf6, 0x6c, 0x6c, 0xdc, 0xc7, 0x26, 0xbb, 0x21, 0xc7, 0x0a, 0xc1,
  8059  	0xc7, 0x73, 0x2d, 0xf1, 0x07, 0x8b, 0x23, 0xe3, 0x31, 0x30, 0xac, 0x50, 0xcc, 0xf5, 0xc9, 0xb1,
  8060  	0x67, 0x87, 0xc4, 0xa3, 0x9e, 0x1d, 0x66, 0x1f, 0xdb, 0x92, 0x8f, 0x7e, 0x6c, 0x3b, 0xd7, 0x5b,
  8061  	0x73, 0x7a, 0xf9, 0x32, 0xff, 0xbf, 0xfe, 0x36, 0x52, 0xfd, 0x2a, 0x01, 0x69, 0xea, 0x1d, 0xf4,
  8062  	0x21, 0xa4, 0x4c, 0xec, 0x0f, 0x9f, 0xaa, 0xe4, 0x53, 0xc9, 0x27, 0xa9, 0xf8, 0x0d, 0x48, 0x4d,
  8063  	0x5c, 0x9f, 0xb9, 0xf3, 0xb1, 0x2f, 0x60, 0x7b, 0xae, 0x1f, 0xec, 0xb1, 0xe7, 0x73, 0x12, 0x41,
  8064  	0xe1, 0x3a, 0x44, 0x18, 0x35, 0x21, 0x17, 0x35, 0xee, 0xa9, 0x25, 0x1b, 0xf7, 0x48, 0xf2, 0xec,
  8065  	0x35, 0x2e, 0xfd, 0x2c, 0xaf, 0x71, 0xb5, 0xbf, 0x0a, 0x50, 0xde, 0xf3, 0xdc, 0xcf, 0xf1, 0x30,
  8066  	0xe8, 0x61, 0x76, 0x3d, 0xfe, 0x10, 0xd2, 0x24, 0x22, 0xc3, 0x33, 0xb3, 0x4c, 0x48, 0x32, 0x41,
  8067  	0xd4, 0x86, 0x0b, 0x23, 0xec, 0x60, 0xcf, 0x08, 0x62, 0x0d, 0x24, 0xbb, 0x4a, 0x56, 0xe7, 0x1d,
  8068  	0x83, 0xc7, 0x5b, 0xec, 0x03, 0x45, 0x5f, 0x13, 0x23, 0xa1, 0xb0, 0xb3, 0x7c, 0x03, 0x44, 0x67,
  8069  	0x3a, 0xa6, 0x75, 0x50, 0x9f, 0x60, 0x4f, 0x1f, 0x61, 0x87, 0x5d, 0x23, 0xb5, 0x92, 0x33, 0x1d,
  8070  	0x93, 0x12, 0xb8, 0x87, 0xbd, 0x36, 0x76, 0x6a, 0xdf, 0x96, 0xa0, 0x78, 0xd7, 0x72, 0x4c, 0xf7,
  8071  	0x98, 0x9f, 0xfc, 0x0d, 0x28, 0x4c, 0x0c, 0x2f, 0xb0, 0x68, 0xb1, 0x3d, 0xe5, 0xf7, 0xfb, 0x38,
  8072  	0x09, 0xf5, 0x20, 0x7f, 0x4c, 0x25, 0x5a, 0x91, 0x72, 0xdb, 0x8b, 0x4d, 0x8d, 0x83, 0xf3, 0x41,
  8073  	0x2b, 0xaa, 0x21, 0x11, 0x4e, 0xf5, 0x4f, 0x02, 0xaf, 0x1e, 0x3d, 0x28, 0x85, 0xb5, 0x1d, 0xb7,
  8074  	0x9e, 0xb6, 0x92, 0x6a, 0xb3, 0x18, 0xe8, 0x36, 0x00, 0x5f, 0x8a, 0x20, 0x26, 0x28, 0xe2, 0xdb,
  8075  	0xcb, 0xe9, 0x4c, 0x50, 0x63, 0x20, 0xef, 0xa7, 0x1e, 0x7c, 0x79, 0x59, 0xa8, 0x7e, 0x99, 0x85,
  8076  	0x74, 0xcb, 0x33, 0xc6, 0x18, 0xdd, 0x82, 0xd4, 0xd8, 0x35, 0x31, 0x57, 0xf7, 0x49, 0xc1, 0xa9,
  8077  	0xec, 0xd6, 0xae, 0x6b, 0x46, 0xe9, 0x85, 0x80, 0xa0, 0xdb, 0x90, 0xd9, 0x77, 0xa7, 0x8e, 0xe9,
  8078  	0xf3, 0x56, 0xed, 0x9d, 0xa5, 0xe0, 0xea, 0x54, 0x34, 0x4c, 0x76, 0x0c, 0x08, 0x7d, 0x02, 0x79,
  8079  	0x7c, 0x32, 0xb4, 0xa7, 0x24, 0xe8, 0xe8, 0x31, 0x2c, 0xef, 0xbc, 0xbb, 0x14, 0xaa, 0x1c, 0x4a,
  8080  	0x47, 0x4f, 0x16, 0x21, 0xa1, 0xfa, 0xbd, 0x00, 0x69, 0xba, 0x28, 0x59, 0x85, 0xae, 0x47, 0x12,
  8081  	0x26, 0xdf, 0x8a, 0x77, 0x97, 0xd7, 0x3d, 0x96, 0x6e, 0xcf, 0xe0, 0x48, 0x61, 0xb0, 0x9c, 0x40,
  8082  	0x77, 0x0f, 0x0e, 0x7c, 0xcc, 0x7a, 0xa2, 0xf0, 0xdb, 0x45, 0xde, 0x72, 0x02, 0x95, 0x92, 0xd1,
  8083  	0x15, 0x28, 0x92, 0x53, 0x61, 0x86, 0xd3, 0x88, 0xa5, 0x45, 0xad, 0x40, 0x69, 0x7c, 0xca, 0x4d,
  8084  	0x28, 0x30, 0x26, 0xfd, 0x22, 0xc8, 0x33, 0xc9, 0x12, 0x9f, 0xcd, 0x80, 0x49, 0x13, 0x9d, 0xaa,
  8085  	0xbf, 0x17, 0x20, 0xc3, 0xb6, 0x1b, 0x29, 0x90, 0xf6, 0x03, 0xc3, 0x0b, 0x78, 0x22, 0xdd, 0x59,
  8086  	0xde, 0xec, 0x28, 0xc1, 0x10, 0x18, 0xd4, 0x84, 0x24, 0x76, 0x4c, 0x1e, 0x00, 0x4f, 0x81, 0xa6,
  8087  	0x11, 0xf1, 0xda, 0x1b, 0x90, 0x22, 0xd1, 0x45, 0xda, 0x29, 0x4d, 0x52, 0xda, 0xb2, 0xb8, 0x42,
  8088  	0x3a, 0x04, 0xda, 0xf9, 0x08, 0xa4, 0x43, 0x68, 0x6b, 0xea, 0x60, 0xaf, 0x27, 0x26, 0x6a, 0x5f,
  8089  	0x40, 0x3e, 0xda, 0x7b, 0x74, 0x09, 0x2e, 0x0e, 0x94, 0xba, 0x3a, 0x50, 0x9a, 0x72, 0x53, 0xdf,
  8090  	0xd3, 0xe4, 0x86, 0xdc, 0xec, 0x28, 0x6d, 0x71, 0x65, 0x96, 0xd1, 0x52, 0xbb, 0x5d, 0xf5, 0x2e,
  8091  	0x61, 0x08, 0x68, 0x0d, 0x44, 0xb5, 0xd5, 0xea, 0xc9, 0xfd, 0xd8, 0xf4, 0x44, 0x8c, 0x7a, 0x36,
  8092  	0x37, 0x89, 0x56, 0xa1, 0xd0, 0x18, 0x68, 0x9a, 0xcc, 0x5a, 0x30, 0x31, 0x55, 0xfb, 0x14, 0xf2,
  8093  	0x51, 0x74, 0x91, 0x6e, 0x4b, 0x51, 0x75, 0xf9, 0xa3, 0x46, 0x77, 0xd0, 0xeb, 0xa8, 0x0a, 0x5b,
  8094  	0x94, 0x0e, 0x9b, 0xb2, 0x1e, 0x97, 0x13, 0xd0, 0x05, 0x28, 0x85, 0x0c, 0x6a, 0x87, 0x98, 0x20,
  8095  	0xd2, 0x21, 0xa9, 0xdf, 0x91, 0x7b, 0x62, 0xb2, 0xfa, 0x8f, 0x04, 0xe4, 0xc2, 0xbc, 0x83, 0xe4,
  8096  	0x58, 0x7b, 0x5e, 0xd8, 0x79, 0xf3, 0x49, 0x77, 0x75, 0xbe, 0x39, 0x3f, 0x9f, 0x4a, 0x54, 0x87,
  8097  	0xf4, 0x01, 0xf1, 0x17, 0xbf, 0x88, 0x5e, 0x5f, 0xc6, 0xc7, 0x1a, 0x13, 0x45, 0x9b, 0x30, 0xd3,
  8098  	0xee, 0xd3, 0x26, 0x24, 0x1d, 0x5e, 0x92, 0x66, 0x2e, 0x02, 0x55, 0xc8, 0x19, 0xde, 0xc8, 0xef,
  8099  	0x98, 0x27, 0x7e, 0x25, 0x4b, 0xb3, 0x7a, 0x34, 0x26, 0x28, 0xec, 0xbd, 0x98, 0xa3, 0xe4, 0xe2,
  8100  	0xf7, 0xf1, 0x38, 0xe7, 0x66, 0x2a, 0x97, 0x10, 0x93, 0xbc, 0xe3, 0xff, 0x83, 0x00, 0x70, 0x96,
  8101  	0x1d, 0x49, 0x8f, 0xa9, 0xa9, 0x77, 0x75, 0x65, 0xb0, 0x5b, 0x97, 0x35, 0x1e, 0x67, 0x92, 0x72,
  8102  	0x8b, 0x75, 0x9f, 0x4d, 0x59, 0xe9, 0xc9, 0x3a, 0x1d, 0x53, 0x27, 0xf1, 0x2e, 0x96, 0x51, 0x92,
  8103  	0xa4, 0x67, 0x6e, 0x0c, 0x76, 0x69, 0xaf, 0xdb, 0x67, 0xcd, 0x3f, 0xed, 0x70, 0x59, 0xf3, 0xdf,
  8104  	0x95, 0xda, 0x62, 0x86, 0xc0, 0x75, 0x65, 0xa9, 0x29, 0x66, 0x49, 0xfc, 0xb4, 0x3a, 0x5a, 0xaf,
  8105  	0xaf, 0xdf, 0x91, 0xba, 0x03, 0x59, 0xcc, 0x11, 0xfc, 0xae, 0x14, 0x8d, 0xf3, 0x04, 0x4d, 0xe9,
  8106  	0xdf, 0xe0, 0x43, 0xb8, 0xf6, 0x73, 0x28, 0xcf, 0x7e, 0xb6, 0x20, 0x81, 0xbf, 0x37, 0xa8, 0x77,
  8107  	0x3b, 0x0d, 0x71, 0x05, 0xbd, 0x04, 0x2f, 0xb0, 0xff, 0xa4, 0x25, 0xa7, 0xb7, 0x16, 0xce, 0x12,
  8108  	0xea, 0x6f, 0x3d, 0xf8, 0x76, 0x7d, 0xe5, 0xc1, 0xc3, 0x75, 0xe1, 0xeb, 0x87, 0xeb, 0xc2, 0x37,
  8109  	0x0f, 0xd7, 0x85, 0x7f, 0x3d, 0x5c, 0x17, 0x7e, 0xf5, 0xdd, 0xfa, 0xca, 0xd7, 0xdf, 0xad, 0xaf,
  8110  	0x7c, 0xf3, 0xdd, 0xfa, 0xca, 0x27, 0x85, 0xd8, 0x67, 0xff, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff,
  8111  	0xbe, 0xac, 0x9e, 0xdf, 0xd1, 0x20, 0x00, 0x00,
  8112  }