mirror of https://github.com/tidwall/buntdb.git
parent
4ac2e321b1
commit
e0e630f20f
|
@ -922,6 +922,10 @@ func (db *DB) readLoad(rd io.Reader, modTime time.Time) (n int64, err error) {
|
|||
exat: exat,
|
||||
},
|
||||
})
|
||||
} else {
|
||||
db.deleteFromDatabase(&dbItem{
|
||||
key: parts[1],
|
||||
})
|
||||
}
|
||||
} else {
|
||||
db.insertIntoDatabase(&dbItem{key: parts[1], val: parts[2]})
|
||||
|
@ -1637,6 +1641,9 @@ func (tx *Tx) scan(desc, gt, lt bool, index, start, stop string,
|
|||
// wrap a btree specific iterator around the user-defined iterator.
|
||||
iter := func(item interface{}) bool {
|
||||
dbi := item.(*dbItem)
|
||||
if dbi.expired() {
|
||||
return true
|
||||
}
|
||||
return iterator(dbi.key, dbi.val)
|
||||
}
|
||||
var tr *btree.BTree
|
||||
|
|
|
@ -2499,7 +2499,7 @@ func Benchmark_Descend_10000(t *testing.B) {
|
|||
}
|
||||
|
||||
/*
|
||||
func Benchmark_Spatial_2D(t *testing.B) {
|
||||
func Benchmark_Spatial_2D(t *testing.B) {
|
||||
N := 100000
|
||||
db, _, _ := benchOpenFillData(t, N, true, true, false, true, 100)
|
||||
defer benchClose(t, false, db)
|
||||
|
@ -2918,3 +2918,43 @@ func TestWrappedError(t *testing.T) {
|
|||
}()
|
||||
panicErr(errors.New("my fake error"))
|
||||
}
|
||||
|
||||
func TestIssue112(t *testing.T) {
|
||||
defer os.RemoveAll("data.db")
|
||||
db, err := Open("data.db")
|
||||
if err != nil {
|
||||
panicErr(err)
|
||||
}
|
||||
err = db.Update(func(tx *Tx) error {
|
||||
_, _, err := tx.Set("key:112", "value:112-old", nil)
|
||||
return err
|
||||
})
|
||||
if err != nil {
|
||||
panicErr(err)
|
||||
}
|
||||
err = db.Update(func(tx *Tx) error {
|
||||
_, _, err := tx.Set("key:112", "value:112", &SetOptions{Expires: true, TTL: time.Second})
|
||||
return err
|
||||
})
|
||||
if err != nil {
|
||||
panicErr(err)
|
||||
}
|
||||
db.Close()
|
||||
time.Sleep(time.Second)
|
||||
db, err = Open("data.db")
|
||||
if err != nil {
|
||||
panicErr(err)
|
||||
}
|
||||
err = db.View(func(tx *Tx) error {
|
||||
_, err := tx.Get("key:112")
|
||||
return err
|
||||
})
|
||||
assert.Assert(err == ErrNotFound)
|
||||
db.View(func(tx *Tx) error {
|
||||
err := tx.Ascend("", func(key, value string) bool {
|
||||
t.Fatalf("key: %s, value: %s\n", key, value)
|
||||
return true
|
||||
})
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue