// ExecuteEntityIds is the RPC version of vtgateservice.VTGateService method func (vtg *VTGate) ExecuteEntityIds(ctx context.Context, request *proto.EntityIdsQuery, reply *proto.QueryResult) (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")) vtgErr := vtg.server.ExecuteEntityIds(ctx, request.Sql, request.BindVariables, request.Keyspace, request.EntityColumnName, proto.EntityIdsToProto(request.EntityKeyspaceIDs), topo.TabletTypeToProto(request.TabletType), request.Session, request.NotInTransaction, reply) vtgate.AddVtGateError(vtgErr, &reply.Err) return nil }
func (conn *vtgateConn) ExecuteEntityIds(ctx context.Context, query string, keyspace string, entityColumnName string, entityKeyspaceIDs []proto.EntityId, bindVars map[string]interface{}, tabletType topo.TabletType, notInTransaction bool, session interface{}) (*mproto.QueryResult, interface{}, error) { var s *pb.Session if session != nil { s = session.(*pb.Session) } request := &pb.ExecuteEntityIdsRequest{ Session: s, Query: tproto.BoundQueryToProto3(query, bindVars), Keyspace: keyspace, EntityColumnName: entityColumnName, EntityKeyspaceIds: proto.EntityIdsToProto(entityKeyspaceIDs), TabletType: topo.TabletTypeToProto(tabletType), NotInTransaction: notInTransaction, } response, err := conn.c.ExecuteEntityIds(ctx, request) if err != nil { return nil, session, err } if response.Error != nil { return nil, response.Session, vterrors.FromVtRPCError(response.Error) } return mproto.Proto3ToQueryResult(response.Result), response.Session, nil }
func (conn *vtgateConn) ExecuteEntityIds(ctx context.Context, query string, keyspace string, entityColumnName string, entityKeyspaceIDs []proto.EntityId, bindVars map[string]interface{}, tabletType topopb.TabletType, notInTransaction bool, session interface{}) (*mproto.QueryResult, interface{}, error) { var s *pb.Session if session != nil { s = session.(*pb.Session) } request := &pb.ExecuteEntityIdsRequest{ CallerId: callerid.EffectiveCallerIDFromContext(ctx), Query: tproto.BoundQueryToProto3(query, bindVars), Keyspace: keyspace, EntityColumnName: entityColumnName, EntityKeyspaceIds: proto.EntityIdsToProto(entityKeyspaceIDs), TabletType: tabletType, Session: s, NotInTransaction: notInTransaction, } response := &pb.ExecuteEntityIdsResponse{} if err := conn.rpcConn.Call(ctx, "VTGateP3.ExecuteEntityIds", request, response); err != nil { return nil, session, err } if err := vterrors.FromVtRPCError(response.Error); err != nil { return nil, response.Session, err } return mproto.Proto3ToQueryResult(response.Result), response.Session, nil }