Merge pull request #1120 from molecula/fix-root-record-overflow

Fix rbf write root record iterator reset
This commit is contained in:
jaten-molecula 2020-11-19 13:11:09 -06:00 • committed by GitHub
commit 5b8cda3c88
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

1
.gitignore vendored
View file

@ -10,3 +10,4 @@ release-pilosa-fsck.*.*.tar.gz
/log.*
/tourna.log.*
pilosa
*.dot

View file

@ -181,7 +181,7 @@ func writeRootRecords(page []byte, itr *immutable.SortedMapIterator) (err error)
data, err = WriteRootRecord(data, &RootRecord{Name: name.(string), Pgno: pgno.(uint32)})
if err != nil {
itr.Prev()
itr.Seek(name)
return err
}
}

View file

@ -486,6 +486,30 @@ func TestTx_Dump(t *testing.T) {
}
}
func TestTx_CreateBitmap(t *testing.T) {
t.Run("Bulk", func(t *testing.T) {
db := MustOpenDB(t)
defer MustCloseDB(t, db)
tx, err := db.Begin(true)
if err != nil {
t.Fatal(err)
}
defer tx.Rollback()
if err := tx.CreateBitmap(fmt.Sprintf("%4000x", 0)); err != nil {
t.Fatal(err)
} else if err := tx.CreateBitmap(fmt.Sprintf("%4000x", 1)); err != nil {
t.Fatal(err)
} else if err := tx.CreateBitmap(fmt.Sprintf("%4000x", 2)); err != nil {
t.Fatal(err)
}
if err := tx.Commit(); err != nil {
t.Fatal(err)
}
})
}
func rbfName(index, field, view string, shard uint64) string {
return string(txkey.Prefix(index, field, view, shard))
}