func (conn *vtgateConn) ExecuteBatchShards(ctx context.Context, queries []proto.BoundShardQuery, tabletType pbt.TabletType, asTransaction bool, session interface{}) ([]mproto.QueryResult, interface{}, error) { var s *pb.Session if session != nil { s = session.(*pb.Session) } qs, err := proto.BoundShardQueriesToProto(queries) if err != nil { return nil, session, err } request := &pb.ExecuteBatchShardsRequest{ CallerId: callerid.EffectiveCallerIDFromContext(ctx), Session: s, Queries: qs, TabletType: tabletType, AsTransaction: asTransaction, } response, err := conn.c.ExecuteBatchShards(ctx, request) if err != nil { return nil, session, vterrors.FromGRPCError(err) } if response.Error != nil { return nil, response.Session, vterrors.FromVtRPCError(response.Error) } return mproto.Proto3ToQueryResults(response.Results), response.Session, nil }
func (conn *vtgateConn) ExecuteBatchShard(ctx context.Context, queries []proto.BoundShardQuery, tabletType topo.TabletType, asTransaction bool, session interface{}) ([]mproto.QueryResult, interface{}, error) { var s *pb.Session if session != nil { s = session.(*pb.Session) } request := &pb.ExecuteBatchShardsRequest{ Session: s, Queries: proto.BoundShardQueriesToProto(queries), TabletType: topo.TabletTypeToProto(tabletType), AsTransaction: asTransaction, } response, err := conn.c.ExecuteBatchShards(ctx, request) if err != nil { return nil, session, err } if response.Error != nil { return nil, response.Session, vterrors.FromVtRPCError(response.Error) } return mproto.Proto3ToQueryResults(response.Results), response.Session, nil }
func (conn *vtgateConn) ExecuteBatchShards(ctx context.Context, queries []proto.BoundShardQuery, tabletType topopb.TabletType, asTransaction bool, session interface{}) ([]mproto.QueryResult, interface{}, error) { var s *pb.Session if session != nil { s = session.(*pb.Session) } request := &pb.ExecuteBatchShardsRequest{ CallerId: callerid.EffectiveCallerIDFromContext(ctx), Queries: proto.BoundShardQueriesToProto(queries), TabletType: tabletType, AsTransaction: asTransaction, Session: s, } response := &pb.ExecuteBatchShardsResponse{} if err := conn.rpcConn.Call(ctx, "VTGateP3.ExecuteBatchShards", request, response); err != nil { return nil, session, err } if err := vterrors.FromVtRPCError(response.Error); err != nil { return nil, response.Session, err } return mproto.Proto3ToQueryResults(response.Results), response.Session, nil }
// ExecuteBatchShard is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) ExecuteBatchShard(ctx context.Context, request *proto.BatchQueryShard, reply *proto.QueryResultList) (err error) { defer vtg.server.HandlePanic(&err) ctx, cancel := context.WithDeadline(ctx, time.Now().Add(*rpcTimeout)) defer cancel() ctx = callerid.NewContext(ctx, callerid.GoRPCEffectiveCallerID(request.CallerID), callerid.NewImmediateCallerID("gorpc client")) sessionFromRPC(request.Session) qs, err := proto.BoundShardQueriesToProto(request.Queries) if err != nil { return err } vtgErr := vtg.server.ExecuteBatchShards(ctx, qs, request.TabletType, request.AsTransaction, request.Session, reply) reply.Session = sessionToRPC(reply.Session) vtgate.AddVtGateError(vtgErr, &reply.Err) return nil }