// callNext issues a datastore_v3/Next RPC to advance a cursor, such as that // returned by a query with more results. func callNext(c appengine.Context, res *pb.QueryResult, offset, limit int32, zlp zeroLimitPolicy) error { if res.Cursor == nil { return errors.New("datastore: internal error: server did not return a cursor") } // TODO: should I eventually call datastore_v3/DeleteCursor on the cursor? req := &pb.NextRequest{ Cursor: res.Cursor, Offset: proto.Int32(offset), } if limit != 0 || zlp == zeroLimitMeansZero { req.Count = proto.Int32(limit) } if res.CompiledCursor != nil { req.Compile = proto.Bool(true) } res.Reset() return c.Call("datastore_v3", "Next", req, res, nil) }
// callNext issues a datastore_v3/Next RPC to advance a cursor, such as that // returned by a query with more results. func callNext(c appengine.Context, res *pb.QueryResult, offset, limit int32) error { if res.Cursor == nil { return errors.New("datastore: internal error: server did not return a cursor") } req := &pb.NextRequest{ Cursor: res.Cursor, } if limit >= 0 { req.Count = proto.Int32(limit) } if offset != 0 { req.Offset = proto.Int32(offset) } if res.CompiledCursor != nil { req.Compile = proto.Bool(true) } res.Reset() return c.Call("datastore_v3", "Next", req, res, nil) }