// StreamExecuteKeyRanges2 is the RPC version of // vtgateservice.VTGateService method func (vtg *VTGateP3) StreamExecuteKeyRanges2(ctx context.Context, request *pb.StreamExecuteKeyRangesRequest, sendReply func(interface{}) error) (err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) vtgErr := vtg.server.StreamExecuteKeyRanges(ctx, string(request.Query.Sql), tproto.Proto3ToBindVariables(request.Query.BindVariables), request.Keyspace, request.KeyRanges, request.TabletType, func(reply *proto.QueryResult) error { return sendReply(&pb.StreamExecuteKeyRangesResponse{ Error: vtgate.VtGateErrorToVtRPCError(nil, reply.Error), Result: mproto.QueryResultToProto3(reply.Result), }) }) if vtgErr == nil { return nil } if *vtgate.RPCErrorOnlyInReply { // If there was an app error, send a QueryResult back with it. // Sending back errors this way is not backwards compatible. If a (new) server sends an additional // QueryResult with an error, and the (old) client doesn't know how to read it, it will cause // problems where the client will get out of sync with the number of QueryResults sent. // That's why this the error is only sent this way when the --rpc_errors_only_in_reply flag is set // (signalling that all clients are able to handle new-style errors). return sendReply(&pb.StreamExecuteKeyRangesResponse{ Error: vtgate.VtGateErrorToVtRPCError(vtgErr, ""), }) } return vtgErr }
// ExecuteKeyspaceIds is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) ExecuteKeyspaceIds(ctx context.Context, request *pb.ExecuteKeyspaceIdsRequest) (response *pb.ExecuteKeyspaceIdsResponse, err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(callinfo.GRPCCallInfo(ctx), request.CallerId, callerid.NewImmediateCallerID("grpc client")) reply := new(proto.QueryResult) executeErr := vtg.server.ExecuteKeyspaceIds(ctx, string(request.Query.Sql), tproto.Proto3ToBindVariables(request.Query.BindVariables), request.Keyspace, key.ProtoToKeyspaceIds(request.KeyspaceIds), request.TabletType, proto.ProtoToSession(request.Session), request.NotInTransaction, reply) response = &pb.ExecuteKeyspaceIdsResponse{ Error: vtgate.VtGateErrorToVtRPCError(executeErr, reply.Error), } if executeErr == nil { response.Result = mproto.QueryResultToProto3(reply.Result) response.Session = proto.SessionToProto(reply.Session) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, executeErr }
// ExecuteBatchShards is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) ExecuteBatchShards(ctx context.Context, request *pb.ExecuteBatchShardsRequest) (response *pb.ExecuteBatchShardsResponse, err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(callinfo.GRPCCallInfo(ctx), request.CallerId, callerid.NewImmediateCallerID("grpc client")) reply := new(proto.QueryResultList) executeErr := vtg.server.ExecuteBatchShards(ctx, proto.ProtoToBoundShardQueries(request.Queries), request.TabletType, request.AsTransaction, proto.ProtoToSession(request.Session), reply) response = &pb.ExecuteBatchShardsResponse{ Error: vtgate.VtGateErrorToVtRPCError(executeErr, reply.Error), } if executeErr == nil { response.Results = tproto.QueryResultListToProto3(reply.List) response.Session = proto.SessionToProto(reply.Session) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, executeErr }
// ExecuteKeyspaceIds is the RPC version of vtgateservice.VTGateService method func (vtg *VTGateP3) ExecuteKeyspaceIds(ctx context.Context, request *pb.ExecuteKeyspaceIdsRequest, response *pb.ExecuteKeyspaceIdsResponse) (err error) { defer vtg.server.HandlePanic(&err) ctx, cancel := context.WithDeadline(ctx, time.Now().Add(*rpcTimeout)) defer cancel() ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) reply := &proto.QueryResult{} vtgErr := vtg.server.ExecuteKeyspaceIds(ctx, string(request.Query.Sql), tproto.Proto3ToBindVariables(request.Query.BindVariables), request.Keyspace, request.KeyspaceIds, request.TabletType, proto.ProtoToSession(request.Session), request.NotInTransaction, reply) response.Error = vtgate.VtGateErrorToVtRPCError(vtgErr, reply.Error) response.Result = mproto.QueryResultToProto3(reply.Result) response.Session = proto.SessionToProto(reply.Session) if *vtgate.RPCErrorOnlyInReply { return nil } return vtgErr }
// ExecuteKeyspaceIds is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) ExecuteKeyspaceIds(ctx context.Context, request *pb.ExecuteKeyspaceIdsRequest) (response *pb.ExecuteKeyspaceIdsResponse, err error) { defer vtg.server.HandlePanic(&err) query := &proto.KeyspaceIdQuery{ Sql: string(request.Query.Sql), BindVariables: tproto.Proto3ToBindVariables(request.Query.BindVariables), Keyspace: request.Keyspace, KeyspaceIds: key.ProtoToKeyspaceIds(request.KeyspaceIds), TabletType: topo.ProtoToTabletType(request.TabletType), Session: proto.ProtoToSession(request.Session), NotInTransaction: request.NotInTransaction, } reply := new(proto.QueryResult) executeErr := vtg.server.ExecuteKeyspaceIds(ctx, query, reply) response = &pb.ExecuteKeyspaceIdsResponse{ Error: vtgate.VtGateErrorToVtRPCError(executeErr, reply.Error), } if executeErr == nil { response.Result = mproto.QueryResultToProto3(reply.Result) response.Session = proto.SessionToProto(reply.Session) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, executeErr }
// Rollback2 is the RPC version of vtgateservice.VTGateService method func (vtg *VTGateP3) Rollback2(ctx context.Context, request *pb.RollbackRequest, response *pb.RollbackResponse) (err error) { defer vtg.server.HandlePanic(&err) ctx, cancel := context.WithDeadline(ctx, time.Now().Add(*rpcTimeout)) defer cancel() ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) vtgErr := vtg.server.Rollback(ctx, proto.ProtoToSession(request.Session)) response.Error = vtgate.VtGateErrorToVtRPCError(vtgErr, "") if *vtgate.RPCErrorOnlyInReply { return nil } return vtgErr }
// Rollback is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) Rollback(ctx context.Context, request *pb.RollbackRequest) (response *pb.RollbackResponse, err error) { defer vtg.server.HandlePanic(&err) rollbackErr := vtg.server.Rollback(ctx, proto.ProtoToSession(request.Session)) response = &pb.RollbackResponse{ Error: vtgate.VtGateErrorToVtRPCError(rollbackErr, ""), } if rollbackErr == nil { return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, rollbackErr }
// Begin is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) Begin(ctx context.Context, request *pb.BeginRequest) (response *pb.BeginResponse, err error) { defer vtg.server.HandlePanic(&err) outSession := new(proto.Session) beginErr := vtg.server.Begin(ctx, outSession) response = &pb.BeginResponse{ Error: vtgate.VtGateErrorToVtRPCError(beginErr, ""), } if beginErr == nil { response.Session = proto.SessionToProto(outSession) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, beginErr }
// StreamExecute is the RPC version of vtgateservice.VTGateService method func (vtg *VTGateP3) StreamExecute(ctx context.Context, request *pb.StreamExecuteRequest, sendReply func(interface{}) error) (err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) return vtg.server.StreamExecute(ctx, string(request.Query.Sql), tproto.Proto3ToBindVariables(request.Query.BindVariables), request.TabletType, func(reply *proto.QueryResult) error { return sendReply(&pb.StreamExecuteResponse{ Error: vtgate.VtGateErrorToVtRPCError(nil, reply.Error), Result: mproto.QueryResultToProto3(reply.Result), }) }) }
// Rollback is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) Rollback(ctx context.Context, request *pb.RollbackRequest) (response *pb.RollbackResponse, err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(callinfo.GRPCCallInfo(ctx), request.CallerId, callerid.NewImmediateCallerID("grpc client")) rollbackErr := vtg.server.Rollback(ctx, proto.ProtoToSession(request.Session)) response = &pb.RollbackResponse{ Error: vtgate.VtGateErrorToVtRPCError(rollbackErr, ""), } if rollbackErr == nil { return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, rollbackErr }
// Begin2 is the RPC version of vtgateservice.VTGateService method func (vtg *VTGateP3) Begin2(ctx context.Context, request *pb.BeginRequest, response *pb.BeginResponse) (err error) { defer vtg.server.HandlePanic(&err) ctx, cancel := context.WithDeadline(ctx, time.Now().Add(*rpcTimeout)) defer cancel() ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) // Don't pass in a nil pointer session := &proto.Session{} vtgErr := vtg.server.Begin(ctx, session) response.Session = proto.SessionToProto(session) response.Error = vtgate.VtGateErrorToVtRPCError(vtgErr, "") if *vtgate.RPCErrorOnlyInReply { return nil } return vtgErr }
// Begin is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) Begin(ctx context.Context, request *pb.BeginRequest) (response *pb.BeginResponse, err error) { defer vtg.server.HandlePanic(&err) ctx = callerid.NewContext(callinfo.GRPCCallInfo(ctx), request.CallerId, callerid.NewImmediateCallerID("grpc client")) outSession := new(proto.Session) beginErr := vtg.server.Begin(ctx, outSession) response = &pb.BeginResponse{ Error: vtgate.VtGateErrorToVtRPCError(beginErr, ""), } if beginErr == nil { response.Session = proto.SessionToProto(outSession) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, beginErr }
// ExecuteBatchShards is the RPC version of vtgateservice.VTGateService method func (vtg *VTGateP3) ExecuteBatchShards(ctx context.Context, request *pb.ExecuteBatchShardsRequest, response *pb.ExecuteBatchShardsResponse) (err error) { defer vtg.server.HandlePanic(&err) ctx, cancel := context.WithDeadline(ctx, time.Now().Add(*rpcTimeout)) defer cancel() ctx = callerid.NewContext(ctx, request.CallerId, callerid.NewImmediateCallerID("gorpc client")) reply := &proto.QueryResultList{} vtgErr := vtg.server.ExecuteBatchShards(ctx, proto.ProtoToBoundShardQueries(request.Queries), request.TabletType, request.AsTransaction, proto.ProtoToSession(request.Session), reply) response.Error = vtgate.VtGateErrorToVtRPCError(vtgErr, reply.Error) response.Results = tproto.QueryResultListToProto3(reply.List) response.Session = proto.SessionToProto(reply.Session) if *vtgate.RPCErrorOnlyInReply { return nil } return vtgErr }
// ExecuteBatchKeyspaceIds is the RPC version of // vtgateservice.VTGateService method func (vtg *VTGate) ExecuteBatchKeyspaceIds(ctx context.Context, request *pb.ExecuteBatchKeyspaceIdsRequest) (response *pb.ExecuteBatchKeyspaceIdsResponse, err error) { defer vtg.server.HandlePanic(&err) query := &proto.KeyspaceIdBatchQuery{ Session: proto.ProtoToSession(request.Session), Queries: proto.ProtoToBoundKeyspaceIdQueries(request.Queries), TabletType: topo.ProtoToTabletType(request.TabletType), AsTransaction: request.AsTransaction, } reply := new(proto.QueryResultList) executeErr := vtg.server.ExecuteBatchKeyspaceIds(ctx, query, reply) response = &pb.ExecuteBatchKeyspaceIdsResponse{ Error: vtgate.VtGateErrorToVtRPCError(executeErr, reply.Error), } if executeErr == nil { response.Results = tproto.QueryResultListToProto3(reply.List) response.Session = proto.SessionToProto(reply.Session) return response, nil } if *vtgate.RPCErrorOnlyInReply { return response, nil } return nil, executeErr }