Merge pull request #657 from chrislusf/master

Master
This commit is contained in:
Chris Lu 2018-05-22 10:20:50 -07:00 committed by GitHub
commit 147665e9a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -75,8 +75,8 @@ func generateBoltDbFile(dbFileName string, indexFile *os.File) error {
} }
func (m *BoltDbNeedleMap) Get(key uint64) (element *needle.NeedleValue, ok bool) { func (m *BoltDbNeedleMap) Get(key uint64) (element *needle.NeedleValue, ok bool) {
var offset, size uint32
bytes := make([]byte, 8) bytes := make([]byte, 8)
var data []byte
util.Uint64toBytes(bytes, key) util.Uint64toBytes(bytes, key)
err := m.db.View(func(tx *bolt.Tx) error { err := m.db.View(func(tx *bolt.Tx) error {
bucket := tx.Bucket(boltdbBucket) bucket := tx.Bucket(boltdbBucket)
@ -84,15 +84,22 @@ func (m *BoltDbNeedleMap) Get(key uint64) (element *needle.NeedleValue, ok bool)
return fmt.Errorf("Bucket %q not found!", boltdbBucket) return fmt.Errorf("Bucket %q not found!", boltdbBucket)
} }
data = bucket.Get(bytes) data := bucket.Get(bytes)
if len(data) != 8 {
glog.V(0).Infof("wrong data length: %d", len(data))
return fmt.Errorf("wrong data length: %d", len(data))
}
offset = util.BytesToUint32(data[0:4])
size = util.BytesToUint32(data[4:8])
return nil return nil
}) })
if err != nil || len(data) != 8 { if err != nil {
return nil, false return nil, false
} }
offset := util.BytesToUint32(data[0:4])
size := util.BytesToUint32(data[4:8])
return &needle.NeedleValue{Key: needle.Key(key), Offset: offset, Size: size}, true return &needle.NeedleValue{Key: needle.Key(key), Offset: offset, Size: size}, true
} }