MCPcopy Index your code
hub / github.com/CodisLabs/codis / handleRequestDel

Method handleRequestDel

pkg/proxy/session.go:466–504  ·  view source on GitHub ↗
(r *Request, d *Router)

Source from the content-addressed store, hash-verified

464}
465
466func (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
506func (s *Session) handleRequestExists(r *Request, d *Router) error {
507 var nkeys = len(r.Multi) - 1

Callers 1

handleRequestMethod · 0.95

Calls 4

MakeSubRequestMethod · 0.80
IsIntMethod · 0.80
ErrorfMethod · 0.80
dispatchMethod · 0.45

Tested by

no test coverage detected