Changing query.Field.column_length to uint32.

That's what the actual protocol size for the field is. Also documenting
the other fields, as they are uint16 or uint8 in the protocol.
And rebuilding all proto docs too.
This commit is contained in:
Alain Jobart 2017-01-11 08:46:43 -08:00
Родитель 10ebda5883
Коммит 21065d11b2
13 изменённых файлов: 1365 добавлений и 213 удалений

Просмотреть файл

@ -809,13 +809,13 @@ ExecuteOptions is passed around for all Execute calls.
| Name |Description |
| :-------- | :--------
| <code>include_event_token</code> <br>bool| If set, we will try to include an EventToken with the responses. |
| <code>include_event_token</code> <br>bool| This used to be exclude_field_names, which was replaced by IncludedFields enum below If set, we will try to include an EventToken with the responses. |
| <code>compare_event_token</code> <br>[EventToken](#query.eventtoken)| EventToken is a structure that describes a point in time in a replication stream on one shard. The most recent known replication position can be retrieved from vttablet when executing a query. It is also sent with the replication streams from the binlog service. |
| <code>included_fields</code> <br>[IncludedFields](#query.includedfields) | The IncludedFields allows you to specify which Field metadata returned by a query. This is an optimization for high-QPS queries where the client knows what it's getting. |
| <code>included_fields</code> <br>[IncludedFields](#executeoptions.includedfields)| Controls what fields are returned in Field message responses from mysql, i.e. field name, table name, etc. This is an optimization for high-QPS queries where the client knows what it's getting |
### query.IncludedFields
#### Enums
IncludedFields allows you to specify which Field metadata returned by a query. This is an optimization for high-QPS queries where the client knows what it's getting.
##### ExecuteOptions.IncludedFields
| Name |Value |Description |
| :-------- | :-------- | :--------
@ -833,6 +833,14 @@ Field describes a single column returned by a query
| :-------- | :--------
| <code>name</code> <br>string| name of the field as returned by mysql C API |
| <code>type</code> <br>[Type](#query.type)| vitess-defined type. Conversion function is in sqltypes package. |
| <code>table</code> <br>string| Remaining fields from mysql C API. These fields are only populated when ExecuteOptions.included_fields is set to IncludedFields.ALL. |
| <code>org_table</code> <br>string| |
| <code>database</code> <br>string| |
| <code>org_name</code> <br>string| |
| <code>column_length</code> <br>uint32| column_length is really a uint32. All 32 bits can be used. |
| <code>charset</code> <br>uint32| charset is actually a uint16. Only the lower 16 bits are used. |
| <code>decimals</code> <br>uint32| decimals is actualy a uint8. Only the lower 8 bits are used. |
| <code>flags</code> <br>uint32| flags is actually a uint16. Only the lower 16 bits are used. |
### query.QueryResult

Просмотреть файл

@ -270,12 +270,12 @@ func (conn *Connection) Fields() (fields []*querypb.Field, err error) {
fields = make([]*querypb.Field, nfields)
fvals := make([]querypb.Field, nfields)
for i := 0; i < nfields; i++ {
fvals[i].Name = copy_string(cfields[i].name_length, cfields[i].name)
fvals[i].OrgName = copy_string(cfields[i].org_name_length, cfields[i].org_name)
fvals[i].Table = copy_string(cfields[i].table_length, cfields[i].table)
fvals[i].OrgTable = copy_string(cfields[i].org_table_length, cfields[i].org_table)
fvals[i].Database = copy_string(cfields[i].db_length, cfields[i].db)
fvals[i].ColumnLength = uint64(cfields[i].length)
fvals[i].Name = copyString(cfields[i].name_length, cfields[i].name)
fvals[i].OrgName = copyString(cfields[i].org_name_length, cfields[i].org_name)
fvals[i].Table = copyString(cfields[i].table_length, cfields[i].table)
fvals[i].OrgTable = copyString(cfields[i].org_table_length, cfields[i].org_table)
fvals[i].Database = copyString(cfields[i].db_length, cfields[i].db)
fvals[i].ColumnLength = uint32(cfields[i].length)
fvals[i].Flags = uint32(cfields[i].flags)
fvals[i].Charset = uint32(cfields[i].charsetnr)
fvals[i].Decimals = uint32(cfields[i].decimals)
@ -289,11 +289,11 @@ func (conn *Connection) Fields() (fields []*querypb.Field, err error) {
return fields, nil
}
func copy_string(length C.uint, field *C.char) string {
return string(copy_bytes(length, field))
func copyString(length C.uint, field *C.char) string {
return string(copyBytes(length, field))
}
func copy_bytes(length C.uint, field *C.char) []byte {
func copyBytes(length C.uint, field *C.char) []byte {
return (*[maxSize]byte)(unsafe.Pointer(field))[:length]
}

Просмотреть файл

@ -606,17 +606,21 @@ type Field struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// vitess-defined type. Conversion function is in sqltypes package.
Type Type `protobuf:"varint,2,opt,name=type,enum=query.Type" json:"type,omitempty"`
// remaining fields from mysql C API
// these fields are only populated when ExecuteOptions.included_fields
// is set to IncludedFields.ALL
Table string `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
OrgTable string `protobuf:"bytes,4,opt,name=org_table,json=orgTable" json:"org_table,omitempty"`
Database string `protobuf:"bytes,5,opt,name=database" json:"database,omitempty"`
OrgName string `protobuf:"bytes,6,opt,name=org_name,json=orgName" json:"org_name,omitempty"`
ColumnLength uint64 `protobuf:"varint,7,opt,name=column_length,json=columnLength" json:"column_length,omitempty"`
Charset uint32 `protobuf:"varint,8,opt,name=charset" json:"charset,omitempty"`
Decimals uint32 `protobuf:"varint,9,opt,name=decimals" json:"decimals,omitempty"`
Flags uint32 `protobuf:"varint,10,opt,name=flags" json:"flags,omitempty"`
// Remaining fields from mysql C API.
// These fields are only populated when ExecuteOptions.included_fields
// is set to IncludedFields.ALL.
Table string `protobuf:"bytes,3,opt,name=table" json:"table,omitempty"`
OrgTable string `protobuf:"bytes,4,opt,name=org_table,json=orgTable" json:"org_table,omitempty"`
Database string `protobuf:"bytes,5,opt,name=database" json:"database,omitempty"`
OrgName string `protobuf:"bytes,6,opt,name=org_name,json=orgName" json:"org_name,omitempty"`
// column_length is really a uint32. All 32 bits can be used.
ColumnLength uint32 `protobuf:"varint,7,opt,name=column_length,json=columnLength" json:"column_length,omitempty"`
// charset is actually a uint16. Only the lower 16 bits are used.
Charset uint32 `protobuf:"varint,8,opt,name=charset" json:"charset,omitempty"`
// decimals is actualy a uint8. Only the lower 8 bits are used.
Decimals uint32 `protobuf:"varint,9,opt,name=decimals" json:"decimals,omitempty"`
// flags is actually a uint16. Only the lower 16 bits are used.
Flags uint32 `protobuf:"varint,10,opt,name=flags" json:"flags,omitempty"`
}
func (m *Field) Reset() { *m = Field{} }
@ -1962,7 +1966,7 @@ func init() {
func init() { proto.RegisterFile("query.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2737 bytes of a gzipped FileDescriptorProto
// 2734 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x3a, 0x49, 0x73, 0x1b, 0xc7,
0xb9, 0x1a, 0x2c, 0x24, 0xf0, 0x81, 0x00, 0x9b, 0x0d, 0xca, 0x82, 0x29, 0xfb, 0x99, 0x6f, 0x6c,
0xd9, 0x7a, 0xb2, 0x1f, 0x23, 0x53, 0x8a, 0xe2, 0xb2, 0xb3, 0x68, 0x08, 0x0e, 0x65, 0x58, 0xc0,
@ -2003,136 +2007,135 @@ var fileDescriptor0 = []byte{
0x4a, 0x46, 0xe6, 0xbe, 0x1f, 0xec, 0x8b, 0xc2, 0xe4, 0x75, 0xc1, 0xcb, 0x74, 0xcf, 0x0d, 0x69,
0x25, 0x2b, 0x69, 0x11, 0x8c, 0x1f, 0x05, 0xce, 0xe7, 0x08, 0x3d, 0x16, 0x04, 0x6d, 0xd1, 0x0f,
0xf6, 0x2d, 0xae, 0xca, 0x93, 0x50, 0xec, 0xfa, 0xfd, 0xf1, 0x60, 0xe8, 0xf4, 0xe9, 0x70, 0x9f,
0x1d, 0x54, 0x16, 0xd7, 0xb5, 0xf3, 0x19, 0xb2, 0x24, 0x91, 0x75, 0x81, 0xc3, 0x15, 0x58, 0xec,
0x1e, 0xb8, 0x41, 0x48, 0x59, 0x25, 0xb7, 0xae, 0x9d, 0x2f, 0x92, 0x08, 0x14, 0x52, 0x69, 0xd7,
0x1b, 0xb8, 0xfd, 0xb0, 0x92, 0x17, 0xa4, 0x18, 0xe6, 0x46, 0xdc, 0xea, 0xbb, 0xfb, 0x61, 0x05,
0x04, 0x41, 0x02, 0xfa, 0x67, 0x20, 0x4d, 0xfc, 0x3b, 0x7c, 0x4a, 0x29, 0x30, 0xac, 0x68, 0xeb,
0xe9, 0xf3, 0x98, 0x44, 0x20, 0x7e, 0x24, 0xae, 0x1e, 0x59, 0x54, 0x51, 0xbd, 0xbc, 0x0e, 0x4b,
0x84, 0x86, 0xe3, 0x3e, 0x33, 0xdf, 0x60, 0x81, 0x1b, 0xe2, 0x4d, 0x28, 0x24, 0xf3, 0x45, 0x7b,
0xbf, 0x7c, 0x01, 0x3a, 0x4d, 0x94, 0x0a, 0x2c, 0xde, 0x0a, 0x68, 0x78, 0x40, 0x03, 0x95, 0x8f,
0x11, 0xc8, 0xab, 0xb1, 0x20, 0x6a, 0x49, 0xca, 0xe0, 0x35, 0xac, 0x32, 0x49, 0x9b, 0xa9, 0x61,
0x11, 0x54, 0xa2, 0x68, 0xdc, 0x7b, 0x81, 0x7f, 0x27, 0x74, 0xdc, 0x5b, 0xb7, 0x68, 0x97, 0x51,
0xd9, 0xaa, 0x32, 0x64, 0x89, 0x23, 0x0d, 0x85, 0xe3, 0x61, 0xf3, 0x86, 0x21, 0x0d, 0x98, 0xe3,
0xf5, 0x44, 0x40, 0x33, 0x24, 0x27, 0x11, 0xb5, 0x1e, 0xfe, 0x1f, 0xc8, 0x70, 0xe6, 0x4a, 0x46,
0x48, 0x01, 0x25, 0x85, 0xf8, 0x77, 0x88, 0xc0, 0xe3, 0x67, 0x61, 0x81, 0x0a, 0x7b, 0x45, 0x50,
0xa7, 0x05, 0x99, 0x74, 0x05, 0x51, 0x2c, 0xfa, 0xaf, 0xd2, 0x50, 0x68, 0xb3, 0x80, 0xba, 0x03,
0x61, 0x3f, 0xfe, 0x2c, 0x40, 0xc8, 0x5c, 0x46, 0x07, 0x74, 0xc8, 0x22, 0x43, 0x1e, 0x53, 0x13,
0x24, 0xf8, 0x36, 0xda, 0x11, 0x13, 0x49, 0xf0, 0x1f, 0x77, 0x70, 0xea, 0x3e, 0x1c, 0xbc, 0xf6,
0x5e, 0x0a, 0xf2, 0xf1, 0x6c, 0xd8, 0x80, 0x5c, 0xd7, 0x65, 0x74, 0xdf, 0x0f, 0x26, 0xaa, 0x87,
0x9e, 0xfb, 0x20, 0xe9, 0x1b, 0x55, 0xc5, 0x4c, 0xe2, 0xcf, 0xf0, 0xe3, 0x20, 0x17, 0x1b, 0x99,
0xbc, 0x72, 0x25, 0xc8, 0x0b, 0x8c, 0x48, 0xdf, 0x17, 0x01, 0x8f, 0x02, 0x6f, 0xe0, 0x06, 0x13,
0xe7, 0x90, 0x4e, 0xa2, 0xe2, 0x4f, 0xcf, 0x09, 0x19, 0x52, 0x7c, 0xd7, 0xe9, 0x44, 0x15, 0xf5,
0x0b, 0xb3, 0xdf, 0xaa, 0xa4, 0x3b, 0x19, 0x88, 0xc4, 0x97, 0xa2, 0x83, 0x87, 0x51, 0xaf, 0xce,
0x8a, 0xfc, 0xe4, 0x43, 0xfd, 0x19, 0xc8, 0x45, 0xca, 0xe3, 0x3c, 0x64, 0xcd, 0x20, 0xf0, 0x03,
0x74, 0x8a, 0x77, 0x85, 0xed, 0x46, 0x5d, 0xb6, 0x87, 0xed, 0xed, 0x3a, 0x4a, 0xe9, 0xbf, 0x9b,
0x36, 0x4c, 0x42, 0x6f, 0x8f, 0x69, 0xc8, 0xf0, 0x17, 0xa0, 0x4c, 0x45, 0xae, 0x78, 0x47, 0xd4,
0xe9, 0x8a, 0x55, 0x94, 0x67, 0x8a, 0x4c, 0xe8, 0xe5, 0x0d, 0xb9, 0xbe, 0x47, 0xab, 0x2b, 0x59,
0x89, 0x79, 0x15, 0xaa, 0x87, 0x4d, 0x28, 0x7b, 0x83, 0x01, 0xed, 0x79, 0x2e, 0x4b, 0x4e, 0x20,
0x03, 0x76, 0x3a, 0x5a, 0x7c, 0x66, 0x16, 0x69, 0xb2, 0x12, 0x7f, 0x11, 0x4f, 0x73, 0x0e, 0x16,
0x98, 0xd8, 0x3c, 0xa8, 0xde, 0x5b, 0x8c, 0xfa, 0x92, 0x40, 0x12, 0x45, 0xc4, 0xcf, 0x80, 0xdc,
0x89, 0x88, 0x0e, 0x34, 0x4d, 0x88, 0xe9, 0x6a, 0x44, 0x24, 0x1d, 0x9f, 0x83, 0x12, 0x0b, 0xdc,
0x61, 0xe8, 0x76, 0x79, 0xd7, 0xe5, 0x1a, 0x65, 0xc5, 0x12, 0x5f, 0x4c, 0x60, 0x6b, 0x3d, 0xfc,
0x29, 0x58, 0xf4, 0x65, 0x5f, 0x16, 0xbd, 0x69, 0xaa, 0xf1, 0x6c, 0xd3, 0x26, 0x11, 0x97, 0xfe,
0x39, 0x58, 0x8e, 0x3d, 0x18, 0x8e, 0xfc, 0x61, 0x48, 0xf1, 0x05, 0x58, 0x08, 0x44, 0x41, 0x28,
0xaf, 0x61, 0x35, 0x45, 0xa2, 0xa2, 0x89, 0xe2, 0xd0, 0x7b, 0xb0, 0x2c, 0x31, 0xaf, 0x7a, 0xec,
0x40, 0x04, 0x0a, 0x9f, 0x83, 0x2c, 0xe5, 0x83, 0x63, 0x3e, 0x27, 0xad, 0xaa, 0xa0, 0x13, 0x49,
0x4d, 0x48, 0x49, 0xdd, 0x53, 0xca, 0x3f, 0x52, 0x50, 0x56, 0x5a, 0x6e, 0xb9, 0xac, 0x7b, 0xf0,
0x80, 0x06, 0xfb, 0x59, 0x58, 0xe4, 0x78, 0x2f, 0x2e, 0x8c, 0x39, 0xe1, 0x8e, 0x38, 0x78, 0xc0,
0xdd, 0xd0, 0x49, 0x44, 0x57, 0x04, 0x3c, 0x47, 0x8a, 0x6e, 0x68, 0x4f, 0x91, 0x73, 0xf2, 0x62,
0xe1, 0x1e, 0x79, 0xb1, 0x78, 0x5f, 0x79, 0xb1, 0x0d, 0xab, 0xb3, 0x1e, 0x57, 0xc9, 0xf1, 0x1c,
0x2c, 0xca, 0xa0, 0x44, 0x2d, 0x70, 0x5e, 0xdc, 0x22, 0x16, 0xfd, 0x97, 0x29, 0x58, 0x55, 0xdd,
0xe9, 0xe3, 0x51, 0xa6, 0x09, 0x3f, 0x67, 0xef, 0xcb, 0xcf, 0x55, 0x38, 0x7d, 0xcc, 0x41, 0x1f,
0xa1, 0x0a, 0x7f, 0xab, 0xc1, 0xd2, 0x16, 0xdd, 0xf7, 0x86, 0x0f, 0xa6, 0x7b, 0xf5, 0x2b, 0x50,
0x54, 0xea, 0x2b, 0xe3, 0x4f, 0x66, 0xb5, 0x36, 0x27, 0xab, 0xf5, 0xbf, 0x6a, 0x50, 0xac, 0xfa,
0x83, 0x81, 0xc7, 0x1e, 0xd0, 0xbc, 0x3a, 0x69, 0x67, 0x66, 0x9e, 0x9d, 0x08, 0x4a, 0x91, 0x99,
0xd2, 0x41, 0xfa, 0xdf, 0x34, 0x58, 0x26, 0x7e, 0xbf, 0xbf, 0xe7, 0x76, 0x0f, 0x1f, 0x6e, 0xdb,
0x31, 0xa0, 0xa9, 0xa1, 0xca, 0xfa, 0x7f, 0x6a, 0x50, 0x6a, 0x05, 0x94, 0x1f, 0x5c, 0x1e, 0x6a,
0xe3, 0xf9, 0x79, 0xa7, 0xc7, 0xd4, 0x5a, 0x9f, 0x27, 0x62, 0xac, 0xaf, 0xc0, 0x72, 0x6c, 0xbb,
0xf2, 0xc7, 0x9f, 0x34, 0x38, 0x2d, 0x13, 0x44, 0x51, 0x7a, 0x0f, 0xa8, 0x5b, 0x22, 0x7b, 0x33,
0x09, 0x7b, 0x2b, 0xf0, 0xc8, 0x71, 0xdb, 0x94, 0xd9, 0x6f, 0xa6, 0xe0, 0x4c, 0x94, 0x1b, 0x0f,
0xb8, 0xe1, 0xff, 0x41, 0x3e, 0xac, 0x41, 0xe5, 0xa4, 0x13, 0x94, 0x87, 0xde, 0x4e, 0x41, 0xa5,
0x1a, 0x50, 0x97, 0xd1, 0xc4, 0x9e, 0xe1, 0xe1, 0xc9, 0x0d, 0xfc, 0x3c, 0x2c, 0x8d, 0xdc, 0x80,
0x79, 0x5d, 0x6f, 0xe4, 0xf2, 0x53, 0x59, 0x56, 0x6c, 0x49, 0x8e, 0x4d, 0x30, 0xc3, 0xa2, 0x9f,
0x85, 0x47, 0xe7, 0x78, 0x44, 0xf9, 0xeb, 0x5f, 0x1a, 0xe0, 0x36, 0x73, 0x03, 0xf6, 0x31, 0x58,
0x55, 0xe6, 0x26, 0xd3, 0x69, 0x28, 0xcf, 0xd8, 0x9f, 0xf4, 0x0b, 0x65, 0x1f, 0x8b, 0x15, 0xe7,
0x7d, 0xfd, 0x92, 0xb4, 0x5f, 0xf9, 0xe5, 0x2f, 0x1a, 0xac, 0x55, 0x7d, 0x79, 0xbd, 0xf5, 0x50,
0x56, 0x98, 0xfe, 0x38, 0x9c, 0x9d, 0x6b, 0xa0, 0x72, 0xc0, 0x9f, 0x35, 0x78, 0x84, 0x50, 0xb7,
0xf7, 0x70, 0x1a, 0x7f, 0x03, 0xce, 0x9c, 0x30, 0x4e, 0xed, 0x50, 0xaf, 0x40, 0x6e, 0x40, 0x99,
0xdb, 0x73, 0x99, 0xab, 0x4c, 0x5a, 0x8b, 0xe6, 0x9d, 0x72, 0x37, 0x14, 0x07, 0x89, 0x79, 0xf5,
0xf7, 0x52, 0x50, 0x16, 0x7b, 0xdd, 0x4f, 0x0e, 0x44, 0xf3, 0x0f, 0x44, 0x6f, 0x6b, 0xb0, 0x3a,
0xeb, 0xa0, 0xf8, 0x4c, 0xf0, 0xdf, 0xbe, 0x57, 0x98, 0xd3, 0x10, 0xd2, 0xf3, 0xb6, 0xa0, 0x7f,
0x48, 0x41, 0x25, 0xa9, 0xd2, 0x27, 0x77, 0x10, 0xb3, 0x77, 0x10, 0x1f, 0xfa, 0xd2, 0xe9, 0x5d,
0x0d, 0x1e, 0x9d, 0xe3, 0xd0, 0x0f, 0x17, 0xe8, 0xc4, 0x4d, 0x44, 0xea, 0x9e, 0x37, 0x11, 0xf7,
0x1b, 0xea, 0x3f, 0xa6, 0x61, 0xa5, 0x3d, 0xea, 0x7b, 0x4c, 0x4d, 0xf2, 0x70, 0x17, 0xe7, 0xff,
0xc2, 0x52, 0xc8, 0x8d, 0x75, 0xe4, 0x03, 0x85, 0xd8, 0x3e, 0xe5, 0x49, 0x41, 0xe0, 0xaa, 0x02,
0x85, 0x9f, 0x80, 0x42, 0xc4, 0x32, 0x1e, 0x32, 0x75, 0xb9, 0x04, 0x8a, 0x63, 0x3c, 0x64, 0xf8,
0x32, 0x9c, 0x19, 0x8e, 0x07, 0x8e, 0xb8, 0xb9, 0x1f, 0xd1, 0xc0, 0x11, 0x33, 0x3b, 0x7c, 0xcb,
0x25, 0x9e, 0x37, 0xd2, 0xa4, 0x3c, 0x1c, 0x0f, 0x88, 0x7f, 0x27, 0x6c, 0xd1, 0x40, 0x08, 0x6f,
0xb9, 0x01, 0xc3, 0x57, 0x21, 0xef, 0xf6, 0xf7, 0xfd, 0xc0, 0x63, 0x07, 0x03, 0xf1, 0xd6, 0x51,
0xda, 0xd4, 0xa3, 0xdb, 0xec, 0xe3, 0xee, 0xdf, 0x30, 0x22, 0x4e, 0x32, 0xfd, 0x48, 0x7f, 0x0e,
0xf2, 0x31, 0x1e, 0x23, 0x58, 0x32, 0x6f, 0x74, 0x8c, 0xba, 0xd3, 0x6e, 0xd5, 0x6b, 0x76, 0x5b,
0xbe, 0x28, 0xed, 0x74, 0xea, 0x75, 0xa7, 0x5d, 0x35, 0x2c, 0xa4, 0xe9, 0x04, 0x40, 0x4c, 0x29,
0x26, 0x9f, 0x3a, 0x48, 0xbb, 0x87, 0x83, 0xce, 0x42, 0x3e, 0xf0, 0xef, 0x28, 0xdb, 0x53, 0xc2,
0x9c, 0x5c, 0xe0, 0xdf, 0x11, 0x96, 0xeb, 0x06, 0xe0, 0xa4, 0xae, 0x2a, 0x7b, 0x13, 0x05, 0xa6,
0xcd, 0x14, 0xd8, 0x54, 0x7e, 0x5c, 0x60, 0x72, 0xbb, 0x15, 0x50, 0x77, 0xf0, 0x32, 0x75, 0xfb,
0x2c, 0xea, 0x29, 0xfa, 0xaf, 0x53, 0x50, 0x24, 0x1c, 0xe3, 0x0d, 0x68, 0x9b, 0xb9, 0x2c, 0xe4,
0x91, 0x3a, 0x10, 0x2c, 0xce, 0xb4, 0x34, 0xf2, 0xa4, 0x20, 0x71, 0xf2, 0xde, 0x75, 0x13, 0x4e,
0x87, 0xb4, 0xeb, 0x0f, 0x7b, 0xa1, 0xb3, 0x47, 0x0f, 0xbc, 0x61, 0xcf, 0x19, 0xb8, 0x21, 0x53,
0x8f, 0x33, 0x45, 0x52, 0x56, 0xc4, 0x2d, 0x41, 0x6b, 0x08, 0x12, 0xbe, 0x08, 0xab, 0x7b, 0xde,
0xb0, 0xef, 0xef, 0x3b, 0xa3, 0xbe, 0x3b, 0xa1, 0x41, 0xa8, 0x4c, 0xe5, 0xe9, 0x95, 0x25, 0x58,
0xd2, 0x5a, 0x92, 0x24, 0xc3, 0xfd, 0x1a, 0x5c, 0x98, 0x2b, 0xc5, 0xb9, 0xe5, 0xf5, 0x19, 0x0d,
0x68, 0xcf, 0x09, 0xe8, 0xa8, 0xef, 0x75, 0x5d, 0xd1, 0x2e, 0xe4, 0xfe, 0xea, 0xe9, 0x39, 0xa2,
0x77, 0x14, 0x3b, 0x99, 0x72, 0x73, 0x6f, 0x77, 0x47, 0x63, 0x67, 0x1c, 0xba, 0xfb, 0xf2, 0xd9,
0x4d, 0x23, 0xb9, 0xee, 0x68, 0xdc, 0xe1, 0x30, 0x46, 0x90, 0xbe, 0x3d, 0x92, 0x0d, 0x46, 0x23,
0x7c, 0xa8, 0xff, 0x5d, 0x8b, 0x2e, 0x17, 0x23, 0xef, 0xc5, 0x0d, 0x24, 0x2a, 0x13, 0xed, 0x83,
0xca, 0xa4, 0x02, 0x8b, 0x21, 0x0d, 0x8e, 0xbc, 0xe1, 0x7e, 0xf4, 0x7e, 0xa5, 0x40, 0xdc, 0x86,
0xa7, 0xd5, 0xeb, 0x3d, 0x7d, 0x83, 0xd1, 0x60, 0xe8, 0xf6, 0xfb, 0x13, 0x47, 0x9e, 0xad, 0x86,
0x8c, 0xf6, 0x9c, 0xe9, 0x3b, 0xbb, 0x6c, 0x22, 0x4f, 0x4a, 0x6e, 0x33, 0x66, 0x26, 0x31, 0xaf,
0x1d, 0xbf, 0xc0, 0xbf, 0x04, 0xa5, 0x40, 0xc5, 0xd4, 0x09, 0x79, 0x50, 0x55, 0x79, 0xae, 0xc6,
0x8f, 0x50, 0x89, 0x80, 0x93, 0x62, 0x90, 0x04, 0xf9, 0x06, 0xbc, 0xdc, 0x19, 0xf5, 0x5c, 0x46,
0xa5, 0xc5, 0x0f, 0x68, 0x67, 0x4a, 0xfe, 0xdf, 0x20, 0x33, 0xfb, 0x7f, 0x83, 0xd9, 0xff, 0x2f,
0x64, 0x8f, 0xfd, 0x7f, 0x41, 0xbf, 0x0a, 0xab, 0xb3, 0xf6, 0xab, 0x58, 0x9f, 0x87, 0xac, 0x78,
0x31, 0x3b, 0x76, 0x4b, 0x9a, 0x78, 0x12, 0x23, 0x92, 0x41, 0xff, 0x8d, 0x06, 0xe5, 0x39, 0x7b,
0xb3, 0x78, 0xe3, 0xa7, 0x25, 0xce, 0x95, 0xff, 0x0f, 0x59, 0xf1, 0x76, 0xa7, 0x1e, 0x95, 0xcf,
0x9c, 0xdc, 0xda, 0x89, 0x77, 0x36, 0x22, 0xb9, 0x78, 0x75, 0x8a, 0xb0, 0x76, 0xc5, 0xc1, 0x32,
0x5a, 0x5a, 0x0a, 0x1c, 0x27, 0xcf, 0x9a, 0x27, 0x4f, 0xaa, 0x99, 0x7b, 0x9e, 0x54, 0x2f, 0xfc,
0x20, 0x0d, 0xf9, 0xc6, 0xa4, 0x7d, 0xbb, 0xbf, 0xd3, 0x77, 0xf7, 0xc5, 0x43, 0x58, 0xa3, 0x65,
0xef, 0xa2, 0x53, 0x78, 0x05, 0x8a, 0x56, 0xd3, 0x76, 0x2c, 0xde, 0xdf, 0x76, 0xea, 0xc6, 0x35,
0xa4, 0xf1, 0x06, 0xd8, 0x22, 0x35, 0xe7, 0xba, 0xb9, 0x2b, 0x31, 0x29, 0x5c, 0x86, 0xe5, 0x8e,
0x55, 0xbb, 0xd1, 0x31, 0xa7, 0xc8, 0x0c, 0x3e, 0x0d, 0x2b, 0x8d, 0x4e, 0xdd, 0xae, 0xb5, 0xea,
0x09, 0x74, 0x8e, 0x37, 0xcb, 0xad, 0x7a, 0x73, 0x4b, 0x82, 0x88, 0xcf, 0xdf, 0xb1, 0xda, 0xb5,
0x6b, 0x96, 0xb9, 0x2d, 0x51, 0xeb, 0x1c, 0xf5, 0x9a, 0x49, 0x9a, 0x3b, 0xb5, 0x48, 0xe4, 0x55,
0x8c, 0xa0, 0xb0, 0x55, 0xb3, 0x0c, 0xa2, 0x66, 0xb9, 0xab, 0xe1, 0x12, 0xe4, 0x4d, 0xab, 0xd3,
0x50, 0x70, 0x0a, 0x57, 0xa0, 0x6c, 0x74, 0xec, 0xa6, 0x53, 0xb3, 0xaa, 0xc4, 0x6c, 0x98, 0x96,
0xad, 0x28, 0x19, 0x5c, 0x86, 0x92, 0x5d, 0x6b, 0x98, 0x6d, 0xdb, 0x68, 0xb4, 0x14, 0x92, 0x6b,
0x91, 0x6b, 0x9b, 0x11, 0x0f, 0xc2, 0x6b, 0x70, 0xda, 0x6a, 0x3a, 0xdb, 0xe6, 0x8e, 0xd1, 0xa9,
0xdb, 0xce, 0x4d, 0xa3, 0xde, 0x31, 0x15, 0x6d, 0x1d, 0x9f, 0x01, 0xdc, 0xb4, 0x9c, 0x4e, 0x6b,
0xdb, 0xb0, 0x4d, 0xc7, 0x6a, 0xbe, 0xaa, 0x08, 0x57, 0x71, 0x09, 0x72, 0x53, 0x0d, 0xee, 0x72,
0x2f, 0x14, 0x5b, 0x06, 0xb1, 0xa7, 0xc6, 0xde, 0xbd, 0xcb, 0x9d, 0x05, 0xd7, 0x48, 0xb3, 0xd3,
0x9a, 0xb2, 0xad, 0x40, 0x41, 0x39, 0x4b, 0xa1, 0x32, 0x1c, 0xb5, 0x55, 0xb3, 0xaa, 0xb1, 0x7e,
0x77, 0x73, 0x6b, 0x29, 0xa4, 0x5d, 0x38, 0x84, 0x8c, 0x08, 0x47, 0x0e, 0x32, 0x56, 0xd3, 0x32,
0xd1, 0x29, 0xbc, 0x0c, 0x50, 0x6b, 0xd7, 0x2c, 0xdb, 0xbc, 0x46, 0x8c, 0x3a, 0x37, 0x5b, 0x20,
0x22, 0x07, 0x72, 0x6b, 0x97, 0x60, 0xb1, 0xd6, 0xde, 0xa9, 0x37, 0x0d, 0x5b, 0x99, 0x59, 0x6b,
0xdf, 0xe8, 0x34, 0x6d, 0x4e, 0x44, 0xb8, 0x00, 0x0b, 0xb5, 0xb6, 0x6d, 0x7e, 0xd1, 0xe6, 0x76,
0x09, 0x9a, 0xf4, 0x2a, 0xba, 0x7b, 0xf5, 0xc2, 0x5b, 0x69, 0xc8, 0xd8, 0x93, 0x11, 0xe5, 0x01,
0x12, 0xd1, 0xb6, 0x77, 0x5b, 0x5c, 0x64, 0x1e, 0x32, 0x35, 0xcb, 0x7e, 0x01, 0x7d, 0x29, 0x85,
0x01, 0xb2, 0x1d, 0x31, 0xfe, 0xf2, 0x02, 0x1f, 0xd7, 0x2c, 0xfb, 0xf9, 0x2b, 0xe8, 0xcd, 0x14,
0x9f, 0xb6, 0x23, 0x81, 0xaf, 0x44, 0x84, 0xcd, 0xcb, 0xe8, 0xab, 0x31, 0x61, 0xf3, 0x32, 0xfa,
0x5a, 0x44, 0xb8, 0xb4, 0x89, 0xbe, 0x1e, 0x13, 0x2e, 0x6d, 0xa2, 0x6f, 0x44, 0x84, 0x2b, 0x97,
0xd1, 0x5b, 0x31, 0xe1, 0xca, 0x65, 0xf4, 0xcd, 0x05, 0x6e, 0x8b, 0xb0, 0xe4, 0xd2, 0x26, 0xfa,
0x56, 0x2e, 0x86, 0xae, 0x5c, 0x46, 0xdf, 0xce, 0xf1, 0xf8, 0xc7, 0x51, 0x45, 0xdf, 0x41, 0x5c,
0x4d, 0x1e, 0x20, 0xf4, 0x5d, 0x31, 0xe4, 0x24, 0xf4, 0x3d, 0xc4, 0x6d, 0xe4, 0x58, 0x01, 0xbe,
0x2d, 0x28, 0xbb, 0xa6, 0x41, 0xd0, 0xf7, 0x17, 0x70, 0x01, 0x16, 0xb7, 0xcd, 0x6a, 0xad, 0x61,
0xd4, 0x11, 0x16, 0x5f, 0x70, 0xaf, 0xfc, 0xf0, 0x22, 0x1f, 0xf2, 0xf4, 0x44, 0x3f, 0x6a, 0x71,
0x81, 0x37, 0x0d, 0x52, 0x7d, 0xd9, 0x20, 0xe8, 0x9d, 0x8b, 0x5c, 0xe0, 0x4d, 0x83, 0x28, 0x7f,
0xfd, 0xb8, 0xc5, 0x19, 0x05, 0xe9, 0xdd, 0x8b, 0x5c, 0x69, 0x85, 0xff, 0x49, 0x0b, 0xe7, 0x20,
0xbd, 0x55, 0xb3, 0xd1, 0x4f, 0x85, 0x34, 0x9e, 0xa2, 0xe8, 0x67, 0x88, 0x23, 0xdb, 0xa6, 0x8d,
0x7e, 0xce, 0x91, 0x59, 0xbb, 0xd3, 0xaa, 0x9b, 0xe8, 0x31, 0xae, 0xdc, 0x35, 0xb3, 0xd9, 0x30,
0x6d, 0xb2, 0x8b, 0x7e, 0x21, 0xd8, 0x5f, 0x69, 0x37, 0x2d, 0xf4, 0x1e, 0xba, 0xb0, 0x03, 0xe8,
0x78, 0xf9, 0x73, 0x85, 0x3b, 0xd6, 0x75, 0xab, 0xf9, 0xaa, 0x85, 0x4e, 0x71, 0xa0, 0x45, 0xcc,
0x96, 0x41, 0x4c, 0xa4, 0x61, 0x80, 0x85, 0x6a, 0xb3, 0xd1, 0xa8, 0xd9, 0x28, 0x85, 0x97, 0x20,
0x47, 0x9a, 0xf5, 0xfa, 0x96, 0x51, 0xbd, 0x8e, 0xd2, 0x5b, 0x6b, 0x50, 0xe9, 0xfa, 0x83, 0x8d,
0x89, 0x3f, 0x66, 0xe3, 0x3d, 0xba, 0x71, 0xe4, 0x31, 0x1a, 0x86, 0xf2, 0x1f, 0x67, 0x7b, 0x0b,
0xe2, 0xe7, 0xd2, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x2d, 0xec, 0xb1, 0xe7, 0xab, 0x26, 0x00,
0x00,
0x1d, 0x54, 0x16, 0xd7, 0xb5, 0xf3, 0x45, 0xb2, 0x24, 0x91, 0x75, 0x81, 0xc3, 0x15, 0x58, 0xec,
0x1e, 0xb8, 0x41, 0x48, 0x59, 0x25, 0x27, 0xc8, 0x11, 0x28, 0xa4, 0xd2, 0xae, 0x37, 0x70, 0xfb,
0x61, 0x25, 0x2f, 0x48, 0x31, 0xcc, 0x8d, 0xb8, 0xd5, 0x77, 0xf7, 0xc3, 0x0a, 0x08, 0x82, 0x04,
0xf4, 0xcf, 0x40, 0x9a, 0xf8, 0x77, 0xf8, 0x94, 0x52, 0x60, 0x58, 0xd1, 0xd6, 0xd3, 0xe7, 0x31,
0x89, 0x40, 0xfc, 0x48, 0x5c, 0x3d, 0xb2, 0xa8, 0xa2, 0x7a, 0x79, 0x1d, 0x96, 0x08, 0x0d, 0xc7,
0x7d, 0x66, 0xbe, 0xc1, 0x02, 0x37, 0xc4, 0x9b, 0x50, 0x48, 0xe6, 0x8b, 0xf6, 0x7e, 0xf9, 0x02,
0x74, 0x9a, 0x28, 0x15, 0x58, 0xbc, 0x15, 0xd0, 0xf0, 0x80, 0x06, 0x2a, 0x1f, 0x23, 0x90, 0x57,
0x63, 0x41, 0xd4, 0x92, 0x94, 0xc1, 0x6b, 0x58, 0x65, 0x92, 0x36, 0x53, 0xc3, 0x22, 0xa8, 0x44,
0xd1, 0xb8, 0xf7, 0x02, 0xff, 0x4e, 0xe8, 0xb8, 0xb7, 0x6e, 0xd1, 0x2e, 0xa3, 0xb2, 0x55, 0x65,
0xc8, 0x12, 0x47, 0x1a, 0x0a, 0xc7, 0xc3, 0xe6, 0x0d, 0x43, 0x1a, 0x30, 0xc7, 0xeb, 0x89, 0x80,
0x66, 0x48, 0x4e, 0x22, 0x6a, 0x3d, 0xfc, 0x3f, 0x90, 0xe1, 0xcc, 0x95, 0x8c, 0x90, 0x02, 0x4a,
0x0a, 0xf1, 0xef, 0x10, 0x81, 0xc7, 0xcf, 0xc2, 0x02, 0x15, 0xf6, 0x8a, 0xa0, 0x4e, 0x0b, 0x32,
0xe9, 0x0a, 0xa2, 0x58, 0xf4, 0x5f, 0xa5, 0xa1, 0xd0, 0x66, 0x01, 0x75, 0x07, 0xc2, 0x7e, 0xfc,
0x59, 0x80, 0x90, 0xb9, 0x8c, 0x0e, 0xe8, 0x90, 0x45, 0x86, 0x3c, 0xa6, 0x26, 0x48, 0xf0, 0x6d,
0xb4, 0x23, 0x26, 0x92, 0xe0, 0x3f, 0xee, 0xe0, 0xd4, 0x7d, 0x38, 0x78, 0xed, 0xbd, 0x14, 0xe4,
0xe3, 0xd9, 0xb0, 0x01, 0xb9, 0xae, 0xcb, 0xe8, 0xbe, 0x1f, 0x4c, 0x54, 0x0f, 0x3d, 0xf7, 0x41,
0xd2, 0x37, 0xaa, 0x8a, 0x99, 0xc4, 0x9f, 0xe1, 0xc7, 0x41, 0x2e, 0x36, 0x32, 0x79, 0xe5, 0x4a,
0x90, 0x17, 0x18, 0x91, 0xbe, 0x2f, 0x02, 0x1e, 0x05, 0xde, 0xc0, 0x0d, 0x26, 0xce, 0x21, 0x9d,
0x44, 0xc5, 0x9f, 0x9e, 0x13, 0x32, 0xa4, 0xf8, 0xae, 0xd3, 0x89, 0x2a, 0xea, 0x17, 0x66, 0xbf,
0x55, 0x49, 0x77, 0x32, 0x10, 0x89, 0x2f, 0x45, 0x07, 0x0f, 0xa3, 0x5e, 0x9d, 0x15, 0xf9, 0xc9,
0x87, 0xfa, 0x33, 0x90, 0x8b, 0x94, 0xc7, 0x79, 0xc8, 0x9a, 0x41, 0xe0, 0x07, 0xe8, 0x14, 0xef,
0x0a, 0xdb, 0x8d, 0xba, 0x6c, 0x0f, 0xdb, 0xdb, 0x75, 0x94, 0xd2, 0x7f, 0x37, 0x6d, 0x98, 0x84,
0xde, 0x1e, 0xd3, 0x90, 0xe1, 0x2f, 0x40, 0x99, 0x8a, 0x5c, 0xf1, 0x8e, 0xa8, 0xd3, 0x15, 0xab,
0x28, 0xcf, 0x14, 0x99, 0xd0, 0xcb, 0x1b, 0x72, 0x7d, 0x8f, 0x56, 0x57, 0xb2, 0x12, 0xf3, 0x2a,
0x54, 0x0f, 0x9b, 0x50, 0xf6, 0x06, 0x03, 0xda, 0xf3, 0x5c, 0x96, 0x9c, 0x40, 0x06, 0xec, 0x74,
0xb4, 0xf8, 0xcc, 0x2c, 0xd2, 0x64, 0x25, 0xfe, 0x22, 0x9e, 0xe6, 0x1c, 0x2c, 0x30, 0xb1, 0x79,
0x50, 0xbd, 0xb7, 0x18, 0xf5, 0x25, 0x81, 0x24, 0x8a, 0x88, 0x9f, 0x01, 0xb9, 0x13, 0x11, 0x1d,
0x68, 0x9a, 0x10, 0xd3, 0xd5, 0x88, 0x48, 0x3a, 0x3e, 0x07, 0x25, 0x16, 0xb8, 0xc3, 0xd0, 0xed,
0xf2, 0xae, 0xcb, 0x35, 0xca, 0x8a, 0x25, 0xbe, 0x98, 0xc0, 0xd6, 0x7a, 0xf8, 0x53, 0xb0, 0xe8,
0xcb, 0xbe, 0x2c, 0x7a, 0xd3, 0x54, 0xe3, 0xd9, 0xa6, 0x4d, 0x22, 0x2e, 0xfd, 0x73, 0xb0, 0x1c,
0x7b, 0x30, 0x1c, 0xf9, 0xc3, 0x90, 0xe2, 0x0b, 0xb0, 0x10, 0x88, 0x82, 0x50, 0x5e, 0xc3, 0x6a,
0x8a, 0x44, 0x45, 0x13, 0xc5, 0xa1, 0xf7, 0x60, 0x59, 0x62, 0x5e, 0xf5, 0xd8, 0x81, 0x08, 0x14,
0x3e, 0x07, 0x59, 0xca, 0x07, 0xc7, 0x7c, 0x4e, 0x5a, 0x55, 0x41, 0x27, 0x92, 0x9a, 0x90, 0x92,
0xba, 0xa7, 0x94, 0x7f, 0xa4, 0xa0, 0xac, 0xb4, 0xdc, 0x72, 0x59, 0xf7, 0xe0, 0x01, 0x0d, 0xf6,
0xb3, 0xb0, 0xc8, 0xf1, 0x5e, 0x5c, 0x18, 0x73, 0xc2, 0x1d, 0x71, 0xf0, 0x80, 0xbb, 0xa1, 0x93,
0x88, 0xae, 0x08, 0x78, 0x8e, 0x14, 0xdd, 0xd0, 0x9e, 0x22, 0xe7, 0xe4, 0xc5, 0xc2, 0x3d, 0xf2,
0x62, 0xf1, 0xbe, 0xf2, 0x62, 0x1b, 0x56, 0x67, 0x3d, 0xae, 0x92, 0xe3, 0x39, 0x58, 0x94, 0x41,
0x89, 0x5a, 0xe0, 0xbc, 0xb8, 0x45, 0x2c, 0xfa, 0x2f, 0x53, 0xb0, 0xaa, 0xba, 0xd3, 0xc7, 0xa3,
0x4c, 0x13, 0x7e, 0xce, 0xde, 0x97, 0x9f, 0xab, 0x70, 0xfa, 0x98, 0x83, 0x3e, 0x42, 0x15, 0xfe,
0x56, 0x83, 0xa5, 0x2d, 0xba, 0xef, 0x0d, 0x1f, 0x4c, 0xf7, 0xea, 0x57, 0xa0, 0xa8, 0xd4, 0x57,
0xc6, 0x9f, 0xcc, 0x6a, 0x6d, 0x4e, 0x56, 0xeb, 0x7f, 0xd5, 0xa0, 0x58, 0xf5, 0x07, 0x03, 0x8f,
0x3d, 0xa0, 0x79, 0x75, 0xd2, 0xce, 0xcc, 0x3c, 0x3b, 0x11, 0x94, 0x22, 0x33, 0xa5, 0x83, 0xf4,
0xbf, 0x69, 0xb0, 0x4c, 0xfc, 0x7e, 0x7f, 0xcf, 0xed, 0x1e, 0x3e, 0xdc, 0xb6, 0x63, 0x40, 0x53,
0x43, 0x95, 0xf5, 0xff, 0xd4, 0xa0, 0xd4, 0x0a, 0x28, 0x3f, 0xb8, 0x3c, 0xd4, 0xc6, 0xf3, 0xf3,
0x4e, 0x8f, 0xa9, 0xb5, 0x3e, 0x4f, 0xc4, 0x58, 0x5f, 0x81, 0xe5, 0xd8, 0x76, 0xe5, 0x8f, 0x3f,
0x69, 0x70, 0x5a, 0x26, 0x88, 0xa2, 0xf4, 0x1e, 0x50, 0xb7, 0x44, 0xf6, 0x66, 0x12, 0xf6, 0x56,
0xe0, 0x91, 0xe3, 0xb6, 0x29, 0xb3, 0xdf, 0x4c, 0xc1, 0x99, 0x28, 0x37, 0x1e, 0x70, 0xc3, 0xff,
0x83, 0x7c, 0x58, 0x83, 0xca, 0x49, 0x27, 0x28, 0x0f, 0xbd, 0x9d, 0x82, 0x4a, 0x35, 0xa0, 0x2e,
0xa3, 0x89, 0x3d, 0xc3, 0xc3, 0x93, 0x1b, 0xf8, 0x79, 0x58, 0x1a, 0xb9, 0x01, 0xf3, 0xba, 0xde,
0xc8, 0xe5, 0xa7, 0xb2, 0xac, 0xd8, 0x92, 0x1c, 0x9b, 0x60, 0x86, 0x45, 0x3f, 0x0b, 0x8f, 0xce,
0xf1, 0x88, 0xf2, 0xd7, 0xbf, 0x34, 0xc0, 0x6d, 0xe6, 0x06, 0xec, 0x63, 0xb0, 0xaa, 0xcc, 0x4d,
0xa6, 0xd3, 0x50, 0x9e, 0xb1, 0x3f, 0xe9, 0x17, 0xca, 0x3e, 0x16, 0x2b, 0xce, 0xfb, 0xfa, 0x25,
0x69, 0xbf, 0xf2, 0xcb, 0x5f, 0x34, 0x58, 0xab, 0xfa, 0xf2, 0x7a, 0xeb, 0xa1, 0xac, 0x30, 0xfd,
0x71, 0x38, 0x3b, 0xd7, 0x40, 0xe5, 0x80, 0x3f, 0x6b, 0xf0, 0x08, 0xa1, 0x6e, 0xef, 0xe1, 0x34,
0xfe, 0x06, 0x9c, 0x39, 0x61, 0x9c, 0xda, 0xa1, 0x5e, 0x81, 0xdc, 0x80, 0x32, 0xb7, 0xe7, 0x32,
0x57, 0x99, 0xb4, 0x16, 0xcd, 0x3b, 0xe5, 0x6e, 0x28, 0x0e, 0x12, 0xf3, 0xea, 0xef, 0xa5, 0xa0,
0x2c, 0xf6, 0xba, 0x9f, 0x1c, 0x88, 0xe6, 0x1f, 0x88, 0xde, 0xd6, 0x60, 0x75, 0xd6, 0x41, 0xf1,
0x99, 0xe0, 0xbf, 0x7d, 0xaf, 0x30, 0xa7, 0x21, 0xa4, 0xe7, 0x6d, 0x41, 0xff, 0x90, 0x82, 0x4a,
0x52, 0xa5, 0x4f, 0xee, 0x20, 0x66, 0xef, 0x20, 0x3e, 0xf4, 0xa5, 0xd3, 0xbb, 0x1a, 0x3c, 0x3a,
0xc7, 0xa1, 0x1f, 0x2e, 0xd0, 0x89, 0x9b, 0x88, 0xd4, 0x3d, 0x6f, 0x22, 0xee, 0x37, 0xd4, 0x7f,
0x4c, 0xc3, 0x4a, 0x7b, 0xd4, 0xf7, 0x98, 0x9a, 0xe4, 0xe1, 0x2e, 0xce, 0xff, 0x85, 0xa5, 0x90,
0x1b, 0xeb, 0xc8, 0x07, 0x0a, 0xb1, 0x7d, 0xca, 0x93, 0x82, 0xc0, 0x55, 0x05, 0x0a, 0x3f, 0x01,
0x85, 0x88, 0x65, 0x3c, 0x64, 0xea, 0x72, 0x09, 0x14, 0xc7, 0x78, 0xc8, 0xf0, 0x65, 0x38, 0x33,
0x1c, 0x0f, 0x1c, 0x71, 0x73, 0x3f, 0xa2, 0x81, 0x23, 0x66, 0x76, 0xf8, 0x96, 0x4b, 0x3c, 0x6f,
0xa4, 0x49, 0x79, 0x38, 0x1e, 0x10, 0xff, 0x4e, 0xd8, 0xa2, 0x81, 0x10, 0xde, 0x72, 0x03, 0x86,
0xaf, 0x42, 0xde, 0xed, 0xef, 0xfb, 0x81, 0xc7, 0x0e, 0x06, 0xe2, 0xad, 0xa3, 0xb4, 0xa9, 0x47,
0xb7, 0xd9, 0xc7, 0xdd, 0xbf, 0x61, 0x44, 0x9c, 0x64, 0xfa, 0x91, 0xfe, 0x1c, 0xe4, 0x63, 0x3c,
0x46, 0xb0, 0x64, 0xde, 0xe8, 0x18, 0x75, 0xa7, 0xdd, 0xaa, 0xd7, 0xec, 0xb6, 0x7c, 0x51, 0xda,
0xe9, 0xd4, 0xeb, 0x4e, 0xbb, 0x6a, 0x58, 0x48, 0xd3, 0x09, 0x80, 0x98, 0x52, 0x4c, 0x3e, 0x75,
0x90, 0x76, 0x0f, 0x07, 0x9d, 0x85, 0x7c, 0xe0, 0xdf, 0x51, 0xb6, 0xa7, 0x84, 0x39, 0xb9, 0xc0,
0xbf, 0x23, 0x2c, 0xd7, 0x0d, 0xc0, 0x49, 0x5d, 0x55, 0xf6, 0x26, 0x0a, 0x4c, 0x9b, 0x29, 0xb0,
0xa9, 0xfc, 0xb8, 0xc0, 0xe4, 0x76, 0x2b, 0xa0, 0xee, 0xe0, 0x65, 0xea, 0xf6, 0x59, 0xd4, 0x53,
0xf4, 0x5f, 0xa7, 0xa0, 0x48, 0x38, 0xc6, 0x1b, 0xd0, 0x36, 0x73, 0x59, 0xc8, 0x23, 0x75, 0x20,
0x58, 0x9c, 0x69, 0x69, 0xe4, 0x49, 0x41, 0xe2, 0xe4, 0xbd, 0xeb, 0x26, 0x9c, 0x0e, 0x69, 0xd7,
0x1f, 0xf6, 0x42, 0x67, 0x8f, 0x1e, 0x78, 0xc3, 0x9e, 0x33, 0x70, 0x43, 0xa6, 0x1e, 0x67, 0x8a,
0xa4, 0xac, 0x88, 0x5b, 0x82, 0xd6, 0x10, 0x24, 0x7c, 0x11, 0x56, 0xf7, 0xbc, 0x61, 0xdf, 0xdf,
0x77, 0x46, 0x7d, 0x77, 0x42, 0x83, 0x50, 0x99, 0xca, 0xd3, 0x2b, 0x4b, 0xb0, 0xa4, 0xb5, 0x24,
0x49, 0x86, 0xfb, 0x35, 0xb8, 0x30, 0x57, 0x8a, 0x73, 0xcb, 0xeb, 0x33, 0x1a, 0xd0, 0x9e, 0x13,
0xd0, 0x51, 0xdf, 0xeb, 0xba, 0xa2, 0x5d, 0xc8, 0xfd, 0xd5, 0xd3, 0x73, 0x44, 0xef, 0x28, 0x76,
0x32, 0xe5, 0xe6, 0xde, 0xee, 0x8e, 0xc6, 0xce, 0x38, 0x74, 0xf7, 0xe5, 0xb3, 0x9b, 0x46, 0x72,
0xdd, 0xd1, 0xb8, 0xc3, 0x61, 0x8c, 0x20, 0x7d, 0x7b, 0x24, 0x1b, 0x8c, 0x46, 0xf8, 0x50, 0xff,
0xbb, 0x16, 0x5d, 0x2e, 0x46, 0xde, 0x8b, 0x1b, 0x48, 0x54, 0x26, 0xda, 0x07, 0x95, 0x49, 0x05,
0x16, 0x43, 0x1a, 0x1c, 0x79, 0xc3, 0xfd, 0xe8, 0xfd, 0x4a, 0x81, 0xb8, 0x0d, 0x4f, 0xab, 0xd7,
0x7b, 0xfa, 0x06, 0xa3, 0xc1, 0xd0, 0xed, 0xf7, 0x27, 0x8e, 0x3c, 0x5b, 0x0d, 0x19, 0xed, 0x39,
0xd3, 0x77, 0x76, 0xd9, 0x44, 0x9e, 0x94, 0xdc, 0x66, 0xcc, 0x4c, 0x62, 0x5e, 0x3b, 0x7e, 0x81,
0x7f, 0x09, 0x4a, 0x81, 0x8a, 0xa9, 0x13, 0xf2, 0xa0, 0xaa, 0xf2, 0x5c, 0x8d, 0x1f, 0xa1, 0x12,
0x01, 0x27, 0xc5, 0x20, 0x09, 0xf2, 0x0d, 0x78, 0xb9, 0x33, 0xea, 0xb9, 0x8c, 0x4a, 0x8b, 0x1f,
0xd0, 0xce, 0x94, 0xfc, 0xbf, 0x41, 0x66, 0xf6, 0xff, 0x06, 0xb3, 0xff, 0x5f, 0xc8, 0x1e, 0xfb,
0xff, 0x82, 0x7e, 0x15, 0x56, 0x67, 0xed, 0x57, 0xb1, 0x3e, 0x0f, 0x59, 0xf1, 0x62, 0x76, 0xec,
0x96, 0x34, 0xf1, 0x24, 0x46, 0x24, 0x83, 0xfe, 0x1b, 0x0d, 0xca, 0x73, 0xf6, 0x66, 0xf1, 0xc6,
0x4f, 0x4b, 0x9c, 0x2b, 0xff, 0x1f, 0xb2, 0xe2, 0xed, 0x4e, 0x3d, 0x2a, 0x9f, 0x39, 0xb9, 0xb5,
0x13, 0xef, 0x6c, 0x44, 0x72, 0xf1, 0xea, 0x14, 0x61, 0xed, 0x8a, 0x83, 0x65, 0xb4, 0xb4, 0x14,
0x38, 0x4e, 0x9e, 0x35, 0x4f, 0x9e, 0x54, 0x33, 0xf7, 0x3c, 0xa9, 0x5e, 0xf8, 0x41, 0x1a, 0xf2,
0x8d, 0x49, 0xfb, 0x76, 0x7f, 0xa7, 0xef, 0xee, 0x8b, 0x87, 0xb0, 0x46, 0xcb, 0xde, 0x45, 0xa7,
0xf0, 0x0a, 0x14, 0xad, 0xa6, 0xed, 0x58, 0xbc, 0xbf, 0xed, 0xd4, 0x8d, 0x6b, 0x48, 0xe3, 0x0d,
0xb0, 0x45, 0x6a, 0xce, 0x75, 0x73, 0x57, 0x62, 0x52, 0xb8, 0x0c, 0xcb, 0x1d, 0xab, 0x76, 0xa3,
0x63, 0x4e, 0x91, 0x19, 0x7c, 0x1a, 0x56, 0x1a, 0x9d, 0xba, 0x5d, 0x6b, 0xd5, 0x13, 0xe8, 0x1c,
0x6f, 0x96, 0x5b, 0xf5, 0xe6, 0x96, 0x04, 0x11, 0x9f, 0xbf, 0x63, 0xb5, 0x6b, 0xd7, 0x2c, 0x73,
0x5b, 0xa2, 0xd6, 0x39, 0xea, 0x35, 0x93, 0x34, 0x77, 0x6a, 0x91, 0xc8, 0xab, 0x18, 0x41, 0x61,
0xab, 0x66, 0x19, 0x44, 0xcd, 0x72, 0x57, 0xc3, 0x25, 0xc8, 0x9b, 0x56, 0xa7, 0xa1, 0xe0, 0x14,
0xae, 0x40, 0xd9, 0xe8, 0xd8, 0x4d, 0xa7, 0x66, 0x55, 0x89, 0xd9, 0x30, 0x2d, 0x5b, 0x51, 0x32,
0xb8, 0x0c, 0x25, 0xbb, 0xd6, 0x30, 0xdb, 0xb6, 0xd1, 0x68, 0x29, 0x24, 0xd7, 0x22, 0xd7, 0x36,
0x23, 0x1e, 0x84, 0xd7, 0xe0, 0xb4, 0xd5, 0x74, 0xb6, 0xcd, 0x1d, 0xa3, 0x53, 0xb7, 0x9d, 0x9b,
0x46, 0xbd, 0x63, 0x2a, 0xda, 0x3a, 0x3e, 0x03, 0xb8, 0x69, 0x39, 0x9d, 0xd6, 0xb6, 0x61, 0x9b,
0x8e, 0xd5, 0x7c, 0x55, 0x11, 0xae, 0xe2, 0x12, 0xe4, 0xa6, 0x1a, 0xdc, 0xe5, 0x5e, 0x28, 0xb6,
0x0c, 0x62, 0x4f, 0x8d, 0xbd, 0x7b, 0x97, 0x3b, 0x0b, 0xae, 0x91, 0x66, 0xa7, 0x35, 0x65, 0x5b,
0x81, 0x82, 0x72, 0x96, 0x42, 0x65, 0x38, 0x6a, 0xab, 0x66, 0x55, 0x63, 0xfd, 0xee, 0xe6, 0xd6,
0x52, 0x48, 0xbb, 0x70, 0x08, 0x19, 0x11, 0x8e, 0x1c, 0x64, 0xac, 0xa6, 0x65, 0xa2, 0x53, 0x78,
0x19, 0xa0, 0xd6, 0xae, 0x59, 0xb6, 0x79, 0x8d, 0x18, 0x75, 0x6e, 0xb6, 0x40, 0x44, 0x0e, 0xe4,
0xd6, 0x2e, 0xc1, 0x62, 0xad, 0xbd, 0x53, 0x6f, 0x1a, 0xb6, 0x32, 0xb3, 0xd6, 0xbe, 0xd1, 0x69,
0xda, 0x9c, 0x88, 0x70, 0x01, 0x16, 0x6a, 0x6d, 0xdb, 0xfc, 0xa2, 0xcd, 0xed, 0x12, 0x34, 0xe9,
0x55, 0x74, 0xf7, 0xea, 0x85, 0xb7, 0xd2, 0x90, 0xb1, 0x27, 0x23, 0xca, 0x03, 0x24, 0xa2, 0x6d,
0xef, 0xb6, 0xb8, 0xc8, 0x3c, 0x64, 0x6a, 0x96, 0xfd, 0x02, 0xfa, 0x52, 0x0a, 0x03, 0x64, 0x3b,
0x62, 0xfc, 0xe5, 0x05, 0x3e, 0xae, 0x59, 0xf6, 0xf3, 0x57, 0xd0, 0x9b, 0x29, 0x3e, 0x6d, 0x47,
0x02, 0x5f, 0x89, 0x08, 0x9b, 0x97, 0xd1, 0x57, 0x63, 0xc2, 0xe6, 0x65, 0xf4, 0xb5, 0x88, 0x70,
0x69, 0x13, 0x7d, 0x3d, 0x26, 0x5c, 0xda, 0x44, 0xdf, 0x88, 0x08, 0x57, 0x2e, 0xa3, 0xb7, 0x62,
0xc2, 0x95, 0xcb, 0xe8, 0x9b, 0x0b, 0xdc, 0x16, 0x61, 0xc9, 0xa5, 0x4d, 0xf4, 0xad, 0x5c, 0x0c,
0x5d, 0xb9, 0x8c, 0xbe, 0x9d, 0xe3, 0xf1, 0x8f, 0xa3, 0x8a, 0xbe, 0x83, 0xb8, 0x9a, 0x3c, 0x40,
0xe8, 0xbb, 0x62, 0xc8, 0x49, 0xe8, 0x7b, 0x88, 0xdb, 0xc8, 0xb1, 0x02, 0x7c, 0x5b, 0x50, 0x76,
0x4d, 0x83, 0xa0, 0xef, 0x2f, 0xe0, 0x02, 0x2c, 0x6e, 0x9b, 0xd5, 0x5a, 0xc3, 0xa8, 0x23, 0x2c,
0xbe, 0xe0, 0x5e, 0xf9, 0xe1, 0x45, 0x3e, 0xe4, 0xe9, 0x89, 0x7e, 0xd4, 0xe2, 0x02, 0x6f, 0x1a,
0xa4, 0xfa, 0xb2, 0x41, 0xd0, 0x3b, 0x17, 0xb9, 0xc0, 0x9b, 0x06, 0x51, 0xfe, 0xfa, 0x71, 0x8b,
0x33, 0x0a, 0xd2, 0xbb, 0x17, 0xb9, 0xd2, 0x0a, 0xff, 0x93, 0x16, 0xce, 0x41, 0x7a, 0xab, 0x66,
0xa3, 0x9f, 0x0a, 0x69, 0x3c, 0x45, 0xd1, 0xcf, 0x10, 0x47, 0xb6, 0x4d, 0x1b, 0xfd, 0x9c, 0x23,
0xb3, 0x76, 0xa7, 0x55, 0x37, 0xd1, 0x63, 0x5c, 0xb9, 0x6b, 0x66, 0xb3, 0x61, 0xda, 0x64, 0x17,
0xfd, 0x42, 0xb0, 0xbf, 0xd2, 0x6e, 0x5a, 0xe8, 0x3d, 0x74, 0x61, 0x07, 0xd0, 0xf1, 0xf2, 0xe7,
0x0a, 0x77, 0xac, 0xeb, 0x56, 0xf3, 0x55, 0x0b, 0x9d, 0xe2, 0x40, 0x8b, 0x98, 0x2d, 0x83, 0x98,
0x48, 0xc3, 0x00, 0x0b, 0xd5, 0x66, 0xa3, 0x51, 0xb3, 0x51, 0x0a, 0x2f, 0x41, 0x8e, 0x34, 0xeb,
0xf5, 0x2d, 0xa3, 0x7a, 0x1d, 0xa5, 0xb7, 0xd6, 0xa0, 0xd2, 0xf5, 0x07, 0x1b, 0x13, 0x7f, 0xcc,
0xc6, 0x7b, 0x74, 0xe3, 0xc8, 0x63, 0x34, 0x0c, 0xe5, 0x3f, 0xce, 0xf6, 0x16, 0xc4, 0xcf, 0xa5,
0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x23, 0x82, 0x49, 0xab, 0x26, 0x00, 0x00,
}

Просмотреть файл

@ -6,15 +6,15 @@ namespace Vitess\Proto\Query {
class ExecuteOptions extends \DrSlump\Protobuf\Message {
/** @var boolean */
public $exclude_field_names = null;
/** @var boolean */
public $include_event_token = null;
/** @var \Vitess\Proto\Query\EventToken */
public $compare_event_token = null;
/** @var int - \Vitess\Proto\Query\ExecuteOptions\IncludedFields */
public $included_fields = null;
/** @var \Closure[] */
protected static $__extensions = array();
@ -23,14 +23,6 @@ namespace Vitess\Proto\Query {
{
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'query.ExecuteOptions');
// OPTIONAL BOOL exclude_field_names = 1
$f = new \DrSlump\Protobuf\Field();
$f->number = 1;
$f->name = "exclude_field_names";
$f->type = \DrSlump\Protobuf::TYPE_BOOL;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL BOOL include_event_token = 2
$f = new \DrSlump\Protobuf\Field();
$f->number = 2;
@ -48,6 +40,15 @@ namespace Vitess\Proto\Query {
$f->reference = '\Vitess\Proto\Query\EventToken';
$descriptor->addField($f);
// OPTIONAL ENUM included_fields = 4
$f = new \DrSlump\Protobuf\Field();
$f->number = 4;
$f->name = "included_fields";
$f->type = \DrSlump\Protobuf::TYPE_ENUM;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Query\ExecuteOptions\IncludedFields';
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
@ -55,43 +56,6 @@ namespace Vitess\Proto\Query {
return $descriptor;
}
/**
* Check if <exclude_field_names> has a value
*
* @return boolean
*/
public function hasExcludeFieldNames(){
return $this->_has(1);
}
/**
* Clear <exclude_field_names> value
*
* @return \Vitess\Proto\Query\ExecuteOptions
*/
public function clearExcludeFieldNames(){
return $this->_clear(1);
}
/**
* Get <exclude_field_names> value
*
* @return boolean
*/
public function getExcludeFieldNames(){
return $this->_get(1);
}
/**
* Set <exclude_field_names> value
*
* @param boolean $value
* @return \Vitess\Proto\Query\ExecuteOptions
*/
public function setExcludeFieldNames( $value){
return $this->_set(1, $value);
}
/**
* Check if <include_event_token> has a value
*
@ -165,6 +129,43 @@ namespace Vitess\Proto\Query {
public function setCompareEventToken(\Vitess\Proto\Query\EventToken $value){
return $this->_set(3, $value);
}
/**
* Check if <included_fields> has a value
*
* @return boolean
*/
public function hasIncludedFields(){
return $this->_has(4);
}
/**
* Clear <included_fields> value
*
* @return \Vitess\Proto\Query\ExecuteOptions
*/
public function clearIncludedFields(){
return $this->_clear(4);
}
/**
* Get <included_fields> value
*
* @return int - \Vitess\Proto\Query\ExecuteOptions\IncludedFields
*/
public function getIncludedFields(){
return $this->_get(4);
}
/**
* Set <included_fields> value
*
* @param int - \Vitess\Proto\Query\ExecuteOptions\IncludedFields $value
* @return \Vitess\Proto\Query\ExecuteOptions
*/
public function setIncludedFields( $value){
return $this->_set(4, $value);
}
}
}

Просмотреть файл

@ -0,0 +1,12 @@
<?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: query.proto
namespace Vitess\Proto\Query\ExecuteOptions {
class IncludedFields extends \DrSlump\Protobuf\Enum {
const TYPE_AND_NAME = 0;
const TYPE_ONLY = 1;
const ALL = 2;
}
}

Просмотреть файл

@ -12,6 +12,30 @@ namespace Vitess\Proto\Query {
/** @var int - \Vitess\Proto\Query\Type */
public $type = null;
/** @var string */
public $table = null;
/** @var string */
public $org_table = null;
/** @var string */
public $database = null;
/** @var string */
public $org_name = null;
/** @var int */
public $column_length = null;
/** @var int */
public $charset = null;
/** @var int */
public $decimals = null;
/** @var int */
public $flags = null;
/** @var \Closure[] */
protected static $__extensions = array();
@ -37,6 +61,70 @@ namespace Vitess\Proto\Query {
$f->reference = '\Vitess\Proto\Query\Type';
$descriptor->addField($f);
// OPTIONAL STRING table = 3
$f = new \DrSlump\Protobuf\Field();
$f->number = 3;
$f->name = "table";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL STRING org_table = 4
$f = new \DrSlump\Protobuf\Field();
$f->number = 4;
$f->name = "org_table";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL STRING database = 5
$f = new \DrSlump\Protobuf\Field();
$f->number = 5;
$f->name = "database";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL STRING org_name = 6
$f = new \DrSlump\Protobuf\Field();
$f->number = 6;
$f->name = "org_name";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL UINT32 column_length = 7
$f = new \DrSlump\Protobuf\Field();
$f->number = 7;
$f->name = "column_length";
$f->type = \DrSlump\Protobuf::TYPE_UINT32;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL UINT32 charset = 8
$f = new \DrSlump\Protobuf\Field();
$f->number = 8;
$f->name = "charset";
$f->type = \DrSlump\Protobuf::TYPE_UINT32;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL UINT32 decimals = 9
$f = new \DrSlump\Protobuf\Field();
$f->number = 9;
$f->name = "decimals";
$f->type = \DrSlump\Protobuf::TYPE_UINT32;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL UINT32 flags = 10
$f = new \DrSlump\Protobuf\Field();
$f->number = 10;
$f->name = "flags";
$f->type = \DrSlump\Protobuf::TYPE_UINT32;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
@ -117,6 +205,302 @@ namespace Vitess\Proto\Query {
public function setType( $value){
return $this->_set(2, $value);
}
/**
* Check if <table> has a value
*
* @return boolean
*/
public function hasTable(){
return $this->_has(3);
}
/**
* Clear <table> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearTable(){
return $this->_clear(3);
}
/**
* Get <table> value
*
* @return string
*/
public function getTable(){
return $this->_get(3);
}
/**
* Set <table> value
*
* @param string $value
* @return \Vitess\Proto\Query\Field
*/
public function setTable( $value){
return $this->_set(3, $value);
}
/**
* Check if <org_table> has a value
*
* @return boolean
*/
public function hasOrgTable(){
return $this->_has(4);
}
/**
* Clear <org_table> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearOrgTable(){
return $this->_clear(4);
}
/**
* Get <org_table> value
*
* @return string
*/
public function getOrgTable(){
return $this->_get(4);
}
/**
* Set <org_table> value
*
* @param string $value
* @return \Vitess\Proto\Query\Field
*/
public function setOrgTable( $value){
return $this->_set(4, $value);
}
/**
* Check if <database> has a value
*
* @return boolean
*/
public function hasDatabase(){
return $this->_has(5);
}
/**
* Clear <database> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearDatabase(){
return $this->_clear(5);
}
/**
* Get <database> value
*
* @return string
*/
public function getDatabase(){
return $this->_get(5);
}
/**
* Set <database> value
*
* @param string $value
* @return \Vitess\Proto\Query\Field
*/
public function setDatabase( $value){
return $this->_set(5, $value);
}
/**
* Check if <org_name> has a value
*
* @return boolean
*/
public function hasOrgName(){
return $this->_has(6);
}
/**
* Clear <org_name> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearOrgName(){
return $this->_clear(6);
}
/**
* Get <org_name> value
*
* @return string
*/
public function getOrgName(){
return $this->_get(6);
}
/**
* Set <org_name> value
*
* @param string $value
* @return \Vitess\Proto\Query\Field
*/
public function setOrgName( $value){
return $this->_set(6, $value);
}
/**
* Check if <column_length> has a value
*
* @return boolean
*/
public function hasColumnLength(){
return $this->_has(7);
}
/**
* Clear <column_length> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearColumnLength(){
return $this->_clear(7);
}
/**
* Get <column_length> value
*
* @return int
*/
public function getColumnLength(){
return $this->_get(7);
}
/**
* Set <column_length> value
*
* @param int $value
* @return \Vitess\Proto\Query\Field
*/
public function setColumnLength( $value){
return $this->_set(7, $value);
}
/**
* Check if <charset> has a value
*
* @return boolean
*/
public function hasCharset(){
return $this->_has(8);
}
/**
* Clear <charset> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearCharset(){
return $this->_clear(8);
}
/**
* Get <charset> value
*
* @return int
*/
public function getCharset(){
return $this->_get(8);
}
/**
* Set <charset> value
*
* @param int $value
* @return \Vitess\Proto\Query\Field
*/
public function setCharset( $value){
return $this->_set(8, $value);
}
/**
* Check if <decimals> has a value
*
* @return boolean
*/
public function hasDecimals(){
return $this->_has(9);
}
/**
* Clear <decimals> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearDecimals(){
return $this->_clear(9);
}
/**
* Get <decimals> value
*
* @return int
*/
public function getDecimals(){
return $this->_get(9);
}
/**
* Set <decimals> value
*
* @param int $value
* @return \Vitess\Proto\Query\Field
*/
public function setDecimals( $value){
return $this->_set(9, $value);
}
/**
* Check if <flags> has a value
*
* @return boolean
*/
public function hasFlags(){
return $this->_has(10);
}
/**
* Clear <flags> value
*
* @return \Vitess\Proto\Query\Field
*/
public function clearFlags(){
return $this->_clear(10);
}
/**
* Get <flags> value
*
* @return int
*/
public function getFlags(){
return $this->_get(10);
}
/**
* Set <flags> value
*
* @param int $value
* @return \Vitess\Proto\Query\Field
*/
public function setFlags( $value){
return $this->_set(10, $value);
}
}
}

Просмотреть файл

@ -0,0 +1,29 @@
<?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: query.proto
namespace Vitess\Proto\Query {
class MySqlFlag extends \DrSlump\Protobuf\Enum {
const EMPTY = 0;
const NOT_NULL_FLAG = 1;
const PRI_KEY_FLAG = 2;
const UNIQUE_KEY_FLAG = 4;
const MULTIPLE_KEY_FLAG = 8;
const BLOB_FLAG = 16;
const UNSIGNED_FLAG = 32;
const ZEROFILL_FLAG = 64;
const BINARY_FLAG = 128;
const ENUM_FLAG = 256;
const AUTO_INCREMENT_FLAG = 512;
const TIMESTAMP_FLAG = 1024;
const SET_FLAG = 2048;
const NO_DEFAULT_VALUE_FLAG = 4096;
const ON_UPDATE_NOW_FLAG = 8192;
const NUM_FLAG = 32768;
const PART_KEY_FLAG = 16384;
const GROUP_FLAG = 32768;
const UNIQUE_FLAG = 65536;
const BINCMP_FLAG = 131072;
}
}

Просмотреть файл

@ -0,0 +1,123 @@
<?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: query.proto
namespace Vitess\Proto\Query {
class ResultWithError extends \DrSlump\Protobuf\Message {
/** @var \Vitess\Proto\Vtrpc\RPCError */
public $error = null;
/** @var \Vitess\Proto\Query\QueryResult */
public $result = null;
/** @var \Closure[] */
protected static $__extensions = array();
public static function descriptor()
{
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'query.ResultWithError');
// OPTIONAL MESSAGE error = 1
$f = new \DrSlump\Protobuf\Field();
$f->number = 1;
$f->name = "error";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Vtrpc\RPCError';
$descriptor->addField($f);
// OPTIONAL MESSAGE result = 2
$f = new \DrSlump\Protobuf\Field();
$f->number = 2;
$f->name = "result";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Query\QueryResult';
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
return $descriptor;
}
/**
* Check if <error> has a value
*
* @return boolean
*/
public function hasError(){
return $this->_has(1);
}
/**
* Clear <error> value
*
* @return \Vitess\Proto\Query\ResultWithError
*/
public function clearError(){
return $this->_clear(1);
}
/**
* Get <error> value
*
* @return \Vitess\Proto\Vtrpc\RPCError
*/
public function getError(){
return $this->_get(1);
}
/**
* Set <error> value
*
* @param \Vitess\Proto\Vtrpc\RPCError $value
* @return \Vitess\Proto\Query\ResultWithError
*/
public function setError(\Vitess\Proto\Vtrpc\RPCError $value){
return $this->_set(1, $value);
}
/**
* Check if <result> has a value
*
* @return boolean
*/
public function hasResult(){
return $this->_has(2);
}
/**
* Clear <result> value
*
* @return \Vitess\Proto\Query\ResultWithError
*/
public function clearResult(){
return $this->_clear(2);
}
/**
* Get <result> value
*
* @return \Vitess\Proto\Query\QueryResult
*/
public function getResult(){
return $this->_get(2);
}
/**
* Set <result> value
*
* @param \Vitess\Proto\Query\QueryResult $value
* @return \Vitess\Proto\Query\ResultWithError
*/
public function setResult(\Vitess\Proto\Query\QueryResult $value){
return $this->_set(2, $value);
}
}
}

Просмотреть файл

@ -0,0 +1,386 @@
<?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: vtgate.proto
namespace Vitess\Proto\Vtgate {
class ExecuteBatchRequest extends \DrSlump\Protobuf\Message {
/** @var \Vitess\Proto\Vtrpc\CallerID */
public $caller_id = null;
/** @var \Vitess\Proto\Vtgate\Session */
public $session = null;
/** @var \Vitess\Proto\Query\BoundQuery[] */
public $queries = array();
/** @var int - \Vitess\Proto\Topodata\TabletType */
public $tablet_type = null;
/** @var boolean */
public $as_transaction = null;
/** @var string */
public $keyspace = null;
/** @var \Vitess\Proto\Query\ExecuteOptions */
public $options = null;
/** @var \Closure[] */
protected static $__extensions = array();
public static function descriptor()
{
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'vtgate.ExecuteBatchRequest');
// OPTIONAL MESSAGE caller_id = 1
$f = new \DrSlump\Protobuf\Field();
$f->number = 1;
$f->name = "caller_id";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Vtrpc\CallerID';
$descriptor->addField($f);
// OPTIONAL MESSAGE session = 2
$f = new \DrSlump\Protobuf\Field();
$f->number = 2;
$f->name = "session";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Vtgate\Session';
$descriptor->addField($f);
// REPEATED MESSAGE queries = 3
$f = new \DrSlump\Protobuf\Field();
$f->number = 3;
$f->name = "queries";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_REPEATED;
$f->reference = '\Vitess\Proto\Query\BoundQuery';
$descriptor->addField($f);
// OPTIONAL ENUM tablet_type = 4
$f = new \DrSlump\Protobuf\Field();
$f->number = 4;
$f->name = "tablet_type";
$f->type = \DrSlump\Protobuf::TYPE_ENUM;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Topodata\TabletType';
$descriptor->addField($f);
// OPTIONAL BOOL as_transaction = 5
$f = new \DrSlump\Protobuf\Field();
$f->number = 5;
$f->name = "as_transaction";
$f->type = \DrSlump\Protobuf::TYPE_BOOL;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL STRING keyspace = 6
$f = new \DrSlump\Protobuf\Field();
$f->number = 6;
$f->name = "keyspace";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL MESSAGE options = 7
$f = new \DrSlump\Protobuf\Field();
$f->number = 7;
$f->name = "options";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Query\ExecuteOptions';
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
return $descriptor;
}
/**
* Check if <caller_id> has a value
*
* @return boolean
*/
public function hasCallerId(){
return $this->_has(1);
}
/**
* Clear <caller_id> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearCallerId(){
return $this->_clear(1);
}
/**
* Get <caller_id> value
*
* @return \Vitess\Proto\Vtrpc\CallerID
*/
public function getCallerId(){
return $this->_get(1);
}
/**
* Set <caller_id> value
*
* @param \Vitess\Proto\Vtrpc\CallerID $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setCallerId(\Vitess\Proto\Vtrpc\CallerID $value){
return $this->_set(1, $value);
}
/**
* Check if <session> has a value
*
* @return boolean
*/
public function hasSession(){
return $this->_has(2);
}
/**
* Clear <session> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearSession(){
return $this->_clear(2);
}
/**
* Get <session> value
*
* @return \Vitess\Proto\Vtgate\Session
*/
public function getSession(){
return $this->_get(2);
}
/**
* Set <session> value
*
* @param \Vitess\Proto\Vtgate\Session $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setSession(\Vitess\Proto\Vtgate\Session $value){
return $this->_set(2, $value);
}
/**
* Check if <queries> has a value
*
* @return boolean
*/
public function hasQueries(){
return $this->_has(3);
}
/**
* Clear <queries> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearQueries(){
return $this->_clear(3);
}
/**
* Get <queries> value
*
* @param int $idx
* @return \Vitess\Proto\Query\BoundQuery
*/
public function getQueries($idx = NULL){
return $this->_get(3, $idx);
}
/**
* Set <queries> value
*
* @param \Vitess\Proto\Query\BoundQuery $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setQueries(\Vitess\Proto\Query\BoundQuery $value, $idx = NULL){
return $this->_set(3, $value, $idx);
}
/**
* Get all elements of <queries>
*
* @return \Vitess\Proto\Query\BoundQuery[]
*/
public function getQueriesList(){
return $this->_get(3);
}
/**
* Add a new element to <queries>
*
* @param \Vitess\Proto\Query\BoundQuery $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function addQueries(\Vitess\Proto\Query\BoundQuery $value){
return $this->_add(3, $value);
}
/**
* Check if <tablet_type> has a value
*
* @return boolean
*/
public function hasTabletType(){
return $this->_has(4);
}
/**
* Clear <tablet_type> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearTabletType(){
return $this->_clear(4);
}
/**
* Get <tablet_type> value
*
* @return int - \Vitess\Proto\Topodata\TabletType
*/
public function getTabletType(){
return $this->_get(4);
}
/**
* Set <tablet_type> value
*
* @param int - \Vitess\Proto\Topodata\TabletType $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setTabletType( $value){
return $this->_set(4, $value);
}
/**
* Check if <as_transaction> has a value
*
* @return boolean
*/
public function hasAsTransaction(){
return $this->_has(5);
}
/**
* Clear <as_transaction> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearAsTransaction(){
return $this->_clear(5);
}
/**
* Get <as_transaction> value
*
* @return boolean
*/
public function getAsTransaction(){
return $this->_get(5);
}
/**
* Set <as_transaction> value
*
* @param boolean $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setAsTransaction( $value){
return $this->_set(5, $value);
}
/**
* Check if <keyspace> has a value
*
* @return boolean
*/
public function hasKeyspace(){
return $this->_has(6);
}
/**
* Clear <keyspace> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearKeyspace(){
return $this->_clear(6);
}
/**
* Get <keyspace> value
*
* @return string
*/
public function getKeyspace(){
return $this->_get(6);
}
/**
* Set <keyspace> value
*
* @param string $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setKeyspace( $value){
return $this->_set(6, $value);
}
/**
* Check if <options> has a value
*
* @return boolean
*/
public function hasOptions(){
return $this->_has(7);
}
/**
* Clear <options> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function clearOptions(){
return $this->_clear(7);
}
/**
* Get <options> value
*
* @return \Vitess\Proto\Query\ExecuteOptions
*/
public function getOptions(){
return $this->_get(7);
}
/**
* Set <options> value
*
* @param \Vitess\Proto\Query\ExecuteOptions $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchRequest
*/
public function setOptions(\Vitess\Proto\Query\ExecuteOptions $value){
return $this->_set(7, $value);
}
}
}

Просмотреть файл

@ -0,0 +1,192 @@
<?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: vtgate.proto
namespace Vitess\Proto\Vtgate {
class ExecuteBatchResponse extends \DrSlump\Protobuf\Message {
/** @var \Vitess\Proto\Vtrpc\RPCError */
public $error = null;
/** @var \Vitess\Proto\Vtgate\Session */
public $session = null;
/** @var \Vitess\Proto\Query\ResultWithError[] */
public $results = array();
/** @var \Closure[] */
protected static $__extensions = array();
public static function descriptor()
{
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'vtgate.ExecuteBatchResponse');
// OPTIONAL MESSAGE error = 1
$f = new \DrSlump\Protobuf\Field();
$f->number = 1;
$f->name = "error";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Vtrpc\RPCError';
$descriptor->addField($f);
// OPTIONAL MESSAGE session = 2
$f = new \DrSlump\Protobuf\Field();
$f->number = 2;
$f->name = "session";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\Vitess\Proto\Vtgate\Session';
$descriptor->addField($f);
// REPEATED MESSAGE results = 3
$f = new \DrSlump\Protobuf\Field();
$f->number = 3;
$f->name = "results";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_REPEATED;
$f->reference = '\Vitess\Proto\Query\ResultWithError';
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
return $descriptor;
}
/**
* Check if <error> has a value
*
* @return boolean
*/
public function hasError(){
return $this->_has(1);
}
/**
* Clear <error> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function clearError(){
return $this->_clear(1);
}
/**
* Get <error> value
*
* @return \Vitess\Proto\Vtrpc\RPCError
*/
public function getError(){
return $this->_get(1);
}
/**
* Set <error> value
*
* @param \Vitess\Proto\Vtrpc\RPCError $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function setError(\Vitess\Proto\Vtrpc\RPCError $value){
return $this->_set(1, $value);
}
/**
* Check if <session> has a value
*
* @return boolean
*/
public function hasSession(){
return $this->_has(2);
}
/**
* Clear <session> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function clearSession(){
return $this->_clear(2);
}
/**
* Get <session> value
*
* @return \Vitess\Proto\Vtgate\Session
*/
public function getSession(){
return $this->_get(2);
}
/**
* Set <session> value
*
* @param \Vitess\Proto\Vtgate\Session $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function setSession(\Vitess\Proto\Vtgate\Session $value){
return $this->_set(2, $value);
}
/**
* Check if <results> has a value
*
* @return boolean
*/
public function hasResults(){
return $this->_has(3);
}
/**
* Clear <results> value
*
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function clearResults(){
return $this->_clear(3);
}
/**
* Get <results> value
*
* @param int $idx
* @return \Vitess\Proto\Query\ResultWithError
*/
public function getResults($idx = NULL){
return $this->_get(3, $idx);
}
/**
* Set <results> value
*
* @param \Vitess\Proto\Query\ResultWithError $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function setResults(\Vitess\Proto\Query\ResultWithError $value, $idx = NULL){
return $this->_set(3, $value, $idx);
}
/**
* Get all elements of <results>
*
* @return \Vitess\Proto\Query\ResultWithError[]
*/
public function getResultsList(){
return $this->_get(3);
}
/**
* Add a new element to <results>
*
* @param \Vitess\Proto\Query\ResultWithError $value
* @return \Vitess\Proto\Vtgate\ExecuteBatchResponse
*/
public function addResults(\Vitess\Proto\Query\ResultWithError $value){
return $this->_add(3, $value);
}
}
}

Просмотреть файл

@ -39,6 +39,12 @@ namespace Vitess\Proto\Vtgateservice {
public function ExecuteEntityIds(\Vitess\Proto\Vtgate\ExecuteEntityIdsRequest $argument, $metadata = array(), $options = array()) {
return $this->_simpleRequest('/vtgateservice.Vitess/ExecuteEntityIds', $argument, '\Vitess\Proto\Vtgate\ExecuteEntityIdsResponse::deserialize', $metadata, $options);
}
/**
* @param Vitess\Proto\Vtgate\ExecuteBatchRequest $input
*/
public function ExecuteBatch(\Vitess\Proto\Vtgate\ExecuteBatchRequest $argument, $metadata = array(), $options = array()) {
return $this->_simpleRequest('/vtgateservice.Vitess/ExecuteBatch', $argument, '\Vitess\Proto\Vtgate\ExecuteBatchResponse::deserialize', $metadata, $options);
}
/**
* @param Vitess\Proto\Vtgate\ExecuteBatchShardsRequest $input
*/

Просмотреть файл

@ -240,16 +240,24 @@ message Field {
// vitess-defined type. Conversion function is in sqltypes package.
Type type = 2;
// remaining fields from mysql C API
// these fields are only populated when ExecuteOptions.included_fields
// is set to IncludedFields.ALL
// Remaining fields from mysql C API.
// These fields are only populated when ExecuteOptions.included_fields
// is set to IncludedFields.ALL.
string table = 3;
string org_table = 4;
string database = 5;
string org_name = 6;
uint64 column_length = 7;
// column_length is really a uint32. All 32 bits can be used.
uint32 column_length = 7;
// charset is actually a uint16. Only the lower 16 bits are used.
uint32 charset = 8;
// decimals is actualy a uint8. Only the lower 8 bits are used.
uint32 decimals = 9;
// flags is actually a uint16. Only the lower 16 bits are used.
uint32 flags = 10;
}

Различия файлов скрыты, потому что одна или несколько строк слишком длинны