(r *Request, d *Router)
| 464 | } |
| 465 | |
| 466 | func (s *Session) handleRequestDel(r *Request, d *Router) error { |
| 467 | var nkeys = len(r.Multi) - 1 |
| 468 | switch { |
| 469 | case nkeys == 0: |
| 470 | r.Resp = redis.NewErrorf("ERR wrong number of arguments for 'DEL' command") |
| 471 | return nil |
| 472 | case nkeys == 1: |
| 473 | return d.dispatch(r) |
| 474 | } |
| 475 | var sub = r.MakeSubRequest(nkeys) |
| 476 | for i := range sub { |
| 477 | sub[i].Multi = []*redis.Resp{ |
| 478 | r.Multi[0], |
| 479 | r.Multi[i+1], |
| 480 | } |
| 481 | if err := d.dispatch(&sub[i]); err != nil { |
| 482 | return err |
| 483 | } |
| 484 | } |
| 485 | r.Coalesce = func() error { |
| 486 | var n int |
| 487 | for i := range sub { |
| 488 | if err := sub[i].Err; err != nil { |
| 489 | return err |
| 490 | } |
| 491 | switch resp := sub[i].Resp; { |
| 492 | case resp == nil: |
| 493 | return ErrRespIsRequired |
| 494 | case resp.IsInt() && len(resp.Value) == 1: |
| 495 | n += int(resp.Value[0] - '0') |
| 496 | default: |
| 497 | return fmt.Errorf("bad del resp: %s value.len = %d", resp.Type, len(resp.Value)) |
| 498 | } |
| 499 | } |
| 500 | r.Resp = redis.NewInt(strconv.AppendInt(nil, int64(n), 10)) |
| 501 | return nil |
| 502 | } |
| 503 | return nil |
| 504 | } |
| 505 | |
| 506 | func (s *Session) handleRequestExists(r *Request, d *Router) error { |
| 507 | var nkeys = len(r.Multi) - 1 |
no test coverage detected