(c *redis.Conn, database int)
| 210 | } |
| 211 | |
| 212 | func (bc *BackendConn) selectDatabase(c *redis.Conn, database int) error { |
| 213 | if database == 0 { |
| 214 | return nil |
| 215 | } |
| 216 | |
| 217 | multi := []*redis.Resp{ |
| 218 | redis.NewBulkBytes([]byte("SELECT")), |
| 219 | redis.NewBulkBytes([]byte(strconv.Itoa(database))), |
| 220 | } |
| 221 | |
| 222 | if err := c.EncodeMultiBulk(multi, true); err != nil { |
| 223 | return err |
| 224 | } |
| 225 | |
| 226 | resp, err := c.Decode() |
| 227 | switch { |
| 228 | case err != nil: |
| 229 | return err |
| 230 | case resp == nil: |
| 231 | return ErrRespIsRequired |
| 232 | case resp.IsError(): |
| 233 | return fmt.Errorf("error resp: %s", resp.Value) |
| 234 | case resp.IsString(): |
| 235 | return nil |
| 236 | default: |
| 237 | return fmt.Errorf("error resp: should be string, but got %s", resp.Type) |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | func (bc *BackendConn) setResponse(r *Request, resp *redis.Resp, err error) error { |
| 242 | r.Resp, r.Err = resp, err |
no test coverage detected