func (self *VarcharStore) Get(bytes bs.ByteSlice) (key, value bs.ByteSlice, err error) { vc := self.varchar vkey := int64(bytes.Int64()) bytes, err = vc.Read(vkey) if err != nil { return nil, nil, err } kv := load_varchar_kv(bytes) return kv.key, kv.val, nil }
func (self *VarcharStore) Update(bytes, key, value bs.ByteSlice) (rbytes bs.ByteSlice, err error) { vc := self.varchar vkey := int64(bytes.Int64()) kv := new_varchar_kv(key, value).Bytes() oldkv, err := vc.Read(vkey) if err != nil { return nil, err } if len(oldkv) == len(kv) { err = vc.Update(vkey, kv) if err != nil { return nil, err } return bs.ByteSlice64(uint64(vkey)), nil } else { err := vc.Remove(vkey) if err != nil { return nil, err } return self.Put(key, value) } }
func (self *VarcharStore) Remove(bytes bs.ByteSlice) (err error) { vc := self.varchar vkey := int64(bytes.Int64()) return vc.Remove(vkey) }