MCPcopy
hub / github.com/CodisLabs/codis / selectDatabase

Method selectDatabase

pkg/proxy/backend.go:212–239  ·  view source on GitHub ↗
(c *redis.Conn, database int)

Source from the content-addressed store, hash-verified

210}
211
212func (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
241func (bc *BackendConn) setResponse(r *Request, resp *redis.Resp, err error) error {
242 r.Resp, r.Err = resp, err

Callers 1

newBackendReaderMethod · 0.95

Calls 5

DecodeMethod · 0.80
IsErrorMethod · 0.80
ErrorfMethod · 0.80
IsStringMethod · 0.80
EncodeMultiBulkMethod · 0.45

Tested by

no test coverage detected