зеркало из https://github.com/github/vitess-gh.git
Merge pull request #9030 from planetscale/savepoint-rc
Fix savepoint support with reserved connections
This commit is contained in:
Коммит
27367ea3ea
|
@ -611,3 +611,29 @@ func TestSQLSelectLimitWithPlanCache(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSavepointInReservedConn(t *testing.T) {
|
||||
defer cluster.PanicHandler(t)
|
||||
ctx := context.Background()
|
||||
conn, err := mysql.Connect(ctx, &vtParams)
|
||||
require.NoError(t, err)
|
||||
defer conn.Close()
|
||||
|
||||
utils.Exec(t, conn, "set session sql_mode = ''")
|
||||
utils.Exec(t, conn, "BEGIN")
|
||||
utils.Exec(t, conn, "SAVEPOINT sp_1")
|
||||
utils.Exec(t, conn, "insert into t7_xxhash(uid, msg) values(1, 'a')")
|
||||
utils.Exec(t, conn, "RELEASE SAVEPOINT sp_1")
|
||||
utils.Exec(t, conn, "ROLLBACK")
|
||||
|
||||
utils.Exec(t, conn, "set session sql_mode = ''")
|
||||
utils.Exec(t, conn, "BEGIN")
|
||||
utils.Exec(t, conn, "SAVEPOINT sp_1")
|
||||
utils.Exec(t, conn, "RELEASE SAVEPOINT sp_1")
|
||||
utils.Exec(t, conn, "SAVEPOINT sp_2")
|
||||
utils.Exec(t, conn, "insert into t7_xxhash(uid, msg) values(2, 'a')")
|
||||
utils.Exec(t, conn, "RELEASE SAVEPOINT sp_2")
|
||||
utils.Exec(t, conn, "COMMIT")
|
||||
defer utils.Exec(t, conn, `delete from t7_xxhash`)
|
||||
utils.AssertMatches(t, conn, "select uid from t7_xxhash", `[[VARCHAR("2")]]`)
|
||||
}
|
||||
|
|
|
@ -4208,6 +4208,7 @@ type ReserveBeginExecuteRequest struct {
|
|||
Query *BoundQuery `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"`
|
||||
Options *ExecuteOptions `protobuf:"bytes,5,opt,name=options,proto3" json:"options,omitempty"`
|
||||
PreQueries []string `protobuf:"bytes,6,rep,name=pre_queries,json=preQueries,proto3" json:"pre_queries,omitempty"`
|
||||
PostBeginQueries []string `protobuf:"bytes,7,rep,name=post_begin_queries,json=postBeginQueries,proto3" json:"post_begin_queries,omitempty"`
|
||||
}
|
||||
|
||||
func (x *ReserveBeginExecuteRequest) Reset() {
|
||||
|
@ -4284,6 +4285,13 @@ func (x *ReserveBeginExecuteRequest) GetPreQueries() []string {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (x *ReserveBeginExecuteRequest) GetPostBeginQueries() []string {
|
||||
if x != nil {
|
||||
return x.PostBeginQueries
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReserveBeginExecuteResponse is the returned value from ReserveBeginExecute
|
||||
type ReserveBeginExecuteResponse struct {
|
||||
state protoimpl.MessageState
|
||||
|
@ -5600,7 +5608,7 @@ var file_query_proto_rawDesc = []byte{
|
|||
0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54,
|
||||
0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c,
|
||||
0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0xc6, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65,
|
||||
0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0xf4, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65,
|
||||
0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
|
||||
0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
|
@ -5621,173 +5629,176 @@ var file_query_proto_rawDesc = []byte{
|
|||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
|
||||
0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06,
|
||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
|
||||
0x22, 0xf2, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69,
|
||||
0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72,
|
||||
0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
|
||||
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
|
||||
0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73,
|
||||
0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61,
|
||||
0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65,
|
||||
0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74,
|
||||
0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
|
||||
0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x87, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73,
|
||||
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65,
|
||||
0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61,
|
||||
0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
|
||||
0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d,
|
||||
0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56,
|
||||
0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69,
|
||||
0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64,
|
||||
0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
|
||||
0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73,
|
||||
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f,
|
||||
0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22,
|
||||
0x11, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c,
|
||||
0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc6, 0x02, 0x0a, 0x0d, 0x52, 0x65,
|
||||
0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68,
|
||||
0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36,
|
||||
0x0a, 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61,
|
||||
0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53,
|
||||
0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
|
||||
0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x6c, 0x61, 0x79,
|
||||
0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x66, 0x69, 0x6c, 0x74,
|
||||
0x65, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x1d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c,
|
||||
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
|
||||
0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73,
|
||||
0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
|
||||
0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12,
|
||||
0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67,
|
||||
0x65, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x0e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
|
||||
0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79,
|
||||
0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x61, 0x62, 0x6c,
|
||||
0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x6e, 0x68, 0x65, 0x61,
|
||||
0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74,
|
||||
0x68, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a,
|
||||
0x1b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67,
|
||||
0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x0d, 0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
|
||||
0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x1b,
|
||||
0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x71,
|
||||
0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6f,
|
||||
0x73, 0x74, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xf2,
|
||||
0x01, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45,
|
||||
0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25,
|
||||
0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
|
||||
0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05,
|
||||
0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
|
||||
0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73,
|
||||
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65,
|
||||
0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
|
||||
0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62,
|
||||
0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
|
||||
0x69, 0x61, 0x73, 0x22, 0x87, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
|
||||
0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c,
|
||||
0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43,
|
||||
0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64,
|
||||
0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47,
|
||||
0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d,
|
||||
0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25,
|
||||
0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
|
||||
0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74,
|
||||
0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74,
|
||||
0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
|
||||
0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22, 0x11, 0x0a,
|
||||
0x0f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc6, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x6c,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61,
|
||||
0x6c, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x17,
|
||||
0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f,
|
||||
0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x0d, 0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61,
|
||||
0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x22, 0xa9, 0x02, 0x0a, 0x14,
|
||||
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72,
|
||||
0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73,
|
||||
0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x65,
|
||||
0x72, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x53, 0x0a, 0x26, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
|
||||
0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x72,
|
||||
0x65, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x23, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74,
|
||||
0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65,
|
||||
0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65,
|
||||
0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65,
|
||||
0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
|
||||
0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41,
|
||||
0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
|
||||
0x73, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xae, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e,
|
||||
0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64,
|
||||
0x74, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x0e, 0x32, 0x17, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
|
||||
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
|
||||
0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75,
|
||||
0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74,
|
||||
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x2a, 0x92, 0x03, 0x0a, 0x09, 0x4d, 0x79, 0x53,
|
||||
0x71, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10,
|
||||
0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x46, 0x4c,
|
||||
0x41, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x5f,
|
||||
0x46, 0x4c, 0x41, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45,
|
||||
0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x4d,
|
||||
0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
|
||||
0x10, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x4c,
|
||||
0x41, 0x47, 0x10, 0x20, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x45, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x4c,
|
||||
0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x40, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x41, 0x52,
|
||||
0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x45, 0x4e, 0x55,
|
||||
0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x55, 0x54,
|
||||
0x4f, 0x5f, 0x49, 0x4e, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x80, 0x04, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50,
|
||||
0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x53, 0x45, 0x54, 0x5f,
|
||||
0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x4e, 0x4f, 0x5f, 0x44, 0x45,
|
||||
0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x80, 0x20, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
|
||||
0x5f, 0x4e, 0x4f, 0x57, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x40, 0x12, 0x0e, 0x0a, 0x08,
|
||||
0x4e, 0x55, 0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x13, 0x0a, 0x0d,
|
||||
0x50, 0x41, 0x52, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80,
|
||||
0x01, 0x12, 0x10, 0x0a, 0x0a, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
|
||||
0x80, 0x80, 0x02, 0x12, 0x11, 0x0a, 0x0b, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x46, 0x4c,
|
||||
0x41, 0x47, 0x10, 0x80, 0x80, 0x04, 0x12, 0x11, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x43, 0x4d, 0x50,
|
||||
0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x6b, 0x0a,
|
||||
0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12,
|
||||
0x0f, 0x0a, 0x0a, 0x49, 0x53, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x4c, 0x10, 0x80, 0x02,
|
||||
0x12, 0x0f, 0x0a, 0x0a, 0x49, 0x53, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x80,
|
||||
0x04, 0x12, 0x0c, 0x0a, 0x07, 0x49, 0x53, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x80, 0x08, 0x12,
|
||||
0x0d, 0x0a, 0x08, 0x49, 0x53, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x44, 0x10, 0x80, 0x10, 0x12, 0x0b,
|
||||
0x0a, 0x06, 0x49, 0x53, 0x54, 0x45, 0x58, 0x54, 0x10, 0x80, 0x20, 0x12, 0x0d, 0x0a, 0x08, 0x49,
|
||||
0x53, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x80, 0x40, 0x2a, 0x99, 0x03, 0x0a, 0x04, 0x54,
|
||||
0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45,
|
||||
0x10, 0x00, 0x12, 0x09, 0x0a, 0x04, 0x49, 0x4e, 0x54, 0x38, 0x10, 0x81, 0x02, 0x12, 0x0a, 0x0a,
|
||||
0x05, 0x55, 0x49, 0x4e, 0x54, 0x38, 0x10, 0x82, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54,
|
||||
0x31, 0x36, 0x10, 0x83, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10,
|
||||
0x84, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x32, 0x34, 0x10, 0x85, 0x02, 0x12, 0x0b,
|
||||
0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x32, 0x34, 0x10, 0x86, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49,
|
||||
0x4e, 0x54, 0x33, 0x32, 0x10, 0x87, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33,
|
||||
0x32, 0x10, 0x88, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x89, 0x02,
|
||||
0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x8a, 0x06, 0x12, 0x0c, 0x0a,
|
||||
0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x33, 0x32, 0x10, 0x8b, 0x08, 0x12, 0x0c, 0x0a, 0x07, 0x46,
|
||||
0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34, 0x10, 0x8c, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d,
|
||||
0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x8d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x44, 0x41, 0x54,
|
||||
0x45, 0x10, 0x8e, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x8f, 0x10, 0x12,
|
||||
0x0d, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x90, 0x10, 0x12, 0x09,
|
||||
0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 0x10, 0x91, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43,
|
||||
0x49, 0x4d, 0x41, 0x4c, 0x10, 0x12, 0x12, 0x09, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x93,
|
||||
0x30, 0x12, 0x09, 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x94, 0x50, 0x12, 0x0c, 0x0a, 0x07,
|
||||
0x56, 0x41, 0x52, 0x43, 0x48, 0x41, 0x52, 0x10, 0x95, 0x30, 0x12, 0x0e, 0x0a, 0x09, 0x56, 0x41,
|
||||
0x52, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x96, 0x50, 0x12, 0x09, 0x0a, 0x04, 0x43, 0x48,
|
||||
0x41, 0x52, 0x10, 0x97, 0x30, 0x12, 0x0b, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10,
|
||||
0x98, 0x50, 0x12, 0x08, 0x0a, 0x03, 0x42, 0x49, 0x54, 0x10, 0x99, 0x10, 0x12, 0x09, 0x0a, 0x04,
|
||||
0x45, 0x4e, 0x55, 0x4d, 0x10, 0x9a, 0x10, 0x12, 0x08, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x9b,
|
||||
0x10, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x55, 0x50, 0x4c, 0x45, 0x10, 0x1c, 0x12, 0x0d, 0x0a, 0x08,
|
||||
0x47, 0x45, 0x4f, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x10, 0x9d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x4a,
|
||||
0x53, 0x4f, 0x4e, 0x10, 0x9e, 0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53,
|
||||
0x53, 0x49, 0x4f, 0x4e, 0x10, 0x1f, 0x2a, 0x46, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
|
||||
0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41,
|
||||
0x52, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x02,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4f, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x42, 0x35,
|
||||
0x0a, 0x0f, 0x69, 0x6f, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x5a, 0x22, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74,
|
||||
0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
|
||||
0x71, 0x75, 0x65, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x72,
|
||||
0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63,
|
||||
0x6f, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x70,
|
||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x12, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
|
||||
0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
|
||||
0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
|
||||
0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x1d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12,
|
||||
0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x01, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03,
|
||||
0x71, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x30,
|
||||
0x0a, 0x14, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63,
|
||||
0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61,
|
||||
0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
|
||||
0x22, 0xf6, 0x01, 0x0a, 0x0e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74,
|
||||
0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74,
|
||||
0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74,
|
||||
0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79,
|
||||
0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x72,
|
||||
0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73,
|
||||
0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67,
|
||||
0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x1b, 0x72, 0x65,
|
||||
0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65,
|
||||
0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53,
|
||||
0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x22, 0xa9, 0x02, 0x0a, 0x14, 0x53, 0x74,
|
||||
0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65,
|
||||
0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72,
|
||||
0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x6e, 0x67, 0x12, 0x53, 0x0a, 0x26, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x65, 0x78,
|
||||
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
|
||||
0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x23, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x54,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x6c,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x14, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
|
||||
0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
|
||||
0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
|
||||
0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4a,
|
||||
0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xae, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
|
||||
0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69,
|
||||
0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
|
||||
0x32, 0x17, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||
0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
|
||||
0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72,
|
||||
0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
|
||||
0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x2a, 0x92, 0x03, 0x0a, 0x09, 0x4d, 0x79, 0x53, 0x71, 0x6c,
|
||||
0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12,
|
||||
0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c,
|
||||
0x41, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x4b,
|
||||
0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x55, 0x4c,
|
||||
0x54, 0x49, 0x50, 0x4c, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x08,
|
||||
0x12, 0x0d, 0x0a, 0x09, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x10, 0x12,
|
||||
0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x20, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x45, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x4c, 0x5f, 0x46,
|
||||
0x4c, 0x41, 0x47, 0x10, 0x40, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f,
|
||||
0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x45, 0x4e, 0x55, 0x4d, 0x5f,
|
||||
0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x5f,
|
||||
0x49, 0x4e, 0x43, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80,
|
||||
0x04, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x5f, 0x46,
|
||||
0x4c, 0x41, 0x47, 0x10, 0x80, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4c,
|
||||
0x41, 0x47, 0x10, 0x80, 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x4e, 0x4f, 0x5f, 0x44, 0x45, 0x46, 0x41,
|
||||
0x55, 0x4c, 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80,
|
||||
0x20, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e,
|
||||
0x4f, 0x57, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x40, 0x12, 0x0e, 0x0a, 0x08, 0x4e, 0x55,
|
||||
0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x50, 0x41,
|
||||
0x52, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x01, 0x12,
|
||||
0x10, 0x0a, 0x0a, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80,
|
||||
0x02, 0x12, 0x11, 0x0a, 0x0b, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47,
|
||||
0x10, 0x80, 0x80, 0x04, 0x12, 0x11, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x43, 0x4d, 0x50, 0x5f, 0x46,
|
||||
0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x6b, 0x0a, 0x04, 0x46,
|
||||
0x6c, 0x61, 0x67, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a,
|
||||
0x0a, 0x49, 0x53, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x4c, 0x10, 0x80, 0x02, 0x12, 0x0f,
|
||||
0x0a, 0x0a, 0x49, 0x53, 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x80, 0x04, 0x12,
|
||||
0x0c, 0x0a, 0x07, 0x49, 0x53, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x80, 0x08, 0x12, 0x0d, 0x0a,
|
||||
0x08, 0x49, 0x53, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x44, 0x10, 0x80, 0x10, 0x12, 0x0b, 0x0a, 0x06,
|
||||
0x49, 0x53, 0x54, 0x45, 0x58, 0x54, 0x10, 0x80, 0x20, 0x12, 0x0d, 0x0a, 0x08, 0x49, 0x53, 0x42,
|
||||
0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x80, 0x40, 0x2a, 0x99, 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70,
|
||||
0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00,
|
||||
0x12, 0x09, 0x0a, 0x04, 0x49, 0x4e, 0x54, 0x38, 0x10, 0x81, 0x02, 0x12, 0x0a, 0x0a, 0x05, 0x55,
|
||||
0x49, 0x4e, 0x54, 0x38, 0x10, 0x82, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31, 0x36,
|
||||
0x10, 0x83, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x84, 0x06,
|
||||
0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x32, 0x34, 0x10, 0x85, 0x02, 0x12, 0x0b, 0x0a, 0x06,
|
||||
0x55, 0x49, 0x4e, 0x54, 0x32, 0x34, 0x10, 0x86, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54,
|
||||
0x33, 0x32, 0x10, 0x87, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10,
|
||||
0x88, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x89, 0x02, 0x12, 0x0b,
|
||||
0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x8a, 0x06, 0x12, 0x0c, 0x0a, 0x07, 0x46,
|
||||
0x4c, 0x4f, 0x41, 0x54, 0x33, 0x32, 0x10, 0x8b, 0x08, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x4c, 0x4f,
|
||||
0x41, 0x54, 0x36, 0x34, 0x10, 0x8c, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53,
|
||||
0x54, 0x41, 0x4d, 0x50, 0x10, 0x8d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10,
|
||||
0x8e, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x8f, 0x10, 0x12, 0x0d, 0x0a,
|
||||
0x08, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x90, 0x10, 0x12, 0x09, 0x0a, 0x04,
|
||||
0x59, 0x45, 0x41, 0x52, 0x10, 0x91, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43, 0x49, 0x4d,
|
||||
0x41, 0x4c, 0x10, 0x12, 0x12, 0x09, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x93, 0x30, 0x12,
|
||||
0x09, 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x94, 0x50, 0x12, 0x0c, 0x0a, 0x07, 0x56, 0x41,
|
||||
0x52, 0x43, 0x48, 0x41, 0x52, 0x10, 0x95, 0x30, 0x12, 0x0e, 0x0a, 0x09, 0x56, 0x41, 0x52, 0x42,
|
||||
0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x96, 0x50, 0x12, 0x09, 0x0a, 0x04, 0x43, 0x48, 0x41, 0x52,
|
||||
0x10, 0x97, 0x30, 0x12, 0x0b, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x98, 0x50,
|
||||
0x12, 0x08, 0x0a, 0x03, 0x42, 0x49, 0x54, 0x10, 0x99, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x45, 0x4e,
|
||||
0x55, 0x4d, 0x10, 0x9a, 0x10, 0x12, 0x08, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x9b, 0x10, 0x12,
|
||||
0x09, 0x0a, 0x05, 0x54, 0x55, 0x50, 0x4c, 0x45, 0x10, 0x1c, 0x12, 0x0d, 0x0a, 0x08, 0x47, 0x45,
|
||||
0x4f, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x10, 0x9d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x4a, 0x53, 0x4f,
|
||||
0x4e, 0x10, 0x9e, 0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49,
|
||||
0x4f, 0x4e, 0x10, 0x1f, 0x2a, 0x46, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
|
||||
0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45,
|
||||
0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x12, 0x0c,
|
||||
0x0a, 0x08, 0x52, 0x4f, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x42, 0x35, 0x0a, 0x0f,
|
||||
0x69, 0x6f, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5a,
|
||||
0x22, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73,
|
||||
0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x71, 0x75,
|
||||
0x65, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
@ -3266,6 +3266,15 @@ func (m *ReserveBeginExecuteRequest) MarshalToSizedBufferVT(dAtA []byte) (int, e
|
|||
i -= len(m.unknownFields)
|
||||
copy(dAtA[i:], m.unknownFields)
|
||||
}
|
||||
if len(m.PostBeginQueries) > 0 {
|
||||
for iNdEx := len(m.PostBeginQueries) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(m.PostBeginQueries[iNdEx])
|
||||
copy(dAtA[i:], m.PostBeginQueries[iNdEx])
|
||||
i = encodeVarint(dAtA, i, uint64(len(m.PostBeginQueries[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0x3a
|
||||
}
|
||||
}
|
||||
if len(m.PreQueries) > 0 {
|
||||
for iNdEx := len(m.PreQueries) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(m.PreQueries[iNdEx])
|
||||
|
@ -5188,6 +5197,12 @@ func (m *ReserveBeginExecuteRequest) SizeVT() (n int) {
|
|||
n += 1 + l + sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if len(m.PostBeginQueries) > 0 {
|
||||
for _, s := range m.PostBeginQueries {
|
||||
l = len(s)
|
||||
n += 1 + l + sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if m.unknownFields != nil {
|
||||
n += len(m.unknownFields)
|
||||
}
|
||||
|
@ -13787,6 +13802,38 @@ func (m *ReserveBeginExecuteRequest) UnmarshalVT(dAtA []byte) error {
|
|||
}
|
||||
m.PreQueries = append(m.PreQueries, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
case 7:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field PostBeginQueries", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.PostBeginQueries = append(m.PostBeginQueries, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skip(dAtA[iNdEx:])
|
||||
|
|
|
@ -538,9 +538,9 @@ func (itc *internalTabletConn) HandlePanic(err *error) {
|
|||
}
|
||||
|
||||
//ReserveBeginExecute is part of the QueryService interface.
|
||||
func (itc *internalTabletConn) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (itc *internalTabletConn) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
bindVariables = sqltypes.CopyBindVariables(bindVariables)
|
||||
res, transactionID, reservedID, alias, err := itc.tablet.qsc.QueryService().ReserveBeginExecute(ctx, target, preQueries, sql, bindVariables, options)
|
||||
res, transactionID, reservedID, alias, err := itc.tablet.qsc.QueryService().ReserveBeginExecute(ctx, target, preQueries, postBeginQueries, sql, bindVariables, options)
|
||||
return res, transactionID, reservedID, alias, tabletconn.ErrorFromGRPC(vterrors.ToGRPC(err))
|
||||
}
|
||||
|
||||
|
|
|
@ -2196,6 +2196,70 @@ func TestExecutorSavepointInTx(t *testing.T) {
|
|||
testQueryLog(t, logChan, "TestExecute", "ROLLBACK", "rollback", 2)
|
||||
}
|
||||
|
||||
func TestExecutorSavepointInTxWithReservedConn(t *testing.T) {
|
||||
executor, sbc1, sbc2, _ := createExecutorEnv()
|
||||
logChan := QueryLogger.Subscribe("TestExecutorSavepoint")
|
||||
defer QueryLogger.Unsubscribe(logChan)
|
||||
|
||||
session := NewSafeSession(&vtgatepb.Session{Autocommit: true, TargetString: "TestExecutor", EnableSystemSettings: true})
|
||||
sbc1.SetResults([]*sqltypes.Result{
|
||||
sqltypes.MakeTestResult(sqltypes.MakeTestFields("orig|new", "varchar|varchar"), "a|"),
|
||||
})
|
||||
_, err := exec(executor, session, "set sql_mode = ''")
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = exec(executor, session, "begin")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "savepoint a")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "select id from user where id = 1")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "savepoint b")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "release savepoint a")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "select id from user where id = 3")
|
||||
require.NoError(t, err)
|
||||
_, err = exec(executor, session, "commit")
|
||||
require.NoError(t, err)
|
||||
emptyBV := map[string]*querypb.BindVariable{}
|
||||
sbc1WantQueries := []*querypb.BoundQuery{{
|
||||
Sql: "select @@sql_mode orig, '' new", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "set @@sql_mode = ''", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "savepoint a", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "select id from `user` where id = 1", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "savepoint b", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "release savepoint a", BindVariables: emptyBV,
|
||||
}}
|
||||
|
||||
sbc2WantQueries := []*querypb.BoundQuery{{
|
||||
Sql: "set @@sql_mode = ''", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "savepoint a", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "savepoint b", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "release savepoint a", BindVariables: emptyBV,
|
||||
}, {
|
||||
Sql: "select id from `user` where id = 3", BindVariables: emptyBV,
|
||||
}}
|
||||
utils.MustMatch(t, sbc1WantQueries, sbc1.Queries, "")
|
||||
utils.MustMatch(t, sbc2WantQueries, sbc2.Queries, "")
|
||||
testQueryLog(t, logChan, "TestExecute", "SET", "set session sql_mode = ''", 1)
|
||||
testQueryLog(t, logChan, "TestExecute", "BEGIN", "begin", 0)
|
||||
testQueryLog(t, logChan, "TestExecute", "SAVEPOINT", "savepoint a", 0)
|
||||
testQueryLog(t, logChan, "TestExecute", "SELECT", "select id from user where id = 1", 1)
|
||||
testQueryLog(t, logChan, "TestExecute", "SAVEPOINT", "savepoint b", 1)
|
||||
testQueryLog(t, logChan, "TestExecute", "RELEASE", "release savepoint a", 1)
|
||||
testQueryLog(t, logChan, "TestExecute", "SELECT", "select id from user where id = 3", 1)
|
||||
testQueryLog(t, logChan, "TestExecute", "COMMIT", "commit", 2)
|
||||
}
|
||||
|
||||
func TestExecutorSavepointWithoutTx(t *testing.T) {
|
||||
executor, sbc1, sbc2, _ := createLegacyExecutorEnv()
|
||||
logChan := QueryLogger.Subscribe("TestExecutorSavepoint")
|
||||
|
|
|
@ -245,18 +245,18 @@ func (stc *ScatterConn) ExecuteMultiShard(
|
|||
})
|
||||
}
|
||||
case begin:
|
||||
innerqr, transactionID, alias, err = qs.BeginExecute(ctx, rs.Target, session.Savepoints, queries[i].Sql, queries[i].BindVariables, reservedID, opts)
|
||||
innerqr, transactionID, alias, err = qs.BeginExecute(ctx, rs.Target, session.GetSavepoints(), queries[i].Sql, queries[i].BindVariables, reservedID, opts)
|
||||
if err != nil {
|
||||
retryRequest(func() {
|
||||
// we seem to have lost our connection. it was a reserved connection, let's try to recreate it
|
||||
info.actionNeeded = reserveBegin
|
||||
innerqr, transactionID, reservedID, alias, err = qs.ReserveBeginExecute(ctx, rs.Target, session.SetPreQueries(), queries[i].Sql, queries[i].BindVariables, opts)
|
||||
innerqr, transactionID, reservedID, alias, err = qs.ReserveBeginExecute(ctx, rs.Target, session.SetPreQueries(), session.GetSavepoints(), queries[i].Sql, queries[i].BindVariables, opts)
|
||||
})
|
||||
}
|
||||
case reserve:
|
||||
innerqr, reservedID, alias, err = qs.ReserveExecute(ctx, rs.Target, session.SetPreQueries(), queries[i].Sql, queries[i].BindVariables, transactionID, opts)
|
||||
case reserveBegin:
|
||||
innerqr, transactionID, reservedID, alias, err = qs.ReserveBeginExecute(ctx, rs.Target, session.SetPreQueries(), queries[i].Sql, queries[i].BindVariables, opts)
|
||||
innerqr, transactionID, reservedID, alias, err = qs.ReserveBeginExecute(ctx, rs.Target, session.SetPreQueries(), session.GetSavepoints(), queries[i].Sql, queries[i].BindVariables, opts)
|
||||
default:
|
||||
return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "[BUG] unexpected actionNeeded on query execution: %v", info.actionNeeded)
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ func TestCallProcedureInsideTx(t *testing.T) {
|
|||
|
||||
func TestCallProcedureInsideReservedConn(t *testing.T) {
|
||||
client := framework.NewClient()
|
||||
_, err := client.ReserveBeginExecute(`call proc_dml()`, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(`call proc_dml()`, nil, nil, nil)
|
||||
require.EqualError(t, err, "Transaction state change inside the stored procedure is not allowed (CallerID: dev)")
|
||||
client.Release()
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ func TestTxKillerKillsTransactionsInReservedConnections(t *testing.T) {
|
|||
client := framework.NewClient()
|
||||
defer client.Release()
|
||||
|
||||
_, err := client.ReserveBeginExecute("select 42", nil, nil)
|
||||
_, err := client.ReserveBeginExecute("select 42", nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
assertIsKilledWithin6Seconds(t, client)
|
||||
|
|
|
@ -313,14 +313,14 @@ func (client *QueryClient) ReserveExecute(query string, preQueries []string, bin
|
|||
}
|
||||
|
||||
// ReserveBeginExecute performs a ReserveBeginExecute.
|
||||
func (client *QueryClient) ReserveBeginExecute(query string, preQueries []string, bindvars map[string]*querypb.BindVariable) (*sqltypes.Result, error) {
|
||||
func (client *QueryClient) ReserveBeginExecute(query string, preQueries []string, postBeginQueries []string, bindvars map[string]*querypb.BindVariable) (*sqltypes.Result, error) {
|
||||
if client.reservedID != 0 {
|
||||
return nil, errors.New("already reserved a connection")
|
||||
}
|
||||
if client.transactionID != 0 {
|
||||
return nil, errors.New("already in transaction")
|
||||
}
|
||||
qr, transactionID, reservedID, _, err := client.server.ReserveBeginExecute(client.ctx, client.target, preQueries, query, bindvars, &querypb.ExecuteOptions{IncludedFields: querypb.ExecuteOptions_ALL})
|
||||
qr, transactionID, reservedID, _, err := client.server.ReserveBeginExecute(client.ctx, client.target, preQueries, postBeginQueries, query, bindvars, &querypb.ExecuteOptions{IncludedFields: querypb.ExecuteOptions_ALL})
|
||||
client.transactionID = transactionID
|
||||
client.reservedID = reservedID
|
||||
if err != nil {
|
||||
|
|
|
@ -91,7 +91,7 @@ func TestReserveBeginExecuteRelease(t *testing.T) {
|
|||
|
||||
insQuery := "insert into vitess_test (intval, floatval, charval, binval) values (4, null, null, null)"
|
||||
selQuery := "select intval from vitess_test where intval = 4"
|
||||
_, err := client.ReserveBeginExecute(insQuery, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(insQuery, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
qr, err := client.Execute(selQuery, nil)
|
||||
|
@ -112,10 +112,10 @@ func TestMultipleReserveBeginHaveDifferentConnection(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
qrc1_1, err := client1.ReserveBeginExecute(query, nil, nil)
|
||||
qrc1_1, err := client1.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client1.Release()
|
||||
qrc2_1, err := client2.ReserveBeginExecute(query, nil, nil)
|
||||
qrc2_1, err := client2.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client2.Release()
|
||||
require.NotEqual(t, qrc1_1.Rows, qrc2_1.Rows)
|
||||
|
@ -133,7 +133,7 @@ func TestCommitOnReserveBeginConn(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client.Release()
|
||||
|
||||
|
@ -153,7 +153,7 @@ func TestRollbackOnReserveBeginConn(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client.Release()
|
||||
|
||||
|
@ -173,7 +173,7 @@ func TestReserveBeginRollbackAndBeginCommitAgain(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
qr1, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client.Release()
|
||||
|
||||
|
@ -207,7 +207,7 @@ func TestReserveBeginCommitFailToReuseTxID(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client.Release()
|
||||
|
||||
|
@ -229,7 +229,7 @@ func TestReserveBeginRollbackFailToReuseTxID(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer client.Release()
|
||||
|
||||
|
@ -251,7 +251,7 @@ func TestReserveBeginCommitFailToReuseOldReservedID(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
oldRID := client.ReservedID()
|
||||
|
@ -275,7 +275,7 @@ func TestReserveBeginRollbackFailToReuseOldReservedID(t *testing.T) {
|
|||
|
||||
query := "select connection_id()"
|
||||
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil)
|
||||
_, err := client.ReserveBeginExecute(query, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
oldRID := client.ReservedID()
|
||||
|
@ -487,7 +487,7 @@ func TestReserveAndExecuteWithFailingQueryAndReserveConnectionRemainsOpen(t *tes
|
|||
func TestReserveBeginExecuteWithFailingQueryAndReserveConnAndTxRemainsOpen(t *testing.T) {
|
||||
client := framework.NewClient()
|
||||
|
||||
_, err := client.ReserveBeginExecute("select foo", nil, nil)
|
||||
_, err := client.ReserveBeginExecute("select foo", nil, nil, nil)
|
||||
require.Error(t, err)
|
||||
|
||||
// Save the connection id to check in the end that everything got executed on same connection.
|
||||
|
@ -582,6 +582,71 @@ func TestReserveExecuteWithPreQueriesAndCheckConnectionState(t *testing.T) {
|
|||
assert.Equal(t, `[[VARCHAR("Warning") UINT32(1411) VARCHAR("Incorrect datetime value: '00/00/0000' for function str_to_date")]]`, fmt.Sprintf("%v", qr2.Rows))
|
||||
}
|
||||
|
||||
func TestReserveExecuteWithPreQueriesAndSavepoint(t *testing.T) {
|
||||
client := framework.NewClient()
|
||||
defer client.Release()
|
||||
|
||||
insQuery := "insert into vitess_test (intval) values (5)"
|
||||
selQuery := "select intval from vitess_test where intval = 5"
|
||||
preQueries := []string{
|
||||
"set sql_mode = ''",
|
||||
}
|
||||
|
||||
postBeginQueries1 := []string{
|
||||
"savepoint a",
|
||||
}
|
||||
// savepoint there after begin.
|
||||
_, err := client.ReserveBeginExecute(insQuery, preQueries, postBeginQueries1, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
qr, err := client.Execute(selQuery, nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `[[INT32(5)]]`, fmt.Sprintf("%v", qr.Rows))
|
||||
|
||||
_, err = client.Execute("rollback to a", nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
qr, err = client.Execute(selQuery, nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `[]`, fmt.Sprintf("%v", qr.Rows))
|
||||
|
||||
err = client.Release()
|
||||
require.NoError(t, err)
|
||||
|
||||
postBeginQueries2 := []string{
|
||||
"savepoint a",
|
||||
"release savepoint a",
|
||||
"savepoint b",
|
||||
}
|
||||
// no savepoint after begin
|
||||
_, err = client.ReserveBeginExecute(insQuery, preQueries, postBeginQueries2, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
qr, err = client.Execute(selQuery, nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `[[INT32(5)]]`, fmt.Sprintf("%v", qr.Rows))
|
||||
|
||||
// no savepoint a
|
||||
_, err = client.Execute("rollback to a", nil)
|
||||
require.Error(t, err)
|
||||
|
||||
// no savepoint a.
|
||||
_, err = client.Execute("release a", nil)
|
||||
require.Error(t, err)
|
||||
|
||||
// record still exists.
|
||||
qr, err = client.Execute(selQuery, nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `[[INT32(5)]]`, fmt.Sprintf("%v", qr.Rows))
|
||||
|
||||
_, err = client.Execute("rollback to b", nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
qr, err = client.Execute(selQuery, nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `[]`, fmt.Sprintf("%v", qr.Rows))
|
||||
}
|
||||
|
||||
func TestReserveBeginExecuteWithPreQueriesAndCheckConnectionState(t *testing.T) {
|
||||
rcClient := framework.NewClient()
|
||||
rucClient := framework.NewClient()
|
||||
|
@ -597,11 +662,11 @@ func TestReserveBeginExecuteWithPreQueriesAndCheckConnectionState(t *testing.T)
|
|||
"set session transaction isolation level read uncommitted",
|
||||
}
|
||||
|
||||
_, err := rcClient.ReserveBeginExecute(insRcQuery, rcQuery, nil)
|
||||
_, err := rcClient.ReserveBeginExecute(insRcQuery, rcQuery, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer rcClient.Release()
|
||||
|
||||
_, err = rucClient.ReserveBeginExecute(insRucQuery, rucQuery, nil)
|
||||
_, err = rucClient.ReserveBeginExecute(insRucQuery, rucQuery, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer rucClient.Release()
|
||||
|
||||
|
@ -671,7 +736,7 @@ func TestReserveBeginExecuteWithFailingPreQueriesAndCheckConnectionState(t *test
|
|||
"set @@no_sys_var = 42",
|
||||
}
|
||||
|
||||
_, err := client.ReserveBeginExecute(selQuery, preQueries, nil)
|
||||
_, err := client.ReserveBeginExecute(selQuery, preQueries, nil, nil)
|
||||
require.Error(t, err)
|
||||
|
||||
err = client.Commit()
|
||||
|
@ -709,7 +774,7 @@ func TestReserveBeginExecuteWithCommitFailureAndCheckConnectionAndDBState(t *tes
|
|||
insQuery := "insert into vitess_test (intval, floatval, charval, binval) values (4, null, null, null)"
|
||||
selQuery := "select intval from vitess_test where intval = 4"
|
||||
|
||||
connQr, err := client.ReserveBeginExecute(connQuery, nil, nil)
|
||||
connQr, err := client.ReserveBeginExecute(connQuery, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = client.Execute(insQuery, nil)
|
||||
|
@ -739,7 +804,7 @@ func TestReserveBeginExecuteWithRollbackFailureAndCheckConnectionAndDBState(t *t
|
|||
insQuery := "insert into vitess_test (intval, floatval, charval, binval) values (4, null, null, null)"
|
||||
selQuery := "select intval from vitess_test where intval = 4"
|
||||
|
||||
connQr, err := client.ReserveBeginExecute(connQuery, nil, nil)
|
||||
connQr, err := client.ReserveBeginExecute(connQuery, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = client.Execute(insQuery, nil)
|
||||
|
@ -835,7 +900,7 @@ func TestReserveExecuteDDLWithTx(t *testing.T) {
|
|||
dropQuery := "drop table vitess_test_ddl"
|
||||
descQuery := "describe vitess_test_ddl"
|
||||
|
||||
qr1, err := client.ReserveBeginExecute(connQuery, nil, nil)
|
||||
qr1, err := client.ReserveBeginExecute(connQuery, nil, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = client.Execute(createQuery, nil)
|
||||
|
|
|
@ -410,7 +410,7 @@ func (q *query) ReserveBeginExecute(ctx context.Context, request *querypb.Reserv
|
|||
request.EffectiveCallerId,
|
||||
request.ImmediateCallerId,
|
||||
)
|
||||
result, transactionID, reservedID, alias, err := q.server.ReserveBeginExecute(ctx, request.Target, request.PreQueries, request.Query.Sql, request.Query.BindVariables, request.Options)
|
||||
result, transactionID, reservedID, alias, err := q.server.ReserveBeginExecute(ctx, request.Target, request.PreQueries, request.PostBeginQueries, request.Query.Sql, request.Query.BindVariables, request.Options)
|
||||
if err != nil {
|
||||
// if we have a valid reservedID, return the error in-band
|
||||
if reservedID != 0 {
|
||||
|
|
|
@ -736,7 +736,7 @@ func (conn *gRPCQueryClient) HandlePanic(err *error) {
|
|||
}
|
||||
|
||||
//ReserveBeginExecute implements the queryservice interface
|
||||
func (conn *gRPCQueryClient) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (conn *gRPCQueryClient) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
conn.mu.RLock()
|
||||
defer conn.mu.RUnlock()
|
||||
if conn.cc == nil {
|
||||
|
@ -749,6 +749,7 @@ func (conn *gRPCQueryClient) ReserveBeginExecute(ctx context.Context, target *qu
|
|||
ImmediateCallerId: callerid.ImmediateCallerIDFromContext(ctx),
|
||||
Options: options,
|
||||
PreQueries: preQueries,
|
||||
PostBeginQueries: postBeginQueries,
|
||||
Query: &querypb.BoundQuery{
|
||||
Sql: sql,
|
||||
BindVariables: bindVariables,
|
||||
|
|
|
@ -119,7 +119,7 @@ func (b *BenchmarkService) HandlePanic(err *error) {
|
|||
}
|
||||
}
|
||||
|
||||
func (b *BenchmarkService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (b *BenchmarkService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
panic("should not be called")
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ type QueryService interface {
|
|||
// HandlePanic will be called if any of the functions panic.
|
||||
HandlePanic(err *error)
|
||||
|
||||
ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error)
|
||||
ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error)
|
||||
|
||||
ReserveExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, transactionID int64, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, *topodatapb.TabletAlias, error)
|
||||
|
||||
|
|
|
@ -282,13 +282,13 @@ func (ws *wrappedService) HandlePanic(err *error) {
|
|||
// No-op. Wrappers must call HandlePanic.
|
||||
}
|
||||
|
||||
func (ws *wrappedService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (ws *wrappedService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
var res *sqltypes.Result
|
||||
var transactionID, reservedID int64
|
||||
var alias *topodatapb.TabletAlias
|
||||
err := ws.wrapper(ctx, target, ws.impl, "ReserveBeginExecute", false, func(ctx context.Context, target *querypb.Target, conn QueryService) (bool, error) {
|
||||
var err error
|
||||
res, transactionID, reservedID, alias, err = conn.ReserveBeginExecute(ctx, target, preQueries, sql, bindVariables, options)
|
||||
res, transactionID, reservedID, alias, err = conn.ReserveBeginExecute(ctx, target, preQueries, postBeginQueries, sql, bindVariables, options)
|
||||
return canRetry(ctx, err), err
|
||||
})
|
||||
|
||||
|
|
|
@ -513,9 +513,9 @@ func (sbc *SandboxConn) HandlePanic(err *error) {
|
|||
}
|
||||
|
||||
//ReserveBeginExecute implements the QueryService interface
|
||||
func (sbc *SandboxConn) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (sbc *SandboxConn) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
reservedID := sbc.reserve(ctx, target, preQueries, bindVariables, 0, options)
|
||||
result, transactionID, alias, err := sbc.BeginExecute(ctx, target, nil, sql, bindVariables, reservedID, options)
|
||||
result, transactionID, alias, err := sbc.BeginExecute(ctx, target, postBeginQueries, sql, bindVariables, reservedID, options)
|
||||
if transactionID != 0 {
|
||||
sbc.setTxReservedID(transactionID, reservedID)
|
||||
}
|
||||
|
|
|
@ -729,7 +729,7 @@ func (f *FakeQueryService) QueryServiceByAlias(_ *topodatapb.TabletAlias, _ *que
|
|||
}
|
||||
|
||||
// ReserveBeginExecute satisfies the Gateway interface
|
||||
func (f *FakeQueryService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (f *FakeQueryService) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
|
|
|
@ -1136,7 +1136,7 @@ func (tsv *TabletServer) VStreamResults(ctx context.Context, target *querypb.Tar
|
|||
}
|
||||
|
||||
//ReserveBeginExecute implements the QueryService interface
|
||||
func (tsv *TabletServer) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
func (tsv *TabletServer) ReserveBeginExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions) (*sqltypes.Result, int64, int64, *topodatapb.TabletAlias, error) {
|
||||
|
||||
var connID int64
|
||||
var err error
|
||||
|
@ -1147,7 +1147,7 @@ func (tsv *TabletServer) ReserveBeginExecute(ctx context.Context, target *queryp
|
|||
target, options, false, /* allowOnShutdown */
|
||||
func(ctx context.Context, logStats *tabletenv.LogStats) error {
|
||||
defer tsv.stats.QueryTimings.Record("RESERVE", time.Now())
|
||||
connID, err = tsv.te.ReserveBegin(ctx, options, preQueries)
|
||||
connID, err = tsv.te.ReserveBegin(ctx, options, preQueries, postBeginQueries)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -622,7 +622,7 @@ func TestMakeSureToCloseDbConnWhenBeginQueryFails(t *testing.T) {
|
|||
options := &querypb.ExecuteOptions{}
|
||||
|
||||
// run a query with a non-existent reserved id
|
||||
_, _, _, _, err := tsv.ReserveBeginExecute(ctx, &target, []string{}, "select 42", nil, options)
|
||||
_, _, _, _, err := tsv.ReserveBeginExecute(ctx, &target, []string{}, nil, "select 42", nil, options)
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
|
@ -636,7 +636,7 @@ func TestTabletServerReserveAndBeginCommit(t *testing.T) {
|
|||
options := &querypb.ExecuteOptions{}
|
||||
|
||||
// reserve a connection and a transaction
|
||||
_, txID, rID, _, err := tsv.ReserveBeginExecute(ctx, &target, nil, "select 42", nil, options)
|
||||
_, txID, rID, _, err := tsv.ReserveBeginExecute(ctx, &target, nil, nil, "select 42", nil, options)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
// fallback so the test finishes quickly
|
||||
|
@ -2048,7 +2048,7 @@ func TestReserveBeginExecute(t *testing.T) {
|
|||
defer db.Close()
|
||||
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
|
||||
|
||||
_, transactionID, reservedID, _, err := tsv.ReserveBeginExecute(ctx, &target, []string{"select 43"}, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
_, transactionID, reservedID, _, err := tsv.ReserveBeginExecute(ctx, &target, []string{"select 43"}, nil, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Greater(t, transactionID, int64(0), "transactionID")
|
||||
|
@ -2153,7 +2153,7 @@ func TestRelease(t *testing.T) {
|
|||
|
||||
switch {
|
||||
case test.begin && test.reserve:
|
||||
_, transactionID, reservedID, _, err = tsv.ReserveBeginExecute(ctx, &target, []string{"select 1212"}, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
_, transactionID, reservedID, _, err = tsv.ReserveBeginExecute(ctx, &target, []string{"select 1212"}, nil, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
require.NotEqual(t, int64(0), transactionID)
|
||||
require.NotEqual(t, int64(0), reservedID)
|
||||
case test.begin:
|
||||
|
@ -2191,7 +2191,7 @@ func TestReserveStats(t *testing.T) {
|
|||
ctx := callerid.NewContext(context.Background(), nil, callerID)
|
||||
|
||||
// Starts reserved connection and transaction
|
||||
_, rbeTxID, rbeRID, _, err := tsv.ReserveBeginExecute(ctx, &target, nil, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
_, rbeTxID, rbeRID, _, err := tsv.ReserveBeginExecute(ctx, &target, nil, nil, "select 42", nil, &querypb.ExecuteOptions{})
|
||||
require.NoError(t, err)
|
||||
assert.EqualValues(t, 1, tsv.te.txPool.env.Stats().UserActiveReservedCount.Counts()["test"])
|
||||
|
||||
|
@ -2477,7 +2477,7 @@ func TestDatabaseNameReplaceByKeyspaceNameReserveBeginExecuteMethod(t *testing.T
|
|||
target := tsv.sm.target
|
||||
|
||||
// Test for ReserveBeginExecute
|
||||
res, transactionID, reservedID, _, err := tsv.ReserveBeginExecute(ctx, target, nil, executeSQL, nil, &querypb.ExecuteOptions{IncludedFields: querypb.ExecuteOptions_ALL})
|
||||
res, transactionID, reservedID, _, err := tsv.ReserveBeginExecute(ctx, target, nil, nil, executeSQL, nil, &querypb.ExecuteOptions{IncludedFields: querypb.ExecuteOptions_ALL})
|
||||
require.NoError(t, err)
|
||||
for _, field := range res.Fields {
|
||||
require.Equal(t, "keyspaceName", field.Database)
|
||||
|
|
|
@ -491,7 +491,7 @@ func (te *TxEngine) stopWatchdog() {
|
|||
}
|
||||
|
||||
// ReserveBegin creates a reserved connection, and in it opens a transaction
|
||||
func (te *TxEngine) ReserveBegin(ctx context.Context, options *querypb.ExecuteOptions, preQueries []string) (int64, error) {
|
||||
func (te *TxEngine) ReserveBegin(ctx context.Context, options *querypb.ExecuteOptions, preQueries []string, postBeginQueries []string) (int64, error) {
|
||||
span, ctx := trace.NewSpan(ctx, "TxEngine.ReserveBegin")
|
||||
defer span.Finish()
|
||||
err := te.isTxPoolAvailable(te.beginRequests.Add)
|
||||
|
@ -505,7 +505,7 @@ func (te *TxEngine) ReserveBegin(ctx context.Context, options *querypb.ExecuteOp
|
|||
return 0, err
|
||||
}
|
||||
defer conn.UnlockUpdateTime()
|
||||
_, err = te.txPool.begin(ctx, options, te.state == AcceptingReadOnly, conn, nil)
|
||||
_, err = te.txPool.begin(ctx, options, te.state == AcceptingReadOnly, conn, postBeginQueries)
|
||||
if err != nil {
|
||||
conn.Close()
|
||||
conn.Release(tx.ConnInitFail)
|
||||
|
|
|
@ -135,7 +135,7 @@ func TestTxEngineClose(t *testing.T) {
|
|||
te.AcceptReadWrite()
|
||||
_, err = te.Reserve(ctx, &querypb.ExecuteOptions{}, 0, nil)
|
||||
require.NoError(t, err)
|
||||
_, err = te.ReserveBegin(ctx, &querypb.ExecuteOptions{}, nil)
|
||||
_, err = te.ReserveBegin(ctx, &querypb.ExecuteOptions{}, nil, nil)
|
||||
require.NoError(t, err)
|
||||
start = time.Now()
|
||||
te.Close()
|
||||
|
@ -158,7 +158,7 @@ func TestTxEngineBegin(t *testing.T) {
|
|||
return tx, err
|
||||
},
|
||||
func() (int64, error) {
|
||||
return te.ReserveBegin(ctx, &querypb.ExecuteOptions{}, nil)
|
||||
return te.ReserveBegin(ctx, &querypb.ExecuteOptions{}, nil, nil)
|
||||
},
|
||||
} {
|
||||
te.AcceptReadOnly()
|
||||
|
@ -197,7 +197,7 @@ func TestTxEngineRenewFails(t *testing.T) {
|
|||
te := NewTxEngine(tabletenv.NewEnv(config, "TabletServerTest"))
|
||||
te.AcceptReadOnly()
|
||||
options := &querypb.ExecuteOptions{}
|
||||
connID, err := te.ReserveBegin(ctx, options, nil)
|
||||
connID, err := te.ReserveBegin(ctx, options, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
conn, err := te.txPool.GetAndLock(connID, "for test")
|
||||
|
@ -568,7 +568,7 @@ func TestTxEngineFailReserve(t *testing.T) {
|
|||
_, err := te.Reserve(ctx, options, 0, nil)
|
||||
assert.EqualError(t, err, "tx engine can't accept new connections in state NotServing")
|
||||
|
||||
_, err = te.ReserveBegin(ctx, options, nil)
|
||||
_, err = te.ReserveBegin(ctx, options, nil, nil)
|
||||
assert.EqualError(t, err, "tx engine can't accept new connections in state NotServing")
|
||||
|
||||
te.AcceptReadOnly()
|
||||
|
@ -577,7 +577,7 @@ func TestTxEngineFailReserve(t *testing.T) {
|
|||
_, err = te.Reserve(ctx, options, 0, []string{"dummy_query"})
|
||||
assert.EqualError(t, err, "unknown error: failed executing dummy_query (errno 1105) (sqlstate HY000) during query: dummy_query")
|
||||
|
||||
_, err = te.ReserveBegin(ctx, options, []string{"dummy_query"})
|
||||
_, err = te.ReserveBegin(ctx, options, []string{"dummy_query"}, nil)
|
||||
assert.EqualError(t, err, "unknown error: failed executing dummy_query (errno 1105) (sqlstate HY000) during query: dummy_query")
|
||||
|
||||
nonExistingID := int64(42)
|
||||
|
|
|
@ -721,6 +721,7 @@ message ReserveBeginExecuteRequest {
|
|||
BoundQuery query = 4;
|
||||
ExecuteOptions options = 5;
|
||||
repeated string pre_queries = 6;
|
||||
repeated string post_begin_queries = 7;
|
||||
}
|
||||
|
||||
// ReserveBeginExecuteResponse is the returned value from ReserveBeginExecute
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -22929,6 +22929,9 @@ export namespace query {
|
|||
|
||||
/** ReserveBeginExecuteRequest pre_queries */
|
||||
pre_queries?: (string[]|null);
|
||||
|
||||
/** ReserveBeginExecuteRequest post_begin_queries */
|
||||
post_begin_queries?: (string[]|null);
|
||||
}
|
||||
|
||||
/** Represents a ReserveBeginExecuteRequest. */
|
||||
|
@ -22958,6 +22961,9 @@ export namespace query {
|
|||
/** ReserveBeginExecuteRequest pre_queries. */
|
||||
public pre_queries: string[];
|
||||
|
||||
/** ReserveBeginExecuteRequest post_begin_queries. */
|
||||
public post_begin_queries: string[];
|
||||
|
||||
/**
|
||||
* Creates a new ReserveBeginExecuteRequest instance using the specified properties.
|
||||
* @param [properties] Properties to set
|
||||
|
|
|
@ -53781,6 +53781,7 @@ $root.query = (function() {
|
|||
* @property {query.IBoundQuery|null} [query] ReserveBeginExecuteRequest query
|
||||
* @property {query.IExecuteOptions|null} [options] ReserveBeginExecuteRequest options
|
||||
* @property {Array.<string>|null} [pre_queries] ReserveBeginExecuteRequest pre_queries
|
||||
* @property {Array.<string>|null} [post_begin_queries] ReserveBeginExecuteRequest post_begin_queries
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -53793,6 +53794,7 @@ $root.query = (function() {
|
|||
*/
|
||||
function ReserveBeginExecuteRequest(properties) {
|
||||
this.pre_queries = [];
|
||||
this.post_begin_queries = [];
|
||||
if (properties)
|
||||
for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
|
||||
if (properties[keys[i]] != null)
|
||||
|
@ -53847,6 +53849,14 @@ $root.query = (function() {
|
|||
*/
|
||||
ReserveBeginExecuteRequest.prototype.pre_queries = $util.emptyArray;
|
||||
|
||||
/**
|
||||
* ReserveBeginExecuteRequest post_begin_queries.
|
||||
* @member {Array.<string>} post_begin_queries
|
||||
* @memberof query.ReserveBeginExecuteRequest
|
||||
* @instance
|
||||
*/
|
||||
ReserveBeginExecuteRequest.prototype.post_begin_queries = $util.emptyArray;
|
||||
|
||||
/**
|
||||
* Creates a new ReserveBeginExecuteRequest instance using the specified properties.
|
||||
* @function create
|
||||
|
@ -53884,6 +53894,9 @@ $root.query = (function() {
|
|||
if (message.pre_queries != null && message.pre_queries.length)
|
||||
for (var i = 0; i < message.pre_queries.length; ++i)
|
||||
writer.uint32(/* id 6, wireType 2 =*/50).string(message.pre_queries[i]);
|
||||
if (message.post_begin_queries != null && message.post_begin_queries.length)
|
||||
for (var i = 0; i < message.post_begin_queries.length; ++i)
|
||||
writer.uint32(/* id 7, wireType 2 =*/58).string(message.post_begin_queries[i]);
|
||||
return writer;
|
||||
};
|
||||
|
||||
|
@ -53938,6 +53951,11 @@ $root.query = (function() {
|
|||
message.pre_queries = [];
|
||||
message.pre_queries.push(reader.string());
|
||||
break;
|
||||
case 7:
|
||||
if (!(message.post_begin_queries && message.post_begin_queries.length))
|
||||
message.post_begin_queries = [];
|
||||
message.post_begin_queries.push(reader.string());
|
||||
break;
|
||||
default:
|
||||
reader.skipType(tag & 7);
|
||||
break;
|
||||
|
@ -54005,6 +54023,13 @@ $root.query = (function() {
|
|||
if (!$util.isString(message.pre_queries[i]))
|
||||
return "pre_queries: string[] expected";
|
||||
}
|
||||
if (message.post_begin_queries != null && message.hasOwnProperty("post_begin_queries")) {
|
||||
if (!Array.isArray(message.post_begin_queries))
|
||||
return "post_begin_queries: array expected";
|
||||
for (var i = 0; i < message.post_begin_queries.length; ++i)
|
||||
if (!$util.isString(message.post_begin_queries[i]))
|
||||
return "post_begin_queries: string[] expected";
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
|
@ -54052,6 +54077,13 @@ $root.query = (function() {
|
|||
for (var i = 0; i < object.pre_queries.length; ++i)
|
||||
message.pre_queries[i] = String(object.pre_queries[i]);
|
||||
}
|
||||
if (object.post_begin_queries) {
|
||||
if (!Array.isArray(object.post_begin_queries))
|
||||
throw TypeError(".query.ReserveBeginExecuteRequest.post_begin_queries: array expected");
|
||||
message.post_begin_queries = [];
|
||||
for (var i = 0; i < object.post_begin_queries.length; ++i)
|
||||
message.post_begin_queries[i] = String(object.post_begin_queries[i]);
|
||||
}
|
||||
return message;
|
||||
};
|
||||
|
||||
|
@ -54068,8 +54100,10 @@ $root.query = (function() {
|
|||
if (!options)
|
||||
options = {};
|
||||
var object = {};
|
||||
if (options.arrays || options.defaults)
|
||||
if (options.arrays || options.defaults) {
|
||||
object.pre_queries = [];
|
||||
object.post_begin_queries = [];
|
||||
}
|
||||
if (options.defaults) {
|
||||
object.effective_caller_id = null;
|
||||
object.immediate_caller_id = null;
|
||||
|
@ -54092,6 +54126,11 @@ $root.query = (function() {
|
|||
for (var j = 0; j < message.pre_queries.length; ++j)
|
||||
object.pre_queries[j] = message.pre_queries[j];
|
||||
}
|
||||
if (message.post_begin_queries && message.post_begin_queries.length) {
|
||||
object.post_begin_queries = [];
|
||||
for (var j = 0; j < message.post_begin_queries.length; ++j)
|
||||
object.post_begin_queries[j] = message.post_begin_queries[j];
|
||||
}
|
||||
return object;
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче