本文整理汇总了Golang中github.com/youtube/vitess/go/vt/vtgate/proto.BatchQueryShard.Session方法的典型用法代码示例。如果您正苦于以下问题:Golang BatchQueryShard.Session方法的具体用法?Golang BatchQueryShard.Session怎么用?Golang BatchQueryShard.Session使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/youtube/vitess/go/vt/vtgate/proto.BatchQueryShard
的用法示例。
在下文中一共展示了BatchQueryShard.Session方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestVTGateExecuteBatchShard
func TestVTGateExecuteBatchShard(t *testing.T) {
// TODO(sougou): Fix test.
t.Skip()
s := createSandbox("TestVTGateExecuteBatchShard")
s.MapTestConn("-20", &sandboxConn{})
s.MapTestConn("20-40", &sandboxConn{})
q := proto.BatchQueryShard{
Queries: []proto.BoundShardQuery{{
Sql: "query",
BindVariables: nil,
Keyspace: "TestVTGateExecuteBatchShard",
Shards: []string{"-20", "20-40"},
}, {
Sql: "query",
BindVariables: nil,
Keyspace: "TestVTGateExecuteBatchShard",
Shards: []string{"-20", "20-40"},
}},
}
qrl := new(proto.QueryResultList)
err := rpcVTGate.ExecuteBatchShard(context.Background(), &q, qrl)
if err != nil {
t.Errorf("want nil, got %v", err)
}
if len(qrl.List) != 2 {
t.Errorf("want 2, got %v", len(qrl.List))
}
if qrl.List[0].RowsAffected != 2 {
t.Errorf("want 2, got %v", qrl.List[0].RowsAffected)
}
if qrl.Session != nil {
t.Errorf("want nil, got %+v\n", qrl.Session)
}
q.Session = new(proto.Session)
rpcVTGate.Begin(context.Background(), q.Session)
rpcVTGate.ExecuteBatchShard(context.Background(), &q, qrl)
if len(q.Session.ShardSessions) != 2 {
t.Errorf("want 2, got %d", len(q.Session.ShardSessions))
}
}
示例2: TestVTGateExecuteBatchShard
func TestVTGateExecuteBatchShard(t *testing.T) {
s := createSandbox("TestVTGateExecuteBatchShard")
s.MapTestConn("-20", &sandboxConn{})
s.MapTestConn("20-40", &sandboxConn{})
q := proto.BatchQueryShard{
Queries: []tproto.BoundQuery{{
"query",
nil,
}, {
"query",
nil,
}},
Keyspace: "TestVTGateExecuteBatchShard",
Shards: []string{"-20", "20-40"},
}
qrl := new(proto.QueryResultList)
err := RpcVTGate.ExecuteBatchShard(nil, &q, qrl)
if err != nil {
t.Errorf("want nil, got %v", err)
}
if len(qrl.List) != 2 {
t.Errorf("want 2, got %v", len(qrl.List))
}
if qrl.List[0].RowsAffected != 2 {
t.Errorf("want 2, got %v", qrl.List[0].RowsAffected)
}
if qrl.Session != nil {
t.Errorf("want nil, got %+v\n", qrl.Session)
}
q.Session = new(proto.Session)
RpcVTGate.Begin(nil, q.Session)
err = RpcVTGate.ExecuteBatchShard(nil, &q, qrl)
if len(q.Session.ShardSessions) != 2 {
t.Errorf("want 2, got %d", len(q.Session.ShardSessions))
}
}
示例3: TestVTGateExecuteBatchShard
func TestVTGateExecuteBatchShard(t *testing.T) {
resetSandbox()
testConns[0] = &sandboxConn{}
testConns[1] = &sandboxConn{}
q := proto.BatchQueryShard{
Queries: []tproto.BoundQuery{{
"query",
nil,
}, {
"query",
nil,
}},
Shards: []string{"0", "1"},
}
qrl := new(proto.QueryResultList)
err := RpcVTGate.ExecuteBatchShard(nil, &q, qrl)
if err != nil {
t.Errorf("want nil, got %v", err)
}
if len(qrl.List) != 2 {
t.Errorf("want 2, got %v", len(qrl.List))
}
if qrl.List[0].RowsAffected != 2 {
t.Errorf("want 2, got %v", qrl.List[0].RowsAffected)
}
if qrl.Session != nil {
t.Errorf("want nil, got %#v\n", qrl.Session)
}
q.Session = new(proto.Session)
RpcVTGate.Begin(nil, nil, q.Session)
err = RpcVTGate.ExecuteBatchShard(nil, &q, qrl)
if len(q.Session.ShardSessions) != 2 {
t.Errorf("want 2, got %d", len(q.Session.ShardSessions))
}
}