-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Labels
kind/questionSomething requiring a responseSomething requiring a response
Description
Code:
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"github.com/dgraph-io/badger"
)
func main() {
dir, err := ioutil.TempDir("", "badger")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
opts := badger.DefaultOptions
opts.Dir = dir
opts.ValueDir = dir
db, err := badger.Open(opts)
if err != nil {
log.Fatal(err)
}
defer db.Close()
bkey := func(i int) []byte {
return []byte(fmt.Sprintf("%09d", i))
}
bval := func(i int) []byte {
return []byte(fmt.Sprintf("%025d", i))
}
txn := db.NewTransaction(true)
// Fill in 1000 items
n := 1000
for i := 0; i < n; i++ {
err := txn.Set(bkey(i), bval(i))
if err != nil {
log.Fatal(err)
}
}
err = txn.Commit(nil)
if err != nil {
log.Fatal(err)
}
opt := badger.DefaultIteratorOptions
opt.PrefetchSize = 10
opt.Reverse = true
// Iterate over 1000 items
var count int
err = db.View(func(txn *badger.Txn) error {
it := txn.NewIterator(opt)
for it.Seek([]byte("0")); it.ValidForPrefix([]byte("0")); it.Next() {
count++
}
return nil
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Counted %d elements", count)
}This code returns 0 elements in reverse mode and 1000 elements with reverse = false
Metadata
Metadata
Assignees
Labels
kind/questionSomething requiring a responseSomething requiring a response