Fresh dep ensure

This commit is contained in:
Mike Cronce
2018-11-26 13:23:56 -05:00
parent 93cb8a04d7
commit 407478ab9a
9016 changed files with 551394 additions and 279685 deletions

View File

@ -129,7 +129,7 @@ func (m *KeyRange) Reset() { *m = KeyRange{} }
func (m *KeyRange) String() string { return proto.CompactTextString(m) }
func (*KeyRange) ProtoMessage() {}
func (*KeyRange) Descriptor() ([]byte, []int) {
return fileDescriptor_keys_3b687fe915157fa4, []int{0}
return fileDescriptor_keys_7ddb6edaafe45a51, []int{0}
}
func (m *KeyRange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyRange.Unmarshal(m, b)
@ -376,7 +376,7 @@ func (m *KeySet) Reset() { *m = KeySet{} }
func (m *KeySet) String() string { return proto.CompactTextString(m) }
func (*KeySet) ProtoMessage() {}
func (*KeySet) Descriptor() ([]byte, []int) {
return fileDescriptor_keys_3b687fe915157fa4, []int{1}
return fileDescriptor_keys_7ddb6edaafe45a51, []int{1}
}
func (m *KeySet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeySet.Unmarshal(m, b)
@ -422,9 +422,9 @@ func init() {
proto.RegisterType((*KeySet)(nil), "google.spanner.v1.KeySet")
}
func init() { proto.RegisterFile("google/spanner/v1/keys.proto", fileDescriptor_keys_3b687fe915157fa4) }
func init() { proto.RegisterFile("google/spanner/v1/keys.proto", fileDescriptor_keys_7ddb6edaafe45a51) }
var fileDescriptor_keys_3b687fe915157fa4 = []byte{
var fileDescriptor_keys_7ddb6edaafe45a51 = []byte{
// 371 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x6b, 0xea, 0x30,
0x1c, 0xc7, 0x5f, 0xab, 0xf8, 0x34, 0x8a, 0xf8, 0x0a, 0x8f, 0x57, 0x7c, 0x3b, 0x88, 0xa7, 0x9d,

View File

@ -42,7 +42,7 @@ func (m *Mutation) Reset() { *m = Mutation{} }
func (m *Mutation) String() string { return proto.CompactTextString(m) }
func (*Mutation) ProtoMessage() {}
func (*Mutation) Descriptor() ([]byte, []int) {
return fileDescriptor_mutation_eb7ac5a738061ac4, []int{0}
return fileDescriptor_mutation_5be28dee7fa669f8, []int{0}
}
func (m *Mutation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mutation.Unmarshal(m, b)
@ -298,7 +298,7 @@ func (m *Mutation_Write) Reset() { *m = Mutation_Write{} }
func (m *Mutation_Write) String() string { return proto.CompactTextString(m) }
func (*Mutation_Write) ProtoMessage() {}
func (*Mutation_Write) Descriptor() ([]byte, []int) {
return fileDescriptor_mutation_eb7ac5a738061ac4, []int{0, 0}
return fileDescriptor_mutation_5be28dee7fa669f8, []int{0, 0}
}
func (m *Mutation_Write) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mutation_Write.Unmarshal(m, b)
@ -356,7 +356,7 @@ func (m *Mutation_Delete) Reset() { *m = Mutation_Delete{} }
func (m *Mutation_Delete) String() string { return proto.CompactTextString(m) }
func (*Mutation_Delete) ProtoMessage() {}
func (*Mutation_Delete) Descriptor() ([]byte, []int) {
return fileDescriptor_mutation_eb7ac5a738061ac4, []int{0, 1}
return fileDescriptor_mutation_5be28dee7fa669f8, []int{0, 1}
}
func (m *Mutation_Delete) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mutation_Delete.Unmarshal(m, b)
@ -397,10 +397,10 @@ func init() {
}
func init() {
proto.RegisterFile("google/spanner/v1/mutation.proto", fileDescriptor_mutation_eb7ac5a738061ac4)
proto.RegisterFile("google/spanner/v1/mutation.proto", fileDescriptor_mutation_5be28dee7fa669f8)
}
var fileDescriptor_mutation_eb7ac5a738061ac4 = []byte{
var fileDescriptor_mutation_5be28dee7fa669f8 = []byte{
// 413 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xd1, 0xea, 0xd3, 0x30,
0x14, 0xc6, 0xed, 0xba, 0x75, 0x2e, 0x43, 0xd1, 0xa2, 0x58, 0x8b, 0x17, 0x75, 0x57, 0xbb, 0x4a,

View File

@ -53,7 +53,7 @@ func (x PlanNode_Kind) String() string {
return proto.EnumName(PlanNode_Kind_name, int32(x))
}
func (PlanNode_Kind) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_query_plan_e20f6b3462ee8118, []int{0, 0}
return fileDescriptor_query_plan_4358903c1626addf, []int{0, 0}
}
// Node information for nodes appearing in a [QueryPlan.plan_nodes][google.spanner.v1.QueryPlan.plan_nodes].
@ -95,7 +95,7 @@ func (m *PlanNode) Reset() { *m = PlanNode{} }
func (m *PlanNode) String() string { return proto.CompactTextString(m) }
func (*PlanNode) ProtoMessage() {}
func (*PlanNode) Descriptor() ([]byte, []int) {
return fileDescriptor_query_plan_e20f6b3462ee8118, []int{0}
return fileDescriptor_query_plan_4358903c1626addf, []int{0}
}
func (m *PlanNode) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanNode.Unmarshal(m, b)
@ -192,7 +192,7 @@ func (m *PlanNode_ChildLink) Reset() { *m = PlanNode_ChildLink{} }
func (m *PlanNode_ChildLink) String() string { return proto.CompactTextString(m) }
func (*PlanNode_ChildLink) ProtoMessage() {}
func (*PlanNode_ChildLink) Descriptor() ([]byte, []int) {
return fileDescriptor_query_plan_e20f6b3462ee8118, []int{0, 0}
return fileDescriptor_query_plan_4358903c1626addf, []int{0, 0}
}
func (m *PlanNode_ChildLink) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanNode_ChildLink.Unmarshal(m, b)
@ -253,7 +253,7 @@ func (m *PlanNode_ShortRepresentation) Reset() { *m = PlanNode_ShortRepr
func (m *PlanNode_ShortRepresentation) String() string { return proto.CompactTextString(m) }
func (*PlanNode_ShortRepresentation) ProtoMessage() {}
func (*PlanNode_ShortRepresentation) Descriptor() ([]byte, []int) {
return fileDescriptor_query_plan_e20f6b3462ee8118, []int{0, 1}
return fileDescriptor_query_plan_4358903c1626addf, []int{0, 1}
}
func (m *PlanNode_ShortRepresentation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanNode_ShortRepresentation.Unmarshal(m, b)
@ -302,7 +302,7 @@ func (m *QueryPlan) Reset() { *m = QueryPlan{} }
func (m *QueryPlan) String() string { return proto.CompactTextString(m) }
func (*QueryPlan) ProtoMessage() {}
func (*QueryPlan) Descriptor() ([]byte, []int) {
return fileDescriptor_query_plan_e20f6b3462ee8118, []int{1}
return fileDescriptor_query_plan_4358903c1626addf, []int{1}
}
func (m *QueryPlan) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryPlan.Unmarshal(m, b)
@ -339,10 +339,10 @@ func init() {
}
func init() {
proto.RegisterFile("google/spanner/v1/query_plan.proto", fileDescriptor_query_plan_e20f6b3462ee8118)
proto.RegisterFile("google/spanner/v1/query_plan.proto", fileDescriptor_query_plan_4358903c1626addf)
}
var fileDescriptor_query_plan_e20f6b3462ee8118 = []byte{
var fileDescriptor_query_plan_4358903c1626addf = []byte{
// 604 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xd3, 0x4c,
0x10, 0xfd, 0x9c, 0x26, 0xf9, 0x9a, 0x09, 0x4a, 0xc3, 0xb6, 0xa8, 0x56, 0x40, 0xc2, 0x44, 0x42,

View File

@ -32,8 +32,13 @@ type ResultSet struct {
// encoded based on type as described
// [here][google.spanner.v1.TypeCode].
Rows []*_struct.ListValue `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"`
// Query plan and execution statistics for the query that produced this
// result set. These can be requested by setting
// Query plan and execution statistics for the SQL statement that
// produced this result set. These can be requested by setting
// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
// DML statements always produce stats containing the number of rows
// modified, unless executed using the
// [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
// Other fields may or may not be populated, based on the
// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
Stats *ResultSetStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -45,7 +50,7 @@ func (m *ResultSet) Reset() { *m = ResultSet{} }
func (m *ResultSet) String() string { return proto.CompactTextString(m) }
func (*ResultSet) ProtoMessage() {}
func (*ResultSet) Descriptor() ([]byte, []int) {
return fileDescriptor_result_set_d3beff64c1ecf5a2, []int{0}
return fileDescriptor_result_set_3e9de0c6b2df2a7c, []int{0}
}
func (m *ResultSet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResultSet.Unmarshal(m, b)
@ -177,10 +182,12 @@ type PartialResultSet struct {
// `resume_token`. Note that executing any other transaction in the
// same session invalidates the token.
ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"`
// Query plan and execution statistics for the query that produced this
// Query plan and execution statistics for the statement that produced this
// streaming result set. These can be requested by setting
// [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
// only once with the last response in the stream.
// This field will also be present in the last response for DML
// statements.
Stats *ResultSetStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -191,7 +198,7 @@ func (m *PartialResultSet) Reset() { *m = PartialResultSet{} }
func (m *PartialResultSet) String() string { return proto.CompactTextString(m) }
func (*PartialResultSet) ProtoMessage() {}
func (*PartialResultSet) Descriptor() ([]byte, []int) {
return fileDescriptor_result_set_d3beff64c1ecf5a2, []int{1}
return fileDescriptor_result_set_3e9de0c6b2df2a7c, []int{1}
}
func (m *PartialResultSet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PartialResultSet.Unmarshal(m, b)
@ -269,7 +276,7 @@ func (m *ResultSetMetadata) Reset() { *m = ResultSetMetadata{} }
func (m *ResultSetMetadata) String() string { return proto.CompactTextString(m) }
func (*ResultSetMetadata) ProtoMessage() {}
func (*ResultSetMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_result_set_d3beff64c1ecf5a2, []int{2}
return fileDescriptor_result_set_3e9de0c6b2df2a7c, []int{2}
}
func (m *ResultSetMetadata) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResultSetMetadata.Unmarshal(m, b)
@ -316,17 +323,23 @@ type ResultSetStats struct {
// "elapsed_time": "1.22 secs",
// "cpu_time": "1.19 secs"
// }
QueryStats *_struct.Struct `protobuf:"bytes,2,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
QueryStats *_struct.Struct `protobuf:"bytes,2,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"`
// The number of rows modified by the DML statement.
//
// Types that are valid to be assigned to RowCount:
// *ResultSetStats_RowCountExact
// *ResultSetStats_RowCountLowerBound
RowCount isResultSetStats_RowCount `protobuf_oneof:"row_count"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResultSetStats) Reset() { *m = ResultSetStats{} }
func (m *ResultSetStats) String() string { return proto.CompactTextString(m) }
func (*ResultSetStats) ProtoMessage() {}
func (*ResultSetStats) Descriptor() ([]byte, []int) {
return fileDescriptor_result_set_d3beff64c1ecf5a2, []int{3}
return fileDescriptor_result_set_3e9de0c6b2df2a7c, []int{3}
}
func (m *ResultSetStats) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResultSetStats.Unmarshal(m, b)
@ -360,6 +373,107 @@ func (m *ResultSetStats) GetQueryStats() *_struct.Struct {
return nil
}
type isResultSetStats_RowCount interface {
isResultSetStats_RowCount()
}
type ResultSetStats_RowCountExact struct {
RowCountExact int64 `protobuf:"varint,3,opt,name=row_count_exact,json=rowCountExact,proto3,oneof"`
}
type ResultSetStats_RowCountLowerBound struct {
RowCountLowerBound int64 `protobuf:"varint,4,opt,name=row_count_lower_bound,json=rowCountLowerBound,proto3,oneof"`
}
func (*ResultSetStats_RowCountExact) isResultSetStats_RowCount() {}
func (*ResultSetStats_RowCountLowerBound) isResultSetStats_RowCount() {}
func (m *ResultSetStats) GetRowCount() isResultSetStats_RowCount {
if m != nil {
return m.RowCount
}
return nil
}
func (m *ResultSetStats) GetRowCountExact() int64 {
if x, ok := m.GetRowCount().(*ResultSetStats_RowCountExact); ok {
return x.RowCountExact
}
return 0
}
func (m *ResultSetStats) GetRowCountLowerBound() int64 {
if x, ok := m.GetRowCount().(*ResultSetStats_RowCountLowerBound); ok {
return x.RowCountLowerBound
}
return 0
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*ResultSetStats) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _ResultSetStats_OneofMarshaler, _ResultSetStats_OneofUnmarshaler, _ResultSetStats_OneofSizer, []interface{}{
(*ResultSetStats_RowCountExact)(nil),
(*ResultSetStats_RowCountLowerBound)(nil),
}
}
func _ResultSetStats_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*ResultSetStats)
// row_count
switch x := m.RowCount.(type) {
case *ResultSetStats_RowCountExact:
b.EncodeVarint(3<<3 | proto.WireVarint)
b.EncodeVarint(uint64(x.RowCountExact))
case *ResultSetStats_RowCountLowerBound:
b.EncodeVarint(4<<3 | proto.WireVarint)
b.EncodeVarint(uint64(x.RowCountLowerBound))
case nil:
default:
return fmt.Errorf("ResultSetStats.RowCount has unexpected type %T", x)
}
return nil
}
func _ResultSetStats_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*ResultSetStats)
switch tag {
case 3: // row_count.row_count_exact
if wire != proto.WireVarint {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeVarint()
m.RowCount = &ResultSetStats_RowCountExact{int64(x)}
return true, err
case 4: // row_count.row_count_lower_bound
if wire != proto.WireVarint {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeVarint()
m.RowCount = &ResultSetStats_RowCountLowerBound{int64(x)}
return true, err
default:
return false, nil
}
}
func _ResultSetStats_OneofSizer(msg proto.Message) (n int) {
m := msg.(*ResultSetStats)
// row_count
switch x := m.RowCount.(type) {
case *ResultSetStats_RowCountExact:
n += 1 // tag and wire
n += proto.SizeVarint(uint64(x.RowCountExact))
case *ResultSetStats_RowCountLowerBound:
n += 1 // tag and wire
n += proto.SizeVarint(uint64(x.RowCountLowerBound))
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
func init() {
proto.RegisterType((*ResultSet)(nil), "google.spanner.v1.ResultSet")
proto.RegisterType((*PartialResultSet)(nil), "google.spanner.v1.PartialResultSet")
@ -368,41 +482,44 @@ func init() {
}
func init() {
proto.RegisterFile("google/spanner/v1/result_set.proto", fileDescriptor_result_set_d3beff64c1ecf5a2)
proto.RegisterFile("google/spanner/v1/result_set.proto", fileDescriptor_result_set_3e9de0c6b2df2a7c)
}
var fileDescriptor_result_set_d3beff64c1ecf5a2 = []byte{
// 501 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcd, 0x6e, 0x13, 0x31,
0x14, 0x85, 0xe5, 0xf4, 0x87, 0xd4, 0x13, 0x10, 0xb5, 0x04, 0x1d, 0x45, 0x05, 0xa5, 0x29, 0x8b,
0xac, 0x3c, 0x4a, 0x59, 0x10, 0xa9, 0x9b, 0xaa, 0x2c, 0xd8, 0x80, 0x14, 0x9c, 0x28, 0x0b, 0x14,
0x69, 0xe4, 0x26, 0x66, 0x18, 0x75, 0x62, 0x4f, 0x6d, 0x4f, 0xa2, 0x3c, 0x00, 0x62, 0xc9, 0x9e,
0x47, 0xe0, 0x01, 0x78, 0x08, 0x9e, 0x88, 0x25, 0xf2, 0xcf, 0x24, 0x81, 0x19, 0x21, 0x21, 0x75,
0xe7, 0xf8, 0x7e, 0xe7, 0x9e, 0x7b, 0x3c, 0x37, 0xb0, 0x9b, 0x08, 0x91, 0x64, 0x2c, 0x52, 0x39,
0xe5, 0x9c, 0xc9, 0x68, 0xd9, 0x8f, 0x24, 0x53, 0x45, 0xa6, 0x63, 0xc5, 0x34, 0xce, 0xa5, 0xd0,
0x02, 0x1d, 0x3b, 0x06, 0x7b, 0x06, 0x2f, 0xfb, 0xed, 0x53, 0x2f, 0xa3, 0x79, 0x1a, 0x51, 0xce,
0x85, 0xa6, 0x3a, 0x15, 0x5c, 0x39, 0xc1, 0xa6, 0x6a, 0x7f, 0xdd, 0x14, 0x1f, 0x23, 0xa5, 0x65,
0x31, 0xf3, 0xed, 0xda, 0x35, 0x96, 0x77, 0x05, 0x93, 0xeb, 0x38, 0xcf, 0x28, 0xf7, 0xcc, 0x79,
0x95, 0xd1, 0x92, 0x72, 0x45, 0x67, 0xc6, 0xe7, 0x2f, 0x9b, 0x5d, 0x68, 0x9d, 0x33, 0x57, 0xed,
0xfe, 0x00, 0xf0, 0x88, 0xd8, 0x28, 0x23, 0xa6, 0xd1, 0x15, 0x6c, 0x2e, 0x98, 0xa6, 0x73, 0xaa,
0x69, 0x08, 0x3a, 0xa0, 0x17, 0x5c, 0xbc, 0xc0, 0x95, 0x58, 0x78, 0xc3, 0xbf, 0xf3, 0x2c, 0xd9,
0xa8, 0x10, 0x86, 0xfb, 0x52, 0xac, 0x54, 0xd8, 0xe8, 0xec, 0xf5, 0x82, 0x8b, 0x76, 0xa9, 0x2e,
0x33, 0xe2, 0xb7, 0xa9, 0xd2, 0x13, 0x9a, 0x15, 0x8c, 0x58, 0x0e, 0xbd, 0x82, 0x07, 0x4a, 0x53,
0xad, 0xc2, 0x3d, 0x6b, 0x77, 0xf6, 0x2f, 0xbb, 0x91, 0x01, 0x89, 0xe3, 0xbb, 0x9f, 0x1b, 0xf0,
0xf1, 0x90, 0x4a, 0x9d, 0xd2, 0xec, 0x7e, 0xe7, 0x3f, 0x5c, 0x9a, 0xf1, 0xca, 0x04, 0x4f, 0x2b,
0x09, 0xdc, 0xf4, 0x9e, 0x42, 0xe7, 0xf0, 0xe1, 0xec, 0x53, 0xc1, 0x6f, 0xd9, 0x3c, 0xb6, 0x37,
0x36, 0x47, 0x93, 0xb4, 0xfc, 0xa5, 0x85, 0xd1, 0x19, 0x6c, 0x99, 0x75, 0x59, 0xb0, 0x58, 0x8b,
0x5b, 0xc6, 0xc3, 0xfd, 0x0e, 0xe8, 0xb5, 0x48, 0xe0, 0xee, 0xc6, 0xe6, 0x6a, 0xfb, 0x0e, 0x07,
0xff, 0xf9, 0x0e, 0x5f, 0x01, 0x3c, 0xae, 0x04, 0x42, 0x03, 0xd8, 0x94, 0x62, 0x15, 0x9b, 0x0f,
0xed, 0x1f, 0xe2, 0x59, 0x4d, 0xc7, 0x91, 0x5d, 0xb8, 0xf1, 0x3a, 0x67, 0xe4, 0x81, 0x14, 0x2b,
0x73, 0x40, 0x57, 0x30, 0xd8, 0xd9, 0xa1, 0xb0, 0x61, 0xc5, 0xcf, 0x6b, 0xc4, 0xe3, 0x2d, 0x45,
0x76, 0x25, 0xdd, 0x2f, 0x00, 0x3e, 0xfa, 0x73, 0x56, 0x74, 0x09, 0xe1, 0x76, 0x79, 0xfd, 0x40,
0xa7, 0x35, 0x3d, 0xdf, 0x1b, 0x68, 0x98, 0x51, 0x4e, 0x8e, 0xee, 0xca, 0x23, 0x1a, 0xc0, 0xc0,
0x89, 0xdd, 0x03, 0xb9, 0x89, 0x4e, 0x2a, 0xdf, 0xc5, 0x85, 0x21, 0xce, 0xc8, 0xda, 0x5e, 0x7f,
0x03, 0xf0, 0xc9, 0x4c, 0x2c, 0xaa, 0x46, 0xd7, 0xdb, 0x01, 0x87, 0x46, 0x3f, 0x04, 0x1f, 0x06,
0x1e, 0x4a, 0x44, 0x46, 0x79, 0x82, 0x85, 0x4c, 0xa2, 0x84, 0x71, 0xdb, 0x3d, 0x72, 0x25, 0x9a,
0xa7, 0x6a, 0xe7, 0x5f, 0x74, 0xe9, 0x8f, 0xbf, 0x00, 0xf8, 0xde, 0x38, 0x79, 0xe3, 0xd4, 0xaf,
0x33, 0x51, 0xcc, 0xf1, 0xc8, 0x1b, 0x4d, 0xfa, 0x3f, 0xcb, 0xca, 0xd4, 0x56, 0xa6, 0xbe, 0x32,
0x9d, 0xf4, 0x6f, 0x0e, 0x6d, 0xef, 0x97, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x06, 0x67, 0x6c,
0xee, 0x5c, 0x04, 0x00, 0x00,
var fileDescriptor_result_set_3e9de0c6b2df2a7c = []byte{
// 560 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcf, 0x6e, 0x13, 0x3f,
0x10, 0xc7, 0x7f, 0x4e, 0xda, 0xfe, 0x12, 0x6f, 0x0a, 0xd4, 0x52, 0x69, 0x14, 0x15, 0x94, 0xa6,
0x1c, 0x72, 0xda, 0x55, 0xda, 0x03, 0x91, 0x7a, 0xa9, 0x52, 0x21, 0x38, 0x14, 0x29, 0x38, 0x51,
0x0e, 0x28, 0xd2, 0xca, 0xd9, 0x98, 0x25, 0xea, 0xc6, 0xde, 0xda, 0xde, 0x84, 0x3c, 0x00, 0x67,
0xee, 0x3c, 0x02, 0x0f, 0xc0, 0x43, 0xf0, 0x3a, 0x5c, 0x38, 0x22, 0xff, 0xd9, 0x24, 0xb0, 0x11,
0x12, 0x12, 0x37, 0xef, 0xcc, 0xe7, 0xeb, 0x99, 0xef, 0x78, 0x16, 0xb6, 0x62, 0xce, 0xe3, 0x84,
0x06, 0x32, 0x25, 0x8c, 0x51, 0x11, 0x2c, 0x3a, 0x81, 0xa0, 0x32, 0x4b, 0x54, 0x28, 0xa9, 0xf2,
0x53, 0xc1, 0x15, 0x47, 0x47, 0x96, 0xf1, 0x1d, 0xe3, 0x2f, 0x3a, 0x8d, 0x53, 0x27, 0x23, 0xe9,
0x2c, 0x20, 0x8c, 0x71, 0x45, 0xd4, 0x8c, 0x33, 0x69, 0x05, 0xeb, 0xac, 0xf9, 0x9a, 0x64, 0xef,
0x02, 0xa9, 0x44, 0x16, 0xb9, 0xeb, 0x1a, 0x3b, 0x4a, 0xde, 0x67, 0x54, 0xac, 0xc2, 0x34, 0x21,
0xcc, 0x31, 0xe7, 0x45, 0x46, 0x09, 0xc2, 0x24, 0x89, 0x74, 0x9d, 0xdf, 0xca, 0x6c, 0x43, 0xab,
0x94, 0xda, 0x6c, 0xeb, 0x2b, 0x80, 0x55, 0x6c, 0xac, 0x0c, 0xa8, 0x42, 0xd7, 0xb0, 0x32, 0xa7,
0x8a, 0x4c, 0x89, 0x22, 0x75, 0xd0, 0x04, 0x6d, 0xef, 0xe2, 0x99, 0x5f, 0xb0, 0xe5, 0xaf, 0xf9,
0xd7, 0x8e, 0xc5, 0x6b, 0x15, 0xf2, 0xe1, 0x9e, 0xe0, 0x4b, 0x59, 0x2f, 0x35, 0xcb, 0x6d, 0xef,
0xa2, 0x91, 0xab, 0x73, 0x8f, 0xfe, 0xed, 0x4c, 0xaa, 0x11, 0x49, 0x32, 0x8a, 0x0d, 0x87, 0x9e,
0xc3, 0x7d, 0xa9, 0x88, 0x92, 0xf5, 0xb2, 0x29, 0x77, 0xf6, 0xa7, 0x72, 0x03, 0x0d, 0x62, 0xcb,
0xb7, 0x3e, 0x96, 0xe0, 0xa3, 0x3e, 0x11, 0x6a, 0x46, 0x92, 0x7f, 0xdb, 0xff, 0xc1, 0x42, 0xb7,
0x97, 0x3b, 0x78, 0x5c, 0x70, 0x60, 0xbb, 0x77, 0x14, 0x3a, 0x87, 0x87, 0xd1, 0xfb, 0x8c, 0xdd,
0xd1, 0x69, 0x68, 0x22, 0xc6, 0x47, 0x05, 0xd7, 0x5c, 0xd0, 0xc0, 0xe8, 0x0c, 0xd6, 0xf4, 0xba,
0xcc, 0x69, 0xa8, 0xf8, 0x1d, 0x65, 0xf5, 0xbd, 0x26, 0x68, 0xd7, 0xb0, 0x67, 0x63, 0x43, 0x1d,
0xda, 0xcc, 0x61, 0xff, 0x2f, 0xe7, 0xf0, 0x09, 0xc0, 0xa3, 0x82, 0x21, 0xd4, 0x85, 0x15, 0xc1,
0x97, 0xa1, 0x7e, 0x68, 0x37, 0x88, 0x27, 0x3b, 0x6e, 0x1c, 0x98, 0x85, 0x1b, 0xae, 0x52, 0x8a,
0xff, 0x17, 0x7c, 0xa9, 0x0f, 0xe8, 0x1a, 0x7a, 0x5b, 0x3b, 0x54, 0x2f, 0x19, 0xf1, 0xd3, 0x1d,
0xe2, 0xe1, 0x86, 0xc2, 0xdb, 0x92, 0xd6, 0x77, 0x00, 0x1f, 0xfc, 0xda, 0x2b, 0xba, 0x82, 0x70,
0xb3, 0xbc, 0xae, 0xa1, 0xd3, 0x1d, 0x77, 0xbe, 0xd1, 0x50, 0x3f, 0x21, 0x0c, 0x57, 0xef, 0xf3,
0x23, 0xea, 0x42, 0xcf, 0x8a, 0xed, 0x80, 0x6c, 0x47, 0x27, 0x85, 0x77, 0xb1, 0x66, 0xb0, 0x2d,
0x64, 0xcb, 0xb6, 0xe1, 0x43, 0x3d, 0x85, 0x88, 0x67, 0x4c, 0x85, 0xf4, 0x03, 0x89, 0x94, 0x79,
0x9e, 0xf2, 0xab, 0xff, 0xf0, 0xa1, 0xe0, 0xcb, 0x1b, 0x1d, 0x7f, 0xa1, 0xc3, 0xe8, 0x12, 0x1e,
0x6f, 0xc8, 0x84, 0x2f, 0xa9, 0x08, 0x27, 0x3c, 0x63, 0x53, 0xf3, 0x54, 0x9a, 0x47, 0x39, 0x7f,
0xab, 0x93, 0x3d, 0x9d, 0xeb, 0x79, 0xb0, 0xba, 0x16, 0xf5, 0x3e, 0x03, 0x78, 0x1c, 0xf1, 0x79,
0xd1, 0x54, 0x6f, 0x33, 0x8c, 0xbe, 0xee, 0xb5, 0x0f, 0xde, 0x76, 0x1d, 0x14, 0xf3, 0x84, 0xb0,
0xd8, 0xe7, 0x22, 0x0e, 0x62, 0xca, 0x8c, 0x93, 0xc0, 0xa6, 0x48, 0x3a, 0x93, 0x5b, 0x7f, 0xec,
0x95, 0x3b, 0xfe, 0x00, 0xe0, 0x4b, 0xe9, 0xe4, 0xa5, 0x55, 0xdf, 0x24, 0x3c, 0x9b, 0xfa, 0x03,
0x57, 0x68, 0xd4, 0xf9, 0x96, 0x67, 0xc6, 0x26, 0x33, 0x76, 0x99, 0xf1, 0xa8, 0x33, 0x39, 0x30,
0x77, 0x5f, 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x73, 0xdc, 0x50, 0xf9, 0xc8, 0x04, 0x00, 0x00,
}

View File

@ -27,18 +27,17 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// Mode in which the query must be processed.
// Mode in which the statement must be processed.
type ExecuteSqlRequest_QueryMode int32
const (
// The default mode where only the query result, without any information
// about the query plan is returned.
// The default mode. Only the statement results are returned.
ExecuteSqlRequest_NORMAL ExecuteSqlRequest_QueryMode = 0
// This mode returns only the query plan, without any result rows or
// This mode returns only the query plan, without any results or
// execution statistics information.
ExecuteSqlRequest_PLAN ExecuteSqlRequest_QueryMode = 1
// This mode returns both the query plan and the execution statistics along
// with the result rows.
// with the results.
ExecuteSqlRequest_PROFILE ExecuteSqlRequest_QueryMode = 2
)
@ -57,7 +56,7 @@ func (x ExecuteSqlRequest_QueryMode) String() string {
return proto.EnumName(ExecuteSqlRequest_QueryMode_name, int32(x))
}
func (ExecuteSqlRequest_QueryMode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{6, 0}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{6, 0}
}
// The request for [CreateSession][google.spanner.v1.Spanner.CreateSession].
@ -75,7 +74,7 @@ func (m *CreateSessionRequest) Reset() { *m = CreateSessionRequest{} }
func (m *CreateSessionRequest) String() string { return proto.CompactTextString(m) }
func (*CreateSessionRequest) ProtoMessage() {}
func (*CreateSessionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{0}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{0}
}
func (m *CreateSessionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateSessionRequest.Unmarshal(m, b)
@ -138,7 +137,7 @@ func (m *Session) Reset() { *m = Session{} }
func (m *Session) String() string { return proto.CompactTextString(m) }
func (*Session) ProtoMessage() {}
func (*Session) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{1}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{1}
}
func (m *Session) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Session.Unmarshal(m, b)
@ -199,7 +198,7 @@ func (m *GetSessionRequest) Reset() { *m = GetSessionRequest{} }
func (m *GetSessionRequest) String() string { return proto.CompactTextString(m) }
func (*GetSessionRequest) ProtoMessage() {}
func (*GetSessionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{2}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{2}
}
func (m *GetSessionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSessionRequest.Unmarshal(m, b)
@ -257,7 +256,7 @@ func (m *ListSessionsRequest) Reset() { *m = ListSessionsRequest{} }
func (m *ListSessionsRequest) String() string { return proto.CompactTextString(m) }
func (*ListSessionsRequest) ProtoMessage() {}
func (*ListSessionsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{3}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{3}
}
func (m *ListSessionsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListSessionsRequest.Unmarshal(m, b)
@ -322,7 +321,7 @@ func (m *ListSessionsResponse) Reset() { *m = ListSessionsResponse{} }
func (m *ListSessionsResponse) String() string { return proto.CompactTextString(m) }
func (*ListSessionsResponse) ProtoMessage() {}
func (*ListSessionsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{4}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{4}
}
func (m *ListSessionsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListSessionsResponse.Unmarshal(m, b)
@ -369,7 +368,7 @@ func (m *DeleteSessionRequest) Reset() { *m = DeleteSessionRequest{} }
func (m *DeleteSessionRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteSessionRequest) ProtoMessage() {}
func (*DeleteSessionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{5}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{5}
}
func (m *DeleteSessionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteSessionRequest.Unmarshal(m, b)
@ -403,10 +402,21 @@ type ExecuteSqlRequest struct {
Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
// The transaction to use. If none is provided, the default is a
// temporary read-only transaction with strong concurrency.
//
// The transaction to use.
//
// For queries, if none is provided, the default is a temporary read-only
// transaction with strong concurrency.
//
// Standard DML statements require a ReadWrite transaction. Single-use
// transactions are not supported (to avoid replay). The caller must
// either supply an existing transaction ID or begin a new transaction.
//
// Partitioned DML requires an existing PartitionedDml transaction ID.
Transaction *TransactionSelector `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
// Required. The SQL query string.
// Required. The SQL string.
Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"`
// The SQL query string can contain parameter placeholders. A parameter
// The SQL string can contain parameter placeholders. A parameter
// placeholder consists of `'@'` followed by the parameter
// name. Parameter names consist of any combination of letters,
// numbers, and underscores.
@ -415,7 +425,7 @@ type ExecuteSqlRequest struct {
// parameter name can be used more than once, for example:
// `"WHERE id > @msg_id AND id < @msg_id + 100"`
//
// It is an error to execute an SQL query with unbound parameters.
// It is an error to execute an SQL statement with unbound parameters.
//
// Parameter values are specified using `params`, which is a JSON
// object whose keys are parameter names, and whose values are the
@ -426,14 +436,14 @@ type ExecuteSqlRequest struct {
// of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
//
// In these cases, `param_types` can be used to specify the exact
// SQL type for some or all of the SQL query parameters. See the
// SQL type for some or all of the SQL statement parameters. See the
// definition of [Type][google.spanner.v1.Type] for more information
// about SQL types.
ParamTypes map[string]*Type `protobuf:"bytes,5,rep,name=param_types,json=paramTypes,proto3" json:"param_types,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// If this request is resuming a previously interrupted SQL query
// If this request is resuming a previously interrupted SQL statement
// execution, `resume_token` should be copied from the last
// [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
// enables the new SQL query execution to resume where the last one left
// enables the new SQL statement execution to resume where the last one left
// off. The rest of the request parameters must exactly match the
// request that yielded this token.
ResumeToken []byte `protobuf:"bytes,6,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"`
@ -445,7 +455,18 @@ type ExecuteSqlRequest struct {
// previously created using PartitionQuery(). There must be an exact
// match for the values of fields common to this message and the
// PartitionQueryRequest message used to create this partition_token.
PartitionToken []byte `protobuf:"bytes,8,opt,name=partition_token,json=partitionToken,proto3" json:"partition_token,omitempty"`
PartitionToken []byte `protobuf:"bytes,8,opt,name=partition_token,json=partitionToken,proto3" json:"partition_token,omitempty"`
// A per-transaction sequence number used to identify this request. This
// makes each request idempotent such that if the request is received multiple
// times, at most one will succeed.
//
// The sequence number must be monotonically increasing within the
// transaction. If a request arrives for the first time with an out-of-order
// sequence number, the transaction may be aborted. Replays of previously
// handled requests will yield the same response as the first execution.
//
// Required for DML statements. Ignored for queries.
Seqno int64 `protobuf:"varint,9,opt,name=seqno,proto3" json:"seqno,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -455,7 +476,7 @@ func (m *ExecuteSqlRequest) Reset() { *m = ExecuteSqlRequest{} }
func (m *ExecuteSqlRequest) String() string { return proto.CompactTextString(m) }
func (*ExecuteSqlRequest) ProtoMessage() {}
func (*ExecuteSqlRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{6}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{6}
}
func (m *ExecuteSqlRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteSqlRequest.Unmarshal(m, b)
@ -531,6 +552,13 @@ func (m *ExecuteSqlRequest) GetPartitionToken() []byte {
return nil
}
func (m *ExecuteSqlRequest) GetSeqno() int64 {
if m != nil {
return m.Seqno
}
return 0
}
// Options for a PartitionQueryRequest and
// PartitionReadRequest.
type PartitionOptions struct {
@ -559,7 +587,7 @@ func (m *PartitionOptions) Reset() { *m = PartitionOptions{} }
func (m *PartitionOptions) String() string { return proto.CompactTextString(m) }
func (*PartitionOptions) ProtoMessage() {}
func (*PartitionOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{7}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{7}
}
func (m *PartitionOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PartitionOptions.Unmarshal(m, b)
@ -606,6 +634,10 @@ type PartitionQueryRequest struct {
// union operator conceptually divides one or more tables into multiple
// splits, remotely evaluates a subquery independently on each split, and
// then unions all results.
//
// This must not contain DML commands, such as INSERT, UPDATE, or
// DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a
// PartitionedDml transaction for large, partition-friendly DML operations.
Sql string `protobuf:"bytes,3,opt,name=sql,proto3" json:"sql,omitempty"`
// The SQL query string can contain parameter placeholders. A parameter
// placeholder consists of `'@'` followed by the parameter
@ -642,7 +674,7 @@ func (m *PartitionQueryRequest) Reset() { *m = PartitionQueryRequest{} }
func (m *PartitionQueryRequest) String() string { return proto.CompactTextString(m) }
func (*PartitionQueryRequest) ProtoMessage() {}
func (*PartitionQueryRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{8}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{8}
}
func (m *PartitionQueryRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PartitionQueryRequest.Unmarshal(m, b)
@ -739,7 +771,7 @@ func (m *PartitionReadRequest) Reset() { *m = PartitionReadRequest{} }
func (m *PartitionReadRequest) String() string { return proto.CompactTextString(m) }
func (*PartitionReadRequest) ProtoMessage() {}
func (*PartitionReadRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{9}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{9}
}
func (m *PartitionReadRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PartitionReadRequest.Unmarshal(m, b)
@ -824,7 +856,7 @@ func (m *Partition) Reset() { *m = Partition{} }
func (m *Partition) String() string { return proto.CompactTextString(m) }
func (*Partition) ProtoMessage() {}
func (*Partition) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{10}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{10}
}
func (m *Partition) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Partition.Unmarshal(m, b)
@ -867,7 +899,7 @@ func (m *PartitionResponse) Reset() { *m = PartitionResponse{} }
func (m *PartitionResponse) String() string { return proto.CompactTextString(m) }
func (*PartitionResponse) ProtoMessage() {}
func (*PartitionResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{11}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{11}
}
func (m *PartitionResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PartitionResponse.Unmarshal(m, b)
@ -956,7 +988,7 @@ func (m *ReadRequest) Reset() { *m = ReadRequest{} }
func (m *ReadRequest) String() string { return proto.CompactTextString(m) }
func (*ReadRequest) ProtoMessage() {}
func (*ReadRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{12}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{12}
}
func (m *ReadRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadRequest.Unmarshal(m, b)
@ -1054,7 +1086,7 @@ func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest
func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) }
func (*BeginTransactionRequest) ProtoMessage() {}
func (*BeginTransactionRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{13}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{13}
}
func (m *BeginTransactionRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeginTransactionRequest.Unmarshal(m, b)
@ -1111,7 +1143,7 @@ func (m *CommitRequest) Reset() { *m = CommitRequest{} }
func (m *CommitRequest) String() string { return proto.CompactTextString(m) }
func (*CommitRequest) ProtoMessage() {}
func (*CommitRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{14}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{14}
}
func (m *CommitRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommitRequest.Unmarshal(m, b)
@ -1265,7 +1297,7 @@ func (m *CommitResponse) Reset() { *m = CommitResponse{} }
func (m *CommitResponse) String() string { return proto.CompactTextString(m) }
func (*CommitResponse) ProtoMessage() {}
func (*CommitResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{15}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{15}
}
func (m *CommitResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommitResponse.Unmarshal(m, b)
@ -1307,7 +1339,7 @@ func (m *RollbackRequest) Reset() { *m = RollbackRequest{} }
func (m *RollbackRequest) String() string { return proto.CompactTextString(m) }
func (*RollbackRequest) ProtoMessage() {}
func (*RollbackRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_spanner_d2fc31bf582f58c8, []int{16}
return fileDescriptor_spanner_3c084839ce4aa03b, []int{16}
}
func (m *RollbackRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RollbackRequest.Unmarshal(m, b)
@ -1405,12 +1437,12 @@ type SpannerClient interface {
ListSessions(ctx context.Context, in *ListSessionsRequest, opts ...grpc.CallOption) (*ListSessionsResponse, error)
// Ends a session, releasing server resources associated with it.
DeleteSession(ctx context.Context, in *DeleteSessionRequest, opts ...grpc.CallOption) (*empty.Empty, error)
// Executes an SQL query, returning all rows in a single reply. This
// Executes an SQL statement, returning all results in a single reply. This
// method cannot be used to return a result set larger than 10 MiB;
// if the query yields more data than that, the query fails with
// a `FAILED_PRECONDITION` error.
//
// Queries inside read-write transactions might return `ABORTED`. If
// Operations inside read-write transactions might return `ABORTED`. If
// this occurs, the application should restart the transaction from
// the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
//
@ -1472,17 +1504,25 @@ type SpannerClient interface {
// of the query result to read. The same session and read-only transaction
// must be used by the PartitionQueryRequest used to create the
// partition tokens and the ExecuteSqlRequests that use the partition tokens.
//
// Partition tokens become invalid when the session used to create them
// is deleted or begins a new transaction.
// is deleted, is idle for too long, begins a new transaction, or becomes too
// old. When any of these happen, it is not possible to resume the query, and
// the whole operation must be restarted from the beginning.
PartitionQuery(ctx context.Context, in *PartitionQueryRequest, opts ...grpc.CallOption) (*PartitionResponse, error)
// Creates a set of partition tokens that can be used to execute a read
// operation in parallel. Each of the returned partition tokens can be used
// by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read
// result to read. The same session and read-only transaction must be used by
// the PartitionReadRequest used to create the partition tokens and the
// ReadRequests that use the partition tokens.
// ReadRequests that use the partition tokens. There are no ordering
// guarantees on rows returned among the returned partition tokens, or even
// within each individual StreamingRead call issued with a partition_token.
//
// Partition tokens become invalid when the session used to create them
// is deleted or begins a new transaction.
// is deleted, is idle for too long, begins a new transaction, or becomes too
// old. When any of these happen, it is not possible to resume the read, and
// the whole operation must be restarted from the beginning.
PartitionRead(ctx context.Context, in *PartitionReadRequest, opts ...grpc.CallOption) (*PartitionResponse, error)
}
@ -1687,12 +1727,12 @@ type SpannerServer interface {
ListSessions(context.Context, *ListSessionsRequest) (*ListSessionsResponse, error)
// Ends a session, releasing server resources associated with it.
DeleteSession(context.Context, *DeleteSessionRequest) (*empty.Empty, error)
// Executes an SQL query, returning all rows in a single reply. This
// Executes an SQL statement, returning all results in a single reply. This
// method cannot be used to return a result set larger than 10 MiB;
// if the query yields more data than that, the query fails with
// a `FAILED_PRECONDITION` error.
//
// Queries inside read-write transactions might return `ABORTED`. If
// Operations inside read-write transactions might return `ABORTED`. If
// this occurs, the application should restart the transaction from
// the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
//
@ -1754,17 +1794,25 @@ type SpannerServer interface {
// of the query result to read. The same session and read-only transaction
// must be used by the PartitionQueryRequest used to create the
// partition tokens and the ExecuteSqlRequests that use the partition tokens.
//
// Partition tokens become invalid when the session used to create them
// is deleted or begins a new transaction.
// is deleted, is idle for too long, begins a new transaction, or becomes too
// old. When any of these happen, it is not possible to resume the query, and
// the whole operation must be restarted from the beginning.
PartitionQuery(context.Context, *PartitionQueryRequest) (*PartitionResponse, error)
// Creates a set of partition tokens that can be used to execute a read
// operation in parallel. Each of the returned partition tokens can be used
// by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read
// result to read. The same session and read-only transaction must be used by
// the PartitionReadRequest used to create the partition tokens and the
// ReadRequests that use the partition tokens.
// ReadRequests that use the partition tokens. There are no ordering
// guarantees on rows returned among the returned partition tokens, or even
// within each individual StreamingRead call issued with a partition_token.
//
// Partition tokens become invalid when the session used to create them
// is deleted or begins a new transaction.
// is deleted, is idle for too long, begins a new transaction, or becomes too
// old. When any of these happen, it is not possible to resume the read, and
// the whole operation must be restarted from the beginning.
PartitionRead(context.Context, *PartitionReadRequest) (*PartitionResponse, error)
}
@ -2077,113 +2125,114 @@ var _Spanner_serviceDesc = grpc.ServiceDesc{
}
func init() {
proto.RegisterFile("google/spanner/v1/spanner.proto", fileDescriptor_spanner_d2fc31bf582f58c8)
proto.RegisterFile("google/spanner/v1/spanner.proto", fileDescriptor_spanner_3c084839ce4aa03b)
}
var fileDescriptor_spanner_d2fc31bf582f58c8 = []byte{
// 1657 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xdd, 0x6f, 0x53, 0xc9,
0x15, 0xe7, 0xda, 0x89, 0x13, 0x1f, 0xc7, 0x89, 0x33, 0x98, 0x60, 0x0c, 0x85, 0x70, 0xf9, 0x48,
0x64, 0xa9, 0x36, 0x49, 0x51, 0x15, 0x02, 0x2d, 0x10, 0x08, 0x90, 0x92, 0x10, 0x73, 0x9d, 0x80,
0x8a, 0xa8, 0xac, 0xb1, 0x3d, 0xb8, 0xb7, 0xb9, 0x5f, 0xb9, 0x33, 0x8e, 0x62, 0x2a, 0x5e, 0x5a,
0xf5, 0xbd, 0x2d, 0xaa, 0xfa, 0xd0, 0xbe, 0xed, 0xdb, 0x8a, 0x47, 0x24, 0xde, 0xf6, 0x65, 0xa5,
0x7d, 0x58, 0x69, 0x9f, 0xf6, 0x5f, 0xd8, 0xff, 0x62, 0x5f, 0x56, 0x33, 0xf7, 0xc3, 0xd7, 0xf6,
0xc4, 0x31, 0x32, 0xbb, 0xd2, 0x6a, 0x9f, 0x3c, 0x33, 0xe7, 0xcc, 0x9c, 0xdf, 0xfd, 0x9d, 0x33,
0x73, 0xce, 0x31, 0x5c, 0x68, 0xda, 0x76, 0xd3, 0x20, 0x25, 0xea, 0x60, 0xcb, 0x22, 0x6e, 0xe9,
0x60, 0x29, 0x18, 0x16, 0x1d, 0xd7, 0x66, 0x36, 0x9a, 0xf5, 0x14, 0x8a, 0xc1, 0xea, 0xc1, 0x52,
0xfe, 0x9c, 0xbf, 0x07, 0x3b, 0x7a, 0x09, 0x5b, 0x96, 0xcd, 0x30, 0xd3, 0x6d, 0x8b, 0x7a, 0x1b,
0xf2, 0x67, 0x7d, 0xa9, 0x98, 0xd5, 0x5a, 0xaf, 0x4a, 0xc4, 0x74, 0x58, 0xdb, 0x17, 0x9e, 0xeb,
0x15, 0x52, 0xe6, 0xb6, 0xea, 0xcc, 0x97, 0x5e, 0xe8, 0x95, 0x32, 0xdd, 0x24, 0x94, 0x61, 0xd3,
0xe9, 0xd9, 0x1e, 0x41, 0xbb, 0x47, 0xda, 0x81, 0xe5, 0xf9, 0x7e, 0xa9, 0xd9, 0xf2, 0xc0, 0xf9,
0x1a, 0x6a, 0xbf, 0x86, 0x4b, 0x68, 0xcb, 0x60, 0x55, 0x4a, 0x02, 0x10, 0x97, 0xfa, 0x75, 0x98,
0x8b, 0x2d, 0x8a, 0xeb, 0x91, 0x83, 0x24, 0x40, 0x58, 0xdb, 0x21, 0x9e, 0x54, 0xfd, 0x33, 0x64,
0xef, 0xb9, 0x04, 0x33, 0x52, 0x21, 0x94, 0xea, 0xb6, 0xa5, 0x91, 0xfd, 0x16, 0xa1, 0x0c, 0xe5,
0x61, 0xb2, 0x81, 0x19, 0xae, 0x61, 0x4a, 0x72, 0xca, 0xbc, 0xb2, 0x98, 0xd4, 0xc2, 0x39, 0xba,
0x0e, 0x13, 0xd4, 0xd3, 0xce, 0xc5, 0xe6, 0x95, 0xc5, 0xd4, 0x72, 0xbe, 0xd8, 0xc7, 0x7c, 0x31,
0x38, 0x2f, 0x50, 0x55, 0xdf, 0xc5, 0x60, 0xc2, 0x5f, 0x44, 0x08, 0xc6, 0x2c, 0x6c, 0x06, 0x27,
0x8b, 0x31, 0xfa, 0x3d, 0x24, 0x0c, 0x5c, 0x23, 0x06, 0xcd, 0xc5, 0xe6, 0xe3, 0x8b, 0xa9, 0xe5,
0xab, 0x47, 0x1f, 0x5a, 0xdc, 0x14, 0x8a, 0xeb, 0x16, 0x73, 0xdb, 0x9a, 0xbf, 0x0b, 0xdd, 0x84,
0x54, 0x5d, 0x7c, 0x49, 0x95, 0xbb, 0x22, 0x17, 0xef, 0x46, 0x16, 0xf8, 0xa9, 0xb8, 0x13, 0xf8,
0x49, 0x03, 0x4f, 0x9d, 0x2f, 0xa0, 0x5d, 0x38, 0x83, 0x1d, 0xc7, 0xb5, 0x0f, 0x75, 0x93, 0x9f,
0x60, 0x60, 0xca, 0xaa, 0x2d, 0xea, 0x1f, 0x35, 0x76, 0xec, 0x51, 0x73, 0x91, 0xcd, 0x9b, 0x98,
0xb2, 0x5d, 0x2a, 0x8e, 0xcd, 0xdf, 0x80, 0x54, 0x04, 0x2a, 0xca, 0x40, 0x7c, 0x8f, 0xb4, 0xfd,
0xaf, 0xe6, 0x43, 0x94, 0x85, 0xf1, 0x03, 0x6c, 0xb4, 0x88, 0x20, 0x32, 0xa9, 0x79, 0x93, 0xd5,
0xd8, 0x8a, 0xa2, 0x2e, 0xc0, 0xec, 0x43, 0xc2, 0x7a, 0xbc, 0x22, 0xe1, 0x4d, 0xfd, 0x87, 0x02,
0x27, 0x37, 0x75, 0x1a, 0xa8, 0xd2, 0x61, 0x3c, 0x78, 0x16, 0x92, 0x0e, 0x6e, 0x92, 0x2a, 0xd5,
0x5f, 0x7b, 0xa6, 0xc7, 0xb5, 0x49, 0xbe, 0x50, 0xd1, 0x5f, 0x13, 0xf4, 0x2b, 0x00, 0x21, 0x64,
0xf6, 0x1e, 0xb1, 0x04, 0x8f, 0x49, 0x4d, 0xa8, 0xef, 0xf0, 0x05, 0x34, 0x07, 0x89, 0x57, 0xba,
0xc1, 0x88, 0x2b, 0x78, 0x49, 0x6a, 0xfe, 0x4c, 0x3d, 0x80, 0x6c, 0x37, 0x0c, 0xea, 0xd8, 0x16,
0x25, 0xe8, 0xb7, 0x30, 0xe9, 0x87, 0x00, 0xcd, 0x29, 0xc2, 0xb3, 0x83, 0xc2, 0x25, 0xd4, 0x45,
0x57, 0x61, 0xc6, 0x22, 0x87, 0xac, 0x1a, 0xc1, 0xe2, 0x91, 0x94, 0xe6, 0xcb, 0xe5, 0x00, 0x8f,
0x5a, 0x80, 0xec, 0x7d, 0x62, 0x90, 0xbe, 0x08, 0x96, 0x71, 0xf5, 0x7e, 0x0c, 0x66, 0xd7, 0x0f,
0x49, 0xbd, 0xc5, 0x48, 0x65, 0xdf, 0x08, 0x34, 0x73, 0x9d, 0x78, 0xf6, 0x94, 0x83, 0x29, 0x7a,
0x04, 0xa9, 0xc8, 0x85, 0xf2, 0xa3, 0x5d, 0x16, 0x98, 0x3b, 0x1d, 0xad, 0x0a, 0x31, 0x48, 0x9d,
0xd9, 0xae, 0x16, 0xdd, 0xca, 0x5d, 0x4f, 0xf7, 0x0d, 0x9f, 0x4d, 0x3e, 0x44, 0x25, 0x48, 0x38,
0xd8, 0xc5, 0x26, 0xf5, 0xe3, 0xeb, 0x74, 0x5f, 0x7c, 0x55, 0xc4, 0x83, 0xa3, 0xf9, 0x6a, 0x68,
0x17, 0x52, 0x62, 0x54, 0xe5, 0xd7, 0x97, 0xe6, 0xc6, 0x05, 0x97, 0xd7, 0x25, 0x60, 0xfa, 0xbe,
0xb0, 0x58, 0xe6, 0xfb, 0x76, 0xf8, 0x36, 0xef, 0xce, 0x80, 0x13, 0x2e, 0xa0, 0x8b, 0x30, 0xc5,
0x1f, 0x16, 0x33, 0x20, 0x39, 0x31, 0xaf, 0x2c, 0x4e, 0x69, 0x29, 0x6f, 0xcd, 0x73, 0xf9, 0x16,
0xc0, 0x7e, 0x8b, 0xb8, 0xed, 0xaa, 0x69, 0x37, 0x48, 0x6e, 0x62, 0x5e, 0x59, 0x9c, 0x5e, 0x2e,
0x0e, 0x65, 0xf8, 0x29, 0xdf, 0xb6, 0x65, 0x37, 0x88, 0x96, 0xdc, 0x0f, 0x86, 0x68, 0x01, 0x66,
0x1c, 0xec, 0x32, 0x9d, 0x13, 0xe3, 0x1b, 0x9d, 0x14, 0x46, 0xa7, 0xc3, 0x65, 0x61, 0x37, 0xff,
0x0c, 0x66, 0x7a, 0x90, 0x4b, 0xae, 0xd0, 0xaf, 0xa3, 0x57, 0x28, 0x42, 0x63, 0xd4, 0x3b, 0x6d,
0x87, 0x44, 0xef, 0x56, 0x11, 0x92, 0x21, 0x30, 0x04, 0x90, 0x78, 0xb2, 0xad, 0x6d, 0xdd, 0xdd,
0xcc, 0x9c, 0x40, 0x93, 0x30, 0x56, 0xde, 0xbc, 0xfb, 0x24, 0xa3, 0xa0, 0x14, 0x4c, 0x94, 0xb5,
0xed, 0x07, 0x1b, 0x9b, 0xeb, 0x99, 0x98, 0xba, 0x07, 0x99, 0x72, 0x80, 0x6c, 0xdb, 0x11, 0x19,
0x04, 0x5d, 0x83, 0x6c, 0xe7, 0x23, 0xf8, 0x3d, 0xaa, 0xd6, 0xda, 0x8c, 0x50, 0x81, 0x2c, 0xae,
0xa1, 0x50, 0xc6, 0xaf, 0xd4, 0x1a, 0x97, 0xa0, 0x2b, 0x30, 0x6d, 0xe2, 0xc3, 0x6a, 0x28, 0xa1,
0x02, 0x71, 0x5c, 0x4b, 0x9b, 0xf8, 0x30, 0x3c, 0x9e, 0xaa, 0x5f, 0xc6, 0xe1, 0x54, 0x38, 0x15,
0x30, 0x7f, 0x66, 0x71, 0xfa, 0x47, 0x59, 0x9c, 0xae, 0x48, 0xc0, 0x48, 0xbf, 0x72, 0x60, 0xac,
0x96, 0x61, 0xb6, 0x43, 0xba, 0xed, 0x79, 0x42, 0x04, 0x6c, 0x6a, 0xf9, 0xd2, 0x20, 0x03, 0xbe,
0xd3, 0xb4, 0x8c, 0xd3, 0xb3, 0xf2, 0xa3, 0x85, 0xd8, 0x57, 0x31, 0xc8, 0x86, 0xe6, 0x35, 0x82,
0x1b, 0x3f, 0xa5, 0x13, 0xb3, 0x30, 0xce, 0x70, 0xcd, 0x20, 0xbe, 0x1b, 0xbd, 0x09, 0x5f, 0xd5,
0xad, 0x06, 0x39, 0xf4, 0xdf, 0x6d, 0x6f, 0xc2, 0xf1, 0xd4, 0x6d, 0xa3, 0x65, 0x5a, 0x9e, 0xa7,
0x92, 0x5a, 0x30, 0x45, 0xcb, 0x30, 0xb1, 0x47, 0xda, 0xbc, 0xdc, 0xf0, 0x29, 0x3e, 0x23, 0xc1,
0xf2, 0x98, 0xb4, 0x2b, 0x84, 0x69, 0x89, 0x3d, 0xf1, 0x2b, 0x77, 0x50, 0x72, 0x04, 0x07, 0xa9,
0xd7, 0x21, 0x19, 0x6a, 0xc9, 0x5e, 0x0e, 0x45, 0xf6, 0x72, 0xa8, 0x6f, 0x15, 0x98, 0x8d, 0xd0,
0xef, 0xa7, 0xa2, 0x5b, 0x3c, 0xb3, 0x85, 0xb7, 0xcf, 0x4b, 0x46, 0xe7, 0x06, 0xc1, 0xd2, 0x22,
0xfa, 0xe8, 0x8e, 0xcc, 0x3f, 0xe7, 0x07, 0xfb, 0xa7, 0xcb, 0x2f, 0xea, 0x37, 0x31, 0x48, 0xfd,
0x72, 0x62, 0x21, 0x0b, 0xe3, 0x86, 0x6e, 0xea, 0x4c, 0x3c, 0xee, 0x71, 0xcd, 0x9b, 0xf4, 0xa5,
0x9b, 0x64, 0x7f, 0xba, 0x91, 0x78, 0x19, 0xa4, 0x5e, 0x66, 0x70, 0x7a, 0x8d, 0x34, 0x75, 0x2b,
0x4a, 0xf8, 0xb1, 0xd4, 0xde, 0x86, 0x89, 0x20, 0x30, 0x3d, 0x5a, 0xaf, 0x0c, 0xa6, 0x35, 0x08,
0xcd, 0x60, 0x97, 0xfa, 0xbd, 0x02, 0xe9, 0x7b, 0xb6, 0x69, 0xea, 0xec, 0x78, 0x63, 0x0b, 0x30,
0x1d, 0x71, 0x46, 0x55, 0x6f, 0x08, 0x9b, 0x53, 0x8f, 0x4e, 0x68, 0xe9, 0xc8, 0xfa, 0x46, 0x03,
0xfd, 0x09, 0xe6, 0xa8, 0x6e, 0x35, 0x0d, 0xe2, 0x95, 0x9d, 0x11, 0xdf, 0xc7, 0x3f, 0x02, 0xe4,
0xa3, 0x13, 0x5a, 0xd6, 0x3b, 0x86, 0x57, 0xa0, 0x91, 0x28, 0xb8, 0x01, 0xc9, 0xa0, 0xbf, 0xe0,
0xef, 0x38, 0x0f, 0xfc, 0xb3, 0x92, 0x13, 0xb7, 0x7c, 0x1d, 0xad, 0xa3, 0xbd, 0x96, 0xee, 0x0a,
0x45, 0xf5, 0x39, 0x4c, 0x07, 0x1f, 0xef, 0xdf, 0xaa, 0x75, 0xc8, 0xd4, 0xc5, 0x4a, 0x35, 0xec,
0x81, 0x04, 0x0d, 0x83, 0x4b, 0xe6, 0x19, 0x6f, 0x4f, 0xb8, 0xa0, 0x6a, 0x30, 0xa3, 0xd9, 0x86,
0x51, 0xc3, 0xf5, 0xbd, 0xe3, 0x79, 0xbd, 0x22, 0xe7, 0xb5, 0x87, 0xd5, 0xe5, 0xbf, 0xcf, 0xc2,
0x44, 0xc5, 0xfb, 0x3c, 0xf4, 0x3f, 0xee, 0xb6, 0x68, 0xab, 0x83, 0x16, 0x24, 0x0c, 0xc8, 0x9a,
0xa1, 0xfc, 0x80, 0x82, 0x55, 0x5d, 0xff, 0xdb, 0xb7, 0xdf, 0xbd, 0x8d, 0xdd, 0x56, 0x57, 0x79,
0x63, 0xf5, 0xd7, 0xa0, 0xc2, 0xfe, 0x9d, 0xe3, 0xda, 0x7f, 0x21, 0x75, 0x46, 0x4b, 0x85, 0x92,
0x6e, 0x51, 0x86, 0xad, 0x3a, 0xe1, 0xe3, 0x40, 0x4e, 0x4b, 0x85, 0x37, 0xa5, 0xa0, 0xd4, 0x5d,
0x55, 0x0a, 0xe8, 0x9f, 0x0a, 0x40, 0xa7, 0xde, 0x47, 0x97, 0x25, 0x16, 0xfb, 0xda, 0x81, 0x81,
0xb8, 0xee, 0x08, 0x5c, 0xab, 0x68, 0x45, 0xe0, 0xe2, 0xd5, 0xef, 0x10, 0x98, 0x42, 0x48, 0xa5,
0xc2, 0x1b, 0xf4, 0x99, 0x02, 0x53, 0xd1, 0x8a, 0x1e, 0xc9, 0xde, 0x1f, 0x49, 0xe7, 0x91, 0x5f,
0x38, 0x56, 0xcf, 0x8b, 0x1c, 0x75, 0x4d, 0x60, 0xbc, 0x85, 0x46, 0xe0, 0x0e, 0xfd, 0x5b, 0x81,
0x74, 0x57, 0xfd, 0x2f, 0x75, 0xab, 0xac, 0x43, 0xc8, 0xcf, 0xf5, 0x85, 0xe7, 0x3a, 0xef, 0xff,
0x03, 0xea, 0x0a, 0x23, 0x51, 0x07, 0x9d, 0x62, 0x58, 0xea, 0xcd, 0xbe, 0x5a, 0x39, 0x2f, 0xcb,
0x44, 0x9a, 0x68, 0xf9, 0x2b, 0x84, 0xa9, 0x4f, 0x05, 0xa8, 0xc7, 0xea, 0x03, 0x01, 0xca, 0x37,
0xf6, 0x91, 0xb8, 0x56, 0x49, 0x68, 0x94, 0xc7, 0xdc, 0x17, 0x0a, 0x9c, 0x0c, 0x60, 0x30, 0x97,
0x60, 0x53, 0xb7, 0x9a, 0xc3, 0xc3, 0x3d, 0x32, 0x9f, 0x63, 0xa3, 0x83, 0xfa, 0x85, 0x40, 0xbd,
0xa3, 0x6e, 0x7f, 0x0a, 0xd4, 0x11, 0x8c, 0xab, 0x4a, 0xe1, 0x9a, 0x82, 0xfe, 0xa5, 0xc0, 0x18,
0xcf, 0xa7, 0xe8, 0xbc, 0x94, 0xba, 0x30, 0xd1, 0x1e, 0x43, 0xed, 0x63, 0x01, 0x72, 0x5d, 0xbd,
0x33, 0x0a, 0x48, 0x97, 0xe0, 0x06, 0x27, 0xf5, 0x9d, 0x02, 0xe9, 0x10, 0xe9, 0x50, 0xe0, 0x86,
0x22, 0x72, 0x47, 0x60, 0x7c, 0xa2, 0x6e, 0x8c, 0x82, 0x91, 0x46, 0x71, 0x79, 0x14, 0x7e, 0x50,
0x20, 0xd3, 0x9b, 0x43, 0x51, 0x41, 0x82, 0xe8, 0x88, 0x44, 0x9b, 0x3f, 0xa6, 0x00, 0x52, 0x9f,
0x0b, 0xe0, 0x4f, 0xd5, 0xcd, 0x51, 0x80, 0xd7, 0x7a, 0x8c, 0x73, 0xa2, 0xff, 0xaf, 0x40, 0xc2,
0xcb, 0x44, 0x68, 0x5e, 0xf6, 0x90, 0x47, 0x33, 0x74, 0xfe, 0xe2, 0x00, 0x0d, 0xff, 0x31, 0xda,
0x12, 0x40, 0x1f, 0xaa, 0x6b, 0xa3, 0x00, 0xf5, 0x92, 0x1a, 0x87, 0xf7, 0x5f, 0x05, 0x26, 0x83,
0x7c, 0x86, 0x54, 0x59, 0x08, 0x74, 0x27, 0xbb, 0x23, 0x5f, 0xa3, 0x6d, 0x81, 0x6b, 0x43, 0xbd,
0x3f, 0x52, 0x74, 0xfa, 0xc6, 0x38, 0xb2, 0x0f, 0x0a, 0x4c, 0x77, 0xb7, 0x5e, 0x68, 0x71, 0xd8,
0xee, 0x2c, 0x7f, 0x79, 0x60, 0xb9, 0x1c, 0x70, 0xb9, 0x2b, 0x30, 0x6f, 0xab, 0x7f, 0x18, 0x05,
0xb3, 0xd3, 0x05, 0x80, 0x23, 0x7f, 0xaf, 0x40, 0xba, 0xab, 0xa9, 0x92, 0xbe, 0xf5, 0xb2, 0xb6,
0x6b, 0x48, 0xdc, 0x9f, 0xe4, 0x96, 0x39, 0x51, 0xfb, 0xab, 0x4a, 0x61, 0xed, 0x3f, 0x0a, 0x9c,
0xaa, 0xdb, 0x66, 0x3f, 0x82, 0xb5, 0x29, 0xbf, 0x38, 0x29, 0x73, 0x97, 0x97, 0x95, 0x17, 0x2b,
0xbe, 0x4a, 0xd3, 0x36, 0xb0, 0xd5, 0x2c, 0xda, 0x6e, 0xb3, 0xd4, 0x24, 0x96, 0x08, 0x88, 0x92,
0x27, 0xc2, 0x8e, 0x4e, 0x23, 0x7f, 0xe5, 0xde, 0xf4, 0x87, 0x9f, 0xc7, 0x4e, 0x3f, 0xf4, 0xb6,
0xde, 0x33, 0xec, 0x56, 0xa3, 0xe8, 0x9f, 0x5b, 0x7c, 0xb6, 0xf4, 0x75, 0x20, 0x79, 0x29, 0x24,
0x2f, 0x7d, 0xc9, 0xcb, 0x67, 0x4b, 0xb5, 0x84, 0x38, 0xf8, 0x37, 0x3f, 0x04, 0x00, 0x00, 0xff,
0xff, 0x92, 0x18, 0x4b, 0x1c, 0x59, 0x17, 0x00, 0x00,
var fileDescriptor_spanner_3c084839ce4aa03b = []byte{
// 1673 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4f, 0x6f, 0x1b, 0xb9,
0x15, 0xcf, 0x48, 0xb6, 0x6c, 0x3d, 0x59, 0xb6, 0xcc, 0xd5, 0x3a, 0x5a, 0x25, 0xdd, 0xd5, 0xce,
0x6e, 0xd6, 0x86, 0x80, 0x4a, 0x6b, 0x37, 0x28, 0xbc, 0xde, 0x6d, 0x93, 0x38, 0x71, 0x12, 0x37,
0x76, 0xac, 0x8c, 0xec, 0x04, 0x0d, 0x52, 0x08, 0x94, 0xc4, 0xa8, 0x53, 0xcf, 0x3f, 0x0f, 0x29,
0xc3, 0x4a, 0x91, 0x4b, 0x8b, 0xde, 0xdb, 0x06, 0x45, 0x0f, 0xed, 0xad, 0xb7, 0x22, 0xc7, 0x02,
0xb9, 0xf5, 0x52, 0xa0, 0x87, 0x00, 0x3d, 0xf5, 0x2b, 0xf4, 0x5b, 0xf4, 0x52, 0x90, 0x9c, 0x19,
0x8d, 0x24, 0x5a, 0x56, 0xa0, 0xb4, 0x40, 0xb1, 0x27, 0x0d, 0xf9, 0x1e, 0xf9, 0x7e, 0xfc, 0xbd,
0x47, 0xbe, 0xf7, 0x04, 0x9f, 0x74, 0x5c, 0xb7, 0x63, 0x91, 0x2a, 0xf5, 0xb0, 0xe3, 0x10, 0xbf,
0x7a, 0xba, 0x1e, 0x7e, 0x56, 0x3c, 0xdf, 0x65, 0x2e, 0x5a, 0x96, 0x0a, 0x95, 0x70, 0xf6, 0x74,
0xbd, 0x78, 0x35, 0x58, 0x83, 0x3d, 0xb3, 0x8a, 0x1d, 0xc7, 0x65, 0x98, 0x99, 0xae, 0x43, 0xe5,
0x82, 0xe2, 0x95, 0x40, 0x2a, 0x46, 0xcd, 0xee, 0xf3, 0x2a, 0xb1, 0x3d, 0xd6, 0x0b, 0x84, 0x57,
0x87, 0x85, 0x94, 0xf9, 0xdd, 0x16, 0x0b, 0xa4, 0x9f, 0x0c, 0x4b, 0x99, 0x69, 0x13, 0xca, 0xb0,
0xed, 0x0d, 0x2d, 0x8f, 0xa1, 0x3d, 0x26, 0xbd, 0xd0, 0x72, 0x69, 0x54, 0x6a, 0x77, 0x25, 0xb8,
0x40, 0x43, 0x1f, 0xd5, 0xf0, 0x09, 0xed, 0x5a, 0xac, 0x41, 0x49, 0x08, 0xe2, 0xb3, 0x51, 0x1d,
0xe6, 0x63, 0x87, 0xe2, 0x56, 0x6c, 0x23, 0x05, 0x10, 0xd6, 0xf3, 0x88, 0x94, 0xea, 0x3f, 0x85,
0xfc, 0x6d, 0x9f, 0x60, 0x46, 0xea, 0x84, 0x52, 0xd3, 0x75, 0x0c, 0x72, 0xd2, 0x25, 0x94, 0xa1,
0x22, 0xcc, 0xb7, 0x31, 0xc3, 0x4d, 0x4c, 0x49, 0x41, 0x2b, 0x69, 0x6b, 0x69, 0x23, 0x1a, 0xa3,
0xeb, 0x30, 0x47, 0xa5, 0x76, 0x21, 0x51, 0xd2, 0xd6, 0x32, 0x1b, 0xc5, 0xca, 0x08, 0xf3, 0x95,
0x70, 0xbf, 0x50, 0x55, 0x7f, 0x9d, 0x80, 0xb9, 0x60, 0x12, 0x21, 0x98, 0x71, 0xb0, 0x1d, 0xee,
0x2c, 0xbe, 0xd1, 0x0f, 0x21, 0x65, 0xe1, 0x26, 0xb1, 0x68, 0x21, 0x51, 0x4a, 0xae, 0x65, 0x36,
0xbe, 0x38, 0x7f, 0xd3, 0xca, 0x9e, 0x50, 0xdc, 0x71, 0x98, 0xdf, 0x33, 0x82, 0x55, 0xe8, 0x6b,
0xc8, 0xb4, 0xc4, 0x49, 0x1a, 0xdc, 0x15, 0x85, 0xe4, 0x20, 0xb2, 0xd0, 0x4f, 0x95, 0xc3, 0xd0,
0x4f, 0x06, 0x48, 0x75, 0x3e, 0x81, 0x8e, 0xe0, 0x23, 0xec, 0x79, 0xbe, 0x7b, 0x66, 0xda, 0x7c,
0x07, 0x0b, 0x53, 0xd6, 0xe8, 0xd2, 0x60, 0xab, 0x99, 0x0b, 0xb7, 0x5a, 0x89, 0x2d, 0xde, 0xc3,
0x94, 0x1d, 0x51, 0xb1, 0x6d, 0xf1, 0x2b, 0xc8, 0xc4, 0xa0, 0xa2, 0x1c, 0x24, 0x8f, 0x49, 0x2f,
0x38, 0x35, 0xff, 0x44, 0x79, 0x98, 0x3d, 0xc5, 0x56, 0x97, 0x08, 0x22, 0xd3, 0x86, 0x1c, 0x6c,
0x25, 0x36, 0x35, 0x7d, 0x15, 0x96, 0xef, 0x11, 0x36, 0xe4, 0x15, 0x05, 0x6f, 0xfa, 0xaf, 0x34,
0xf8, 0x60, 0xcf, 0xa4, 0xa1, 0x2a, 0x9d, 0xc4, 0x83, 0x57, 0x20, 0xed, 0xe1, 0x0e, 0x69, 0x50,
0xf3, 0x85, 0x34, 0x3d, 0x6b, 0xcc, 0xf3, 0x89, 0xba, 0xf9, 0x82, 0xa0, 0xef, 0x00, 0x08, 0x21,
0x73, 0x8f, 0x89, 0x23, 0x78, 0x4c, 0x1b, 0x42, 0xfd, 0x90, 0x4f, 0xa0, 0x15, 0x48, 0x3d, 0x37,
0x2d, 0x46, 0x7c, 0xc1, 0x4b, 0xda, 0x08, 0x46, 0xfa, 0x29, 0xe4, 0x07, 0x61, 0x50, 0xcf, 0x75,
0x28, 0x41, 0xdf, 0x87, 0xf9, 0x20, 0x04, 0x68, 0x41, 0x13, 0x9e, 0x1d, 0x17, 0x2e, 0x91, 0x2e,
0xfa, 0x02, 0x96, 0x1c, 0x72, 0xc6, 0x1a, 0x31, 0x2c, 0x92, 0xa4, 0x2c, 0x9f, 0xae, 0x85, 0x78,
0xf4, 0x32, 0xe4, 0xef, 0x10, 0x8b, 0x8c, 0x44, 0xb0, 0x8a, 0xab, 0xb7, 0x33, 0xb0, 0xbc, 0x73,
0x46, 0x5a, 0x5d, 0x46, 0xea, 0x27, 0x56, 0xa8, 0x59, 0xe8, 0xc7, 0xb3, 0x54, 0x0e, 0x87, 0xe8,
0x3e, 0x64, 0x62, 0x17, 0x2a, 0x88, 0x76, 0x55, 0x60, 0x1e, 0xf6, 0xb5, 0xea, 0xc4, 0x22, 0x2d,
0xe6, 0xfa, 0x46, 0x7c, 0x29, 0x77, 0x3d, 0x3d, 0xb1, 0x02, 0x36, 0xf9, 0x27, 0xaa, 0x42, 0xca,
0xc3, 0x3e, 0xb6, 0x69, 0x10, 0x5f, 0x97, 0x47, 0xe2, 0xab, 0x2e, 0x1e, 0x1c, 0x23, 0x50, 0x43,
0x47, 0x90, 0x11, 0x5f, 0x0d, 0x7e, 0x7d, 0x69, 0x61, 0x56, 0x70, 0x79, 0x5d, 0x01, 0x66, 0xe4,
0x84, 0x95, 0x1a, 0x5f, 0x77, 0xc8, 0x97, 0xc9, 0x3b, 0x03, 0x5e, 0x34, 0x81, 0x3e, 0x85, 0x05,
0xfe, 0xb0, 0xd8, 0x21, 0xc9, 0xa9, 0x92, 0xb6, 0xb6, 0x60, 0x64, 0xe4, 0x9c, 0x74, 0xf9, 0x3e,
0xc0, 0x49, 0x97, 0xf8, 0xbd, 0x86, 0xed, 0xb6, 0x49, 0x61, 0xae, 0xa4, 0xad, 0x2d, 0x6e, 0x54,
0x26, 0x32, 0xfc, 0x88, 0x2f, 0xdb, 0x77, 0xdb, 0xc4, 0x48, 0x9f, 0x84, 0x9f, 0x68, 0x15, 0x96,
0x3c, 0xec, 0x33, 0x93, 0x13, 0x13, 0x18, 0x9d, 0x17, 0x46, 0x17, 0xa3, 0x69, 0x69, 0x37, 0x0f,
0xb3, 0x94, 0x9c, 0x38, 0x6e, 0x21, 0x5d, 0xd2, 0xd6, 0x92, 0x86, 0x1c, 0x14, 0x1f, 0xc3, 0xd2,
0xd0, 0x79, 0x14, 0x17, 0xeb, 0xbb, 0xf1, 0x8b, 0x15, 0x23, 0x37, 0xee, 0xb3, 0x9e, 0x47, 0xe2,
0x37, 0xae, 0x02, 0xe9, 0x08, 0x2e, 0x02, 0x48, 0x3d, 0x3c, 0x30, 0xf6, 0x6f, 0xed, 0xe5, 0x2e,
0xa1, 0x79, 0x98, 0xa9, 0xed, 0xdd, 0x7a, 0x98, 0xd3, 0x50, 0x06, 0xe6, 0x6a, 0xc6, 0xc1, 0xdd,
0xdd, 0xbd, 0x9d, 0x5c, 0x42, 0x3f, 0x86, 0x5c, 0x2d, 0xc4, 0x7b, 0xe0, 0x89, 0xbc, 0x82, 0xbe,
0x84, 0x7c, 0xff, 0x68, 0xfc, 0x76, 0x35, 0x9a, 0x3d, 0x46, 0xa8, 0x40, 0x96, 0x34, 0x50, 0x24,
0xe3, 0x17, 0x6d, 0x9b, 0x4b, 0xd0, 0x35, 0x58, 0xb4, 0xf1, 0x59, 0x23, 0x92, 0x50, 0x81, 0x38,
0x69, 0x64, 0x6d, 0x7c, 0x16, 0x6d, 0x4f, 0xf5, 0xbf, 0x25, 0xe1, 0xc3, 0x68, 0x28, 0x60, 0xfe,
0x9f, 0x45, 0xef, 0x8f, 0x55, 0xd1, 0xbb, 0xa9, 0x00, 0xa3, 0x3c, 0xe5, 0xd8, 0x08, 0xae, 0xc1,
0x72, 0x9f, 0x74, 0x57, 0x7a, 0x42, 0x84, 0x71, 0x66, 0xe3, 0xb3, 0x71, 0x06, 0x02, 0xa7, 0x19,
0x39, 0x6f, 0x68, 0xe6, 0xbf, 0x16, 0x62, 0x7f, 0x4f, 0x40, 0x3e, 0x32, 0x6f, 0x10, 0xdc, 0xfe,
0x5f, 0x3a, 0x31, 0x0f, 0xb3, 0x0c, 0x37, 0x2d, 0x12, 0xb8, 0x51, 0x0e, 0xf8, 0xac, 0xe9, 0xb4,
0xc9, 0x59, 0xf0, 0x9a, 0xcb, 0x01, 0xc7, 0xd3, 0x72, 0xad, 0xae, 0xed, 0x48, 0x4f, 0xa5, 0x8d,
0x70, 0x88, 0x36, 0x60, 0xee, 0x98, 0xf4, 0x78, 0x11, 0x12, 0x50, 0xfc, 0x91, 0x02, 0xcb, 0x03,
0xd2, 0xab, 0x13, 0x66, 0xa4, 0x8e, 0xc5, 0xaf, 0xda, 0x41, 0xe9, 0x29, 0x1c, 0xa4, 0x5f, 0x87,
0x74, 0xa4, 0xa5, 0x7a, 0x4f, 0x34, 0xd5, 0x7b, 0xa2, 0xbf, 0xd2, 0x60, 0x39, 0x46, 0x7f, 0x90,
0xa0, 0xbe, 0xe1, 0xf9, 0x2e, 0xba, 0x7d, 0x32, 0x45, 0x5d, 0x1d, 0x07, 0xcb, 0x88, 0xe9, 0xa3,
0x9b, 0x2a, 0xff, 0x7c, 0x3c, 0xde, 0x3f, 0x03, 0x7e, 0xd1, 0xff, 0x91, 0x80, 0xcc, 0xb7, 0x27,
0x16, 0xf2, 0x30, 0x6b, 0x99, 0xb6, 0xc9, 0xc4, 0x93, 0x9f, 0x34, 0xe4, 0x60, 0x24, 0x09, 0xa5,
0x47, 0x93, 0x90, 0xc2, 0xcb, 0xa0, 0xf4, 0x32, 0x83, 0xcb, 0xdb, 0xa4, 0x63, 0x3a, 0x71, 0xc2,
0x2f, 0xa4, 0xf6, 0x06, 0xcc, 0x85, 0x81, 0x29, 0x69, 0xbd, 0x36, 0x9e, 0xd6, 0x30, 0x34, 0xc3,
0x55, 0xfa, 0xbf, 0x35, 0xc8, 0xde, 0x76, 0x6d, 0xdb, 0x64, 0x17, 0x1b, 0x5b, 0x85, 0xc5, 0x98,
0x33, 0x1a, 0x66, 0x5b, 0xd8, 0x5c, 0xb8, 0x7f, 0xc9, 0xc8, 0xc6, 0xe6, 0x77, 0xdb, 0xe8, 0x27,
0xb0, 0x42, 0x4d, 0xa7, 0x63, 0x11, 0x59, 0x8c, 0xc6, 0x7c, 0x9f, 0x7c, 0x07, 0x90, 0xf7, 0x2f,
0x19, 0x79, 0xb9, 0x0d, 0xaf, 0x4b, 0x63, 0x51, 0xf0, 0x15, 0xa4, 0xc3, 0xae, 0x83, 0xbf, 0xe3,
0x3c, 0xf0, 0xaf, 0x28, 0x76, 0xdc, 0x0f, 0x74, 0x8c, 0xbe, 0xf6, 0x76, 0x76, 0x20, 0x14, 0xf5,
0x27, 0xb0, 0x18, 0x1e, 0x3e, 0xb8, 0x55, 0x3b, 0x90, 0x6b, 0x89, 0x99, 0x46, 0xd4, 0x19, 0x09,
0x1a, 0xc6, 0x17, 0xd2, 0x4b, 0x72, 0x4d, 0x34, 0xa1, 0x1b, 0xb0, 0x64, 0xb8, 0x96, 0xd5, 0xc4,
0xad, 0xe3, 0x8b, 0x79, 0xbd, 0xa6, 0xe6, 0x75, 0x88, 0xd5, 0x8d, 0x5f, 0x2e, 0xc3, 0x5c, 0x5d,
0x1e, 0x0f, 0xfd, 0x81, 0xbb, 0x2d, 0xde, 0x00, 0xa1, 0x55, 0x05, 0x03, 0xaa, 0x16, 0xa9, 0x38,
0xa6, 0x8c, 0xd5, 0x77, 0x7e, 0xf1, 0xcf, 0x7f, 0xbd, 0x4a, 0xdc, 0xd0, 0xb7, 0x78, 0xbb, 0xf5,
0xf3, 0xb0, 0xee, 0xfe, 0x81, 0xe7, 0xbb, 0x3f, 0x23, 0x2d, 0x46, 0xab, 0xe5, 0xaa, 0xe9, 0x50,
0x86, 0x9d, 0x16, 0xe1, 0xdf, 0xa1, 0x9c, 0x56, 0xcb, 0x2f, 0xab, 0x61, 0x01, 0xbc, 0xa5, 0x95,
0xd1, 0xaf, 0x35, 0x80, 0x7e, 0x17, 0x80, 0x3e, 0x57, 0x58, 0x1c, 0x69, 0x12, 0xc6, 0xe2, 0xba,
0x29, 0x70, 0x6d, 0xa1, 0x4d, 0x81, 0x8b, 0xd7, 0xc4, 0x13, 0x60, 0x8a, 0x20, 0x55, 0xcb, 0x2f,
0xd1, 0x9f, 0x34, 0x58, 0x88, 0xd7, 0xf9, 0x48, 0xf5, 0xfe, 0x28, 0xfa, 0x91, 0xe2, 0xea, 0x85,
0x7a, 0x32, 0x72, 0xf4, 0x6d, 0x81, 0xf1, 0x1b, 0x34, 0x05, 0x77, 0xe8, 0xb7, 0x1a, 0x64, 0x07,
0xba, 0x02, 0xa5, 0x5b, 0x55, 0x7d, 0x43, 0x71, 0x65, 0x24, 0x3c, 0x77, 0x6c, 0x8f, 0xf5, 0x42,
0xea, 0xca, 0x53, 0x51, 0x07, 0xfd, 0x12, 0x59, 0xe9, 0xcd, 0x91, 0x0a, 0xba, 0xa8, 0xca, 0x44,
0x86, 0xf8, 0x23, 0xa0, 0x4e, 0x98, 0xfe, 0x48, 0x80, 0x7a, 0xa0, 0xdf, 0x15, 0xa0, 0x02, 0x63,
0xef, 0x88, 0x6b, 0x8b, 0x44, 0x46, 0x79, 0xcc, 0xfd, 0x55, 0x83, 0x0f, 0x42, 0x18, 0xcc, 0x27,
0xd8, 0x36, 0x9d, 0xce, 0xe4, 0x70, 0xcf, 0xcd, 0xe7, 0xd8, 0xea, 0xa3, 0x7e, 0x2a, 0x50, 0x1f,
0xea, 0x07, 0xef, 0x03, 0x75, 0x0c, 0xe3, 0x96, 0x56, 0xfe, 0x52, 0x43, 0xbf, 0xd1, 0x60, 0x86,
0xe7, 0x53, 0xf4, 0xb1, 0x92, 0xba, 0x28, 0xd1, 0x5e, 0x40, 0xed, 0x03, 0x01, 0x72, 0x47, 0xbf,
0x39, 0x0d, 0x48, 0x9f, 0xe0, 0x36, 0x27, 0xf5, 0xb5, 0x06, 0xd9, 0x08, 0xe9, 0x44, 0xe0, 0x26,
0x22, 0xf2, 0x50, 0x60, 0x7c, 0xa8, 0xef, 0x4e, 0x83, 0x91, 0xc6, 0x71, 0x49, 0x0a, 0xdf, 0x68,
0x90, 0x1b, 0xce, 0xa1, 0xa8, 0xac, 0x40, 0x74, 0x4e, 0xa2, 0x2d, 0x5e, 0x50, 0x00, 0xe9, 0x4f,
0x04, 0xf0, 0x47, 0xfa, 0xde, 0x34, 0xc0, 0x9b, 0x43, 0xc6, 0x39, 0xd1, 0x7f, 0xd4, 0x20, 0x25,
0x33, 0x11, 0x2a, 0xa9, 0x1e, 0xf2, 0x78, 0x86, 0x2e, 0x7e, 0x3a, 0x46, 0x23, 0x78, 0x8c, 0xf6,
0x05, 0xd0, 0x7b, 0xfa, 0xf6, 0x34, 0x40, 0x65, 0x52, 0xe3, 0xf0, 0x7e, 0xaf, 0xc1, 0x7c, 0x98,
0xcf, 0x90, 0xae, 0x0a, 0x81, 0xc1, 0x64, 0x77, 0xee, 0x6b, 0x74, 0x20, 0x70, 0xed, 0xea, 0x77,
0xa6, 0x8a, 0xce, 0xc0, 0x18, 0x47, 0xf6, 0x46, 0x83, 0xc5, 0xc1, 0xd6, 0x0b, 0xad, 0x4d, 0xda,
0x9d, 0x15, 0x3f, 0x1f, 0x5b, 0x2e, 0x87, 0x5c, 0x1e, 0x09, 0xcc, 0x07, 0xfa, 0x8f, 0xa6, 0xc1,
0xec, 0x0d, 0x00, 0xe0, 0xc8, 0xff, 0xa2, 0x41, 0x76, 0xa0, 0xa9, 0x52, 0xbe, 0xf5, 0xaa, 0xb6,
0x6b, 0x42, 0xdc, 0xef, 0xe5, 0x96, 0x79, 0x71, 0xfb, 0x5b, 0x5a, 0x79, 0xfb, 0x77, 0x1a, 0x7c,
0xd8, 0x72, 0xed, 0x51, 0x04, 0xdb, 0x0b, 0x41, 0x71, 0x52, 0xe3, 0x2e, 0xaf, 0x69, 0x4f, 0x37,
0x03, 0x95, 0x8e, 0x6b, 0x61, 0xa7, 0x53, 0x71, 0xfd, 0x4e, 0xb5, 0x43, 0x1c, 0x11, 0x10, 0x55,
0x29, 0xc2, 0x9e, 0x49, 0x63, 0x7f, 0xf0, 0x7e, 0x1d, 0x7c, 0xfe, 0x39, 0x71, 0xf9, 0x9e, 0x5c,
0x7a, 0xdb, 0x72, 0xbb, 0xed, 0x4a, 0xb0, 0x6f, 0xe5, 0xf1, 0xfa, 0xdb, 0x50, 0xf2, 0x4c, 0x48,
0x9e, 0x05, 0x92, 0x67, 0x8f, 0xd7, 0x9b, 0x29, 0xb1, 0xf1, 0xf7, 0xfe, 0x13, 0x00, 0x00, 0xff,
0xff, 0x06, 0xd0, 0xcf, 0xc4, 0x6f, 0x17, 0x00, 0x00,
}

View File

@ -31,7 +31,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
//
// # Transaction Modes
//
// Cloud Spanner supports two transaction modes:
// Cloud Spanner supports three transaction modes:
//
// 1. Locking read-write. This type of transaction is the only way
// to write data into Cloud Spanner. These transactions rely on
@ -45,6 +45,13 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// read at timestamps in the past. Snapshot read-only
// transactions do not need to be committed.
//
// 3. Partitioned DML. This type of transaction is used to execute
// a single Partitioned DML statement. Partitioned DML partitions
// the key space and runs the DML statement over each partition
// in parallel using separate, internal transactions that commit
// independently. Partitioned DML transactions do not need to be
// committed.
//
// For transactions that only read, snapshot read-only transactions
// provide simpler semantics and are almost always faster. In
// particular, read-only transactions do not take locks, so they do
@ -71,11 +78,8 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// inactivity at the client may cause Cloud Spanner to release a
// transaction's locks and abort it.
//
// Reads performed within a transaction acquire locks on the data
// being read. Writes can only be done at commit time, after all reads
// have been completed.
// Conceptually, a read-write transaction consists of zero or more
// reads or SQL queries followed by
// reads or SQL statements followed by
// [Commit][google.spanner.v1.Spanner.Commit]. At any time before
// [Commit][google.spanner.v1.Spanner.Commit], the client can send a
// [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the
@ -238,11 +242,68 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// restriction also applies to in-progress reads and/or SQL queries whose
// timestamp become too old while executing. Reads and SQL queries with
// too-old read timestamps fail with the error `FAILED_PRECONDITION`.
//
// ## Partitioned DML Transactions
//
// Partitioned DML transactions are used to execute DML statements with a
// different execution strategy that provides different, and often better,
// scalability properties for large, table-wide operations than DML in a
// ReadWrite transaction. Smaller scoped statements, such as an OLTP workload,
// should prefer using ReadWrite transactions.
//
// Partitioned DML partitions the keyspace and runs the DML statement on each
// partition in separate, internal transactions. These transactions commit
// automatically when complete, and run independently from one another.
//
// To reduce lock contention, this execution strategy only acquires read locks
// on rows that match the WHERE clause of the statement. Additionally, the
// smaller per-partition transactions hold locks for less time.
//
// That said, Partitioned DML is not a drop-in replacement for standard DML used
// in ReadWrite transactions.
//
// - The DML statement must be fully-partitionable. Specifically, the statement
// must be expressible as the union of many statements which each access only
// a single row of the table.
//
// - The statement is not applied atomically to all rows of the table. Rather,
// the statement is applied atomically to partitions of the table, in
// independent transactions. Secondary index rows are updated atomically
// with the base table rows.
//
// - Partitioned DML does not guarantee exactly-once execution semantics
// against a partition. The statement will be applied at least once to each
// partition. It is strongly recommended that the DML statement should be
// idempotent to avoid unexpected results. For instance, it is potentially
// dangerous to run a statement such as
// `UPDATE table SET column = column + 1` as it could be run multiple times
// against some rows.
//
// - The partitions are committed automatically - there is no support for
// Commit or Rollback. If the call returns an error, or if the client issuing
// the ExecuteSql call dies, it is possible that some rows had the statement
// executed on them successfully. It is also possible that statement was
// never executed against other rows.
//
// - Partitioned DML transactions may only contain the execution of a single
// DML statement via ExecuteSql or ExecuteStreamingSql.
//
// - If any error is encountered during the execution of the partitioned DML
// operation (for instance, a UNIQUE INDEX violation, division by zero, or a
// value that cannot be stored due to schema constraints), then the
// operation is stopped at that point and an error is returned. It is
// possible that at this point, some partitions have been committed (or even
// committed multiple times), and other partitions have not been run at all.
//
// Given the above, Partitioned DML is good fit for large, database-wide,
// operations that are idempotent, such as deleting old rows from a very large
// table.
type TransactionOptions struct {
// Required. The type of transaction.
//
// Types that are valid to be assigned to Mode:
// *TransactionOptions_ReadWrite_
// *TransactionOptions_PartitionedDml_
// *TransactionOptions_ReadOnly_
Mode isTransactionOptions_Mode `protobuf_oneof:"mode"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -254,7 +315,7 @@ func (m *TransactionOptions) Reset() { *m = TransactionOptions{} }
func (m *TransactionOptions) String() string { return proto.CompactTextString(m) }
func (*TransactionOptions) ProtoMessage() {}
func (*TransactionOptions) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_1d57af638fc1a731, []int{0}
return fileDescriptor_transaction_4c490d83ade001ee, []int{0}
}
func (m *TransactionOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionOptions.Unmarshal(m, b)
@ -282,12 +343,18 @@ type TransactionOptions_ReadWrite_ struct {
ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,1,opt,name=read_write,json=readWrite,proto3,oneof"`
}
type TransactionOptions_PartitionedDml_ struct {
PartitionedDml *TransactionOptions_PartitionedDml `protobuf:"bytes,3,opt,name=partitioned_dml,json=partitionedDml,proto3,oneof"`
}
type TransactionOptions_ReadOnly_ struct {
ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"`
}
func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {}
func (*TransactionOptions_PartitionedDml_) isTransactionOptions_Mode() {}
func (*TransactionOptions_ReadOnly_) isTransactionOptions_Mode() {}
func (m *TransactionOptions) GetMode() isTransactionOptions_Mode {
@ -304,6 +371,13 @@ func (m *TransactionOptions) GetReadWrite() *TransactionOptions_ReadWrite {
return nil
}
func (m *TransactionOptions) GetPartitionedDml() *TransactionOptions_PartitionedDml {
if x, ok := m.GetMode().(*TransactionOptions_PartitionedDml_); ok {
return x.PartitionedDml
}
return nil
}
func (m *TransactionOptions) GetReadOnly() *TransactionOptions_ReadOnly {
if x, ok := m.GetMode().(*TransactionOptions_ReadOnly_); ok {
return x.ReadOnly
@ -315,6 +389,7 @@ func (m *TransactionOptions) GetReadOnly() *TransactionOptions_ReadOnly {
func (*TransactionOptions) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _TransactionOptions_OneofMarshaler, _TransactionOptions_OneofUnmarshaler, _TransactionOptions_OneofSizer, []interface{}{
(*TransactionOptions_ReadWrite_)(nil),
(*TransactionOptions_PartitionedDml_)(nil),
(*TransactionOptions_ReadOnly_)(nil),
}
}
@ -328,6 +403,11 @@ func _TransactionOptions_OneofMarshaler(msg proto.Message, b *proto.Buffer) erro
if err := b.EncodeMessage(x.ReadWrite); err != nil {
return err
}
case *TransactionOptions_PartitionedDml_:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.PartitionedDml); err != nil {
return err
}
case *TransactionOptions_ReadOnly_:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ReadOnly); err != nil {
@ -351,6 +431,14 @@ func _TransactionOptions_OneofUnmarshaler(msg proto.Message, tag, wire int, b *p
err := b.DecodeMessage(msg)
m.Mode = &TransactionOptions_ReadWrite_{msg}
return true, err
case 3: // mode.partitioned_dml
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(TransactionOptions_PartitionedDml)
err := b.DecodeMessage(msg)
m.Mode = &TransactionOptions_PartitionedDml_{msg}
return true, err
case 2: // mode.read_only
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
@ -373,6 +461,11 @@ func _TransactionOptions_OneofSizer(msg proto.Message) (n int) {
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *TransactionOptions_PartitionedDml_:
s := proto.Size(x.PartitionedDml)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *TransactionOptions_ReadOnly_:
s := proto.Size(x.ReadOnly)
n += 1 // tag and wire
@ -397,7 +490,7 @@ func (m *TransactionOptions_ReadWrite) Reset() { *m = TransactionOptions
func (m *TransactionOptions_ReadWrite) String() string { return proto.CompactTextString(m) }
func (*TransactionOptions_ReadWrite) ProtoMessage() {}
func (*TransactionOptions_ReadWrite) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_1d57af638fc1a731, []int{0, 0}
return fileDescriptor_transaction_4c490d83ade001ee, []int{0, 0}
}
func (m *TransactionOptions_ReadWrite) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionOptions_ReadWrite.Unmarshal(m, b)
@ -417,6 +510,37 @@ func (m *TransactionOptions_ReadWrite) XXX_DiscardUnknown() {
var xxx_messageInfo_TransactionOptions_ReadWrite proto.InternalMessageInfo
// Message type to initiate a Partitioned DML transaction.
type TransactionOptions_PartitionedDml struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TransactionOptions_PartitionedDml) Reset() { *m = TransactionOptions_PartitionedDml{} }
func (m *TransactionOptions_PartitionedDml) String() string { return proto.CompactTextString(m) }
func (*TransactionOptions_PartitionedDml) ProtoMessage() {}
func (*TransactionOptions_PartitionedDml) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_4c490d83ade001ee, []int{0, 1}
}
func (m *TransactionOptions_PartitionedDml) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionOptions_PartitionedDml.Unmarshal(m, b)
}
func (m *TransactionOptions_PartitionedDml) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TransactionOptions_PartitionedDml.Marshal(b, m, deterministic)
}
func (dst *TransactionOptions_PartitionedDml) XXX_Merge(src proto.Message) {
xxx_messageInfo_TransactionOptions_PartitionedDml.Merge(dst, src)
}
func (m *TransactionOptions_PartitionedDml) XXX_Size() int {
return xxx_messageInfo_TransactionOptions_PartitionedDml.Size(m)
}
func (m *TransactionOptions_PartitionedDml) XXX_DiscardUnknown() {
xxx_messageInfo_TransactionOptions_PartitionedDml.DiscardUnknown(m)
}
var xxx_messageInfo_TransactionOptions_PartitionedDml proto.InternalMessageInfo
// Message type to initiate a read-only transaction.
type TransactionOptions_ReadOnly struct {
// How to choose the timestamp for the read-only transaction.
@ -440,7 +564,7 @@ func (m *TransactionOptions_ReadOnly) Reset() { *m = TransactionOptions_
func (m *TransactionOptions_ReadOnly) String() string { return proto.CompactTextString(m) }
func (*TransactionOptions_ReadOnly) ProtoMessage() {}
func (*TransactionOptions_ReadOnly) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_1d57af638fc1a731, []int{0, 1}
return fileDescriptor_transaction_4c490d83ade001ee, []int{0, 2}
}
func (m *TransactionOptions_ReadOnly) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionOptions_ReadOnly.Unmarshal(m, b)
@ -700,7 +824,7 @@ func (m *Transaction) Reset() { *m = Transaction{} }
func (m *Transaction) String() string { return proto.CompactTextString(m) }
func (*Transaction) ProtoMessage() {}
func (*Transaction) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_1d57af638fc1a731, []int{1}
return fileDescriptor_transaction_4c490d83ade001ee, []int{1}
}
func (m *Transaction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Transaction.Unmarshal(m, b)
@ -757,7 +881,7 @@ func (m *TransactionSelector) Reset() { *m = TransactionSelector{} }
func (m *TransactionSelector) String() string { return proto.CompactTextString(m) }
func (*TransactionSelector) ProtoMessage() {}
func (*TransactionSelector) Descriptor() ([]byte, []int) {
return fileDescriptor_transaction_1d57af638fc1a731, []int{2}
return fileDescriptor_transaction_4c490d83ade001ee, []int{2}
}
func (m *TransactionSelector) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionSelector.Unmarshal(m, b)
@ -919,49 +1043,52 @@ func _TransactionSelector_OneofSizer(msg proto.Message) (n int) {
func init() {
proto.RegisterType((*TransactionOptions)(nil), "google.spanner.v1.TransactionOptions")
proto.RegisterType((*TransactionOptions_ReadWrite)(nil), "google.spanner.v1.TransactionOptions.ReadWrite")
proto.RegisterType((*TransactionOptions_PartitionedDml)(nil), "google.spanner.v1.TransactionOptions.PartitionedDml")
proto.RegisterType((*TransactionOptions_ReadOnly)(nil), "google.spanner.v1.TransactionOptions.ReadOnly")
proto.RegisterType((*Transaction)(nil), "google.spanner.v1.Transaction")
proto.RegisterType((*TransactionSelector)(nil), "google.spanner.v1.TransactionSelector")
}
func init() {
proto.RegisterFile("google/spanner/v1/transaction.proto", fileDescriptor_transaction_1d57af638fc1a731)
proto.RegisterFile("google/spanner/v1/transaction.proto", fileDescriptor_transaction_4c490d83ade001ee)
}
var fileDescriptor_transaction_1d57af638fc1a731 = []byte{
// 537 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xd1, 0x8a, 0xd3, 0x40,
0x14, 0x86, 0xd3, 0x6e, 0xb7, 0x74, 0x4f, 0xbb, 0xdd, 0xee, 0x2c, 0x8b, 0x35, 0x88, 0x4a, 0x45,
0xf0, 0x2a, 0xa1, 0xeb, 0x8d, 0x20, 0x82, 0x76, 0x17, 0x0d, 0x82, 0x6c, 0x49, 0xd7, 0x15, 0xa4,
0x10, 0xa7, 0xcd, 0x18, 0x06, 0x92, 0x99, 0x30, 0x33, 0x59, 0xbb, 0xf7, 0xbe, 0x84, 0xaf, 0xe0,
0x23, 0xf8, 0x08, 0xde, 0xf9, 0x46, 0x92, 0xc9, 0xa4, 0xcd, 0x36, 0x17, 0xdb, 0xbb, 0x4c, 0xcf,
0xff, 0xff, 0xe7, 0x9b, 0x73, 0x86, 0xc2, 0xb3, 0x88, 0xf3, 0x28, 0x26, 0xae, 0x4c, 0x31, 0x63,
0x44, 0xb8, 0x37, 0x63, 0x57, 0x09, 0xcc, 0x24, 0x5e, 0x2a, 0xca, 0x99, 0x93, 0x0a, 0xae, 0x38,
0x3a, 0x2e, 0x44, 0x8e, 0x11, 0x39, 0x37, 0x63, 0xfb, 0x91, 0xf1, 0xe1, 0x94, 0xba, 0x98, 0x31,
0xae, 0x70, 0xae, 0x97, 0x85, 0xc1, 0x7e, 0x6c, 0xaa, 0xfa, 0xb4, 0xc8, 0xbe, 0xbb, 0x61, 0x26,
0xf0, 0x26, 0xd0, 0x7e, 0xb2, 0x5d, 0x57, 0x34, 0x21, 0x52, 0xe1, 0x24, 0x2d, 0x04, 0xa3, 0x7f,
0x2d, 0x40, 0x57, 0x1b, 0x8e, 0xcb, 0x54, 0xa7, 0xa3, 0x29, 0x80, 0x20, 0x38, 0x0c, 0x7e, 0x08,
0xaa, 0xc8, 0xb0, 0xf1, 0xb4, 0xf1, 0xa2, 0x7b, 0xe6, 0x3a, 0x35, 0x3a, 0xa7, 0x6e, 0x75, 0x7c,
0x82, 0xc3, 0x2f, 0xb9, 0xcd, 0xb3, 0xfc, 0x03, 0x51, 0x1e, 0xd0, 0x27, 0xd0, 0x87, 0x80, 0xb3,
0xf8, 0x76, 0xd8, 0xd4, 0x81, 0xce, 0xee, 0x81, 0x97, 0x2c, 0xbe, 0xf5, 0x2c, 0xbf, 0x23, 0xcc,
0xb7, 0xdd, 0x85, 0x83, 0x75, 0x23, 0xfb, 0xe7, 0x1e, 0x74, 0x4a, 0x15, 0x1a, 0x42, 0x5b, 0x2a,
0xc1, 0x59, 0xa4, 0xb1, 0x3b, 0x9e, 0xe5, 0x9b, 0x33, 0xfa, 0x08, 0x28, 0xa1, 0x2c, 0xd0, 0x18,
0xeb, 0x39, 0x18, 0x16, 0xbb, 0x64, 0x29, 0x27, 0xe5, 0x5c, 0x95, 0x0a, 0xcf, 0xf2, 0x07, 0x09,
0x65, 0x79, 0x83, 0xf5, 0x6f, 0xe8, 0x2d, 0x1c, 0x26, 0x78, 0x15, 0x48, 0x85, 0x63, 0xc2, 0x88,
0x94, 0xc3, 0x3d, 0x1d, 0xf3, 0xb0, 0x16, 0x73, 0x61, 0x16, 0xe2, 0x59, 0x7e, 0x2f, 0xc1, 0xab,
0x59, 0x69, 0x40, 0xe7, 0xd0, 0xdf, 0x22, 0x69, 0xed, 0x40, 0x72, 0x28, 0xee, 0x60, 0x5c, 0xc0,
0x11, 0x59, 0xe1, 0xa5, 0xaa, 0x80, 0xec, 0xdf, 0x0f, 0xd2, 0xd7, 0x9e, 0x0d, 0xca, 0x19, 0x9c,
0x0a, 0xa2, 0x32, 0x51, 0x9b, 0x4d, 0x3b, 0x9f, 0xa0, 0x7f, 0x52, 0x14, 0xef, 0x0c, 0x60, 0x72,
0x0c, 0x47, 0x6b, 0x5d, 0xb0, 0xe0, 0x19, 0x0b, 0x27, 0x6d, 0x68, 0x25, 0x3c, 0x24, 0xa3, 0x6f,
0xd0, 0xad, 0xac, 0x11, 0xf5, 0xa1, 0x49, 0x43, 0xbd, 0x8c, 0x9e, 0xdf, 0xa4, 0x21, 0x7a, 0x57,
0xbb, 0xf8, 0xbd, 0x2b, 0xd8, 0xba, 0xf6, 0xe8, 0x4f, 0x03, 0x4e, 0x2a, 0x2d, 0x66, 0x24, 0x26,
0x4b, 0xc5, 0x05, 0x7a, 0x0f, 0x20, 0x29, 0x8b, 0x62, 0x12, 0x64, 0xb2, 0x7c, 0xb6, 0xcf, 0x77,
0x7a, 0x65, 0xf9, 0x63, 0x2d, 0xac, 0x9f, 0x25, 0x41, 0x03, 0x8d, 0x9c, 0x63, 0xf5, 0x3c, 0x4b,
0x43, 0xbf, 0x81, 0xfd, 0x05, 0x89, 0x28, 0x33, 0x7b, 0xde, 0x39, 0xb4, 0x70, 0x4d, 0x00, 0x3a,
0xd2, 0x40, 0x4e, 0x7e, 0x35, 0xe0, 0x74, 0xc9, 0x93, 0x7a, 0xc2, 0x64, 0x50, 0x89, 0x98, 0xe6,
0x43, 0x98, 0x36, 0xbe, 0xbe, 0x32, 0xb2, 0x88, 0xc7, 0x98, 0x45, 0x0e, 0x17, 0x91, 0x1b, 0x11,
0xa6, 0x47, 0xe4, 0x16, 0x25, 0x9c, 0x52, 0x59, 0xf9, 0x5b, 0x79, 0x6d, 0x3e, 0x7f, 0x37, 0x1f,
0x7c, 0x28, 0xac, 0xe7, 0x31, 0xcf, 0x42, 0x67, 0x66, 0xfa, 0x5c, 0x8f, 0xff, 0x96, 0x95, 0xb9,
0xae, 0xcc, 0x4d, 0x65, 0x7e, 0x3d, 0x5e, 0xb4, 0x75, 0xf0, 0xcb, 0xff, 0x01, 0x00, 0x00, 0xff,
0xff, 0xa6, 0x28, 0x2f, 0x4a, 0xae, 0x04, 0x00, 0x00,
var fileDescriptor_transaction_4c490d83ade001ee = []byte{
// 573 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xdf, 0x6e, 0xd3, 0x3e,
0x14, 0xc7, 0xd3, 0x6e, 0xab, 0xba, 0xd3, 0xae, 0xed, 0x3c, 0x4d, 0xbf, 0xfe, 0x22, 0x04, 0xa8,
0x08, 0x89, 0xab, 0x44, 0x1d, 0x5c, 0x20, 0x21, 0x24, 0xe8, 0x2a, 0x88, 0x90, 0xd0, 0xaa, 0x74,
0x0c, 0x09, 0x55, 0x0a, 0x6e, 0x63, 0x22, 0x4b, 0x89, 0x1d, 0xd9, 0xce, 0xe8, 0xee, 0x79, 0x09,
0x5e, 0x81, 0x47, 0xe0, 0x9a, 0x2b, 0x9e, 0x0a, 0xc5, 0x71, 0xfa, 0x2f, 0x17, 0xeb, 0x5d, 0xec,
0x73, 0xbe, 0xdf, 0xf3, 0xf1, 0x39, 0x76, 0xe0, 0x49, 0xc4, 0x79, 0x14, 0x13, 0x57, 0xa6, 0x98,
0x31, 0x22, 0xdc, 0xdb, 0xa1, 0xab, 0x04, 0x66, 0x12, 0x2f, 0x14, 0xe5, 0xcc, 0x49, 0x05, 0x57,
0x1c, 0x9d, 0x16, 0x49, 0x8e, 0x49, 0x72, 0x6e, 0x87, 0xf6, 0x03, 0xa3, 0xc3, 0x29, 0x75, 0x31,
0x63, 0x5c, 0xe1, 0x3c, 0x5f, 0x16, 0x02, 0xfb, 0xa1, 0x89, 0xea, 0xd5, 0x3c, 0xfb, 0xe6, 0x86,
0x99, 0xc0, 0x6b, 0x43, 0xfb, 0xd1, 0x6e, 0x5c, 0xd1, 0x84, 0x48, 0x85, 0x93, 0xb4, 0x48, 0x18,
0xfc, 0x39, 0x02, 0x74, 0xbd, 0xe6, 0xb8, 0x4a, 0xb5, 0x3b, 0x9a, 0x00, 0x08, 0x82, 0xc3, 0xe0,
0xbb, 0xa0, 0x8a, 0xf4, 0x6b, 0x8f, 0x6b, 0xcf, 0x5a, 0x17, 0xae, 0x53, 0xa1, 0x73, 0xaa, 0x52,
0xc7, 0x27, 0x38, 0xfc, 0x9c, 0xcb, 0x3c, 0xcb, 0x3f, 0x16, 0xe5, 0x02, 0x05, 0xd0, 0x4d, 0xb1,
0x50, 0x34, 0x4f, 0x22, 0x61, 0x10, 0x26, 0x71, 0xff, 0x40, 0xdb, 0xbe, 0xd8, 0xcf, 0x76, 0xb2,
0x16, 0x8f, 0x93, 0xd8, 0xb3, 0xfc, 0x4e, 0xba, 0xb5, 0x83, 0x3e, 0x82, 0xae, 0x16, 0x70, 0x16,
0xdf, 0xf5, 0xeb, 0xda, 0xda, 0xd9, 0x9f, 0xf8, 0x8a, 0xc5, 0x77, 0x9e, 0xe5, 0x37, 0x85, 0xf9,
0xb6, 0x5b, 0x70, 0xbc, 0x3a, 0x89, 0xdd, 0x83, 0xce, 0x76, 0x7d, 0xfb, 0xc7, 0x01, 0x34, 0x4b,
0x1d, 0xea, 0x43, 0x43, 0x2a, 0xc1, 0x59, 0xa4, 0x3b, 0xd5, 0xf4, 0x2c, 0xdf, 0xac, 0xd1, 0x07,
0x40, 0x09, 0x65, 0x81, 0x06, 0x5b, 0xb5, 0xde, 0xd0, 0xd9, 0x25, 0x5d, 0x39, 0x1c, 0xe7, 0xba,
0xcc, 0xf0, 0x2c, 0xbf, 0x97, 0x50, 0x96, 0x17, 0x58, 0xed, 0xa1, 0x37, 0x70, 0x92, 0xe0, 0x65,
0x20, 0x15, 0x8e, 0x09, 0x23, 0x52, 0x9a, 0xfe, 0xfd, 0x5f, 0xb1, 0x19, 0x9b, 0x3b, 0xe0, 0x59,
0x7e, 0x3b, 0xc1, 0xcb, 0x69, 0x29, 0x40, 0x97, 0xd0, 0xd9, 0x21, 0x39, 0xdc, 0x83, 0xe4, 0x44,
0x6c, 0x61, 0x8c, 0xa1, 0x4b, 0x96, 0x78, 0xa1, 0x36, 0x40, 0x8e, 0xee, 0x07, 0xe9, 0x68, 0xcd,
0x1a, 0xe5, 0x02, 0xce, 0x05, 0x51, 0x99, 0xa8, 0xf4, 0xa6, 0x91, 0x77, 0xd0, 0x3f, 0x2b, 0x82,
0x5b, 0x0d, 0x18, 0x9d, 0x42, 0x77, 0x95, 0x17, 0xcc, 0x79, 0xc6, 0xc2, 0x51, 0x03, 0x0e, 0x13,
0x1e, 0x92, 0xc1, 0x57, 0x68, 0x6d, 0x0c, 0x16, 0x75, 0xa0, 0x4e, 0x43, 0x3d, 0x8c, 0xb6, 0x5f,
0xa7, 0x21, 0x7a, 0x5b, 0x39, 0xf8, 0xbd, 0x23, 0xd8, 0x39, 0xf6, 0xe0, 0x77, 0x0d, 0xce, 0x36,
0x4a, 0x4c, 0x49, 0x4c, 0x16, 0x8a, 0x0b, 0xf4, 0x0e, 0x40, 0x52, 0x16, 0xc5, 0x24, 0xc8, 0x64,
0xf9, 0x52, 0x9e, 0xee, 0x75, 0xef, 0xf2, 0xf7, 0x51, 0x48, 0x3f, 0x49, 0x82, 0x7a, 0x1a, 0x39,
0xc7, 0x6a, 0x7b, 0x96, 0x86, 0x7e, 0x0d, 0x47, 0x73, 0x12, 0x51, 0x66, 0xe6, 0xbc, 0xb7, 0x69,
0xa1, 0x1a, 0x01, 0x34, 0xa5, 0x81, 0x1c, 0xfd, 0xac, 0xc1, 0xf9, 0x82, 0x27, 0x55, 0x87, 0x51,
0x6f, 0xc3, 0x62, 0x92, 0x37, 0x61, 0x52, 0xfb, 0xf2, 0xd2, 0xa4, 0x45, 0x3c, 0xc6, 0x2c, 0x72,
0xb8, 0x88, 0xdc, 0x88, 0x30, 0xdd, 0x22, 0xb7, 0x08, 0xe1, 0x94, 0xca, 0x8d, 0x3f, 0xd9, 0x2b,
0xf3, 0xf9, 0xab, 0xfe, 0xdf, 0xfb, 0x42, 0x7a, 0x19, 0xf3, 0x2c, 0x74, 0xa6, 0xa6, 0xce, 0xcd,
0xf0, 0x6f, 0x19, 0x99, 0xe9, 0xc8, 0xcc, 0x44, 0x66, 0x37, 0xc3, 0x79, 0x43, 0x1b, 0x3f, 0xff,
0x17, 0x00, 0x00, 0xff, 0xff, 0x81, 0xd7, 0x1c, 0x8e, 0x21, 0x05, 0x00, 0x00,
}

View File

@ -91,7 +91,7 @@ func (x TypeCode) String() string {
return proto.EnumName(TypeCode_name, int32(x))
}
func (TypeCode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_type_d02d3ac499dc3799, []int{0}
return fileDescriptor_type_d133eaa08ead4011, []int{0}
}
// `Type` indicates the type of a Cloud Spanner value, as might be stored in a
@ -114,7 +114,7 @@ func (m *Type) Reset() { *m = Type{} }
func (m *Type) String() string { return proto.CompactTextString(m) }
func (*Type) ProtoMessage() {}
func (*Type) Descriptor() ([]byte, []int) {
return fileDescriptor_type_d02d3ac499dc3799, []int{0}
return fileDescriptor_type_d133eaa08ead4011, []int{0}
}
func (m *Type) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Type.Unmarshal(m, b)
@ -173,7 +173,7 @@ func (m *StructType) Reset() { *m = StructType{} }
func (m *StructType) String() string { return proto.CompactTextString(m) }
func (*StructType) ProtoMessage() {}
func (*StructType) Descriptor() ([]byte, []int) {
return fileDescriptor_type_d02d3ac499dc3799, []int{1}
return fileDescriptor_type_d133eaa08ead4011, []int{1}
}
func (m *StructType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StructType.Unmarshal(m, b)
@ -221,7 +221,7 @@ func (m *StructType_Field) Reset() { *m = StructType_Field{} }
func (m *StructType_Field) String() string { return proto.CompactTextString(m) }
func (*StructType_Field) ProtoMessage() {}
func (*StructType_Field) Descriptor() ([]byte, []int) {
return fileDescriptor_type_d02d3ac499dc3799, []int{1, 0}
return fileDescriptor_type_d133eaa08ead4011, []int{1, 0}
}
func (m *StructType_Field) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StructType_Field.Unmarshal(m, b)
@ -262,9 +262,9 @@ func init() {
proto.RegisterEnum("google.spanner.v1.TypeCode", TypeCode_name, TypeCode_value)
}
func init() { proto.RegisterFile("google/spanner/v1/type.proto", fileDescriptor_type_d02d3ac499dc3799) }
func init() { proto.RegisterFile("google/spanner/v1/type.proto", fileDescriptor_type_d133eaa08ead4011) }
var fileDescriptor_type_d02d3ac499dc3799 = []byte{
var fileDescriptor_type_d133eaa08ead4011 = []byte{
// 444 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xd1, 0x8a, 0xd3, 0x40,
0x14, 0x86, 0x9d, 0x6d, 0xda, 0x6d, 0x4e, 0x51, 0xc6, 0x81, 0x65, 0xeb, 0xaa, 0x50, 0xd6, 0x9b,