本文整理汇总了Golang中github.com/youtube/vitess/go/vt/vtgate/proto.BatchQueryShard类的典型用法代码示例。如果您正苦于以下问题:Golang BatchQueryShard类的具体用法?Golang BatchQueryShard怎么用?Golang BatchQueryShard使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BatchQueryShard类的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))
}
}