github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/go-hbase/client_ops.go (about) 1 package hbase 2 3 import ( 4 "github.com/insionng/yougam/libraries/juju/errors" 5 "github.com/insionng/yougam/libraries/pingcap/go-hbase/proto" 6 ) 7 8 func (c *client) Delete(table string, del *Delete) (bool, error) { 9 response, err := c.do([]byte(table), del.GetRow(), del, true) 10 if err != nil { 11 return false, errors.Trace(err) 12 } 13 14 switch r := response.(type) { 15 case *proto.MutateResponse: 16 return r.GetProcessed(), nil 17 } 18 return false, errors.Errorf("Invalid response seen [response: %#v]", response) 19 } 20 21 func (c *client) Get(table string, get *Get) (*ResultRow, error) { 22 response, err := c.do([]byte(table), get.GetRow(), get, true) 23 if err != nil { 24 return nil, errors.Trace(err) 25 } 26 27 switch r := response.(type) { 28 case *proto.GetResponse: 29 res := r.GetResult() 30 if res == nil { 31 return nil, errors.Errorf("Empty response: [table=%s] [row=%q]", table, get.GetRow()) 32 } 33 34 return NewResultRow(res), nil 35 case *exception: 36 return nil, errors.New(r.msg) 37 } 38 return nil, errors.Errorf("Invalid response seen [response: %#v]", response) 39 } 40 41 func (c *client) Put(table string, put *Put) (bool, error) { 42 response, err := c.do([]byte(table), put.GetRow(), put, true) 43 if err != nil { 44 return false, errors.Trace(err) 45 } 46 47 switch r := response.(type) { 48 case *proto.MutateResponse: 49 return r.GetProcessed(), nil 50 } 51 return false, errors.Errorf("Invalid response seen [response: %#v]", response) 52 } 53 54 func (c *client) ServiceCall(table string, call *CoprocessorServiceCall) (*proto.CoprocessorServiceResponse, error) { 55 response, err := c.do([]byte(table), call.Row, call, true) 56 if err != nil { 57 return nil, errors.Trace(err) 58 } 59 60 switch r := response.(type) { 61 case *proto.CoprocessorServiceResponse: 62 return r, nil 63 case *exception: 64 return nil, errors.New(r.msg) 65 } 66 return nil, errors.Errorf("Invalid response seen [response: %#v]", response) 67 }