From a31487b8737639d7896905f77026399848770a1a Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Thu, 19 Nov 2020 11:15:24 -0700 Subject: [PATCH] Fix rbf write root record iterator reset --- .gitignore | 1 + rbf/rbf.go | 2 +- rbf/tx_test.go | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6e553c794..9bf572296 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ release-pilosa-fsck.*.*.tar.gz /log.* /tourna.log.* pilosa +*.dot diff --git a/rbf/rbf.go b/rbf/rbf.go index 2244a1523..f9e7ebaf0 100644 --- a/rbf/rbf.go +++ b/rbf/rbf.go @@ -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 } } diff --git a/rbf/tx_test.go b/rbf/tx_test.go index bc0d9f591..5785067ae 100644 --- a/rbf/tx_test.go +++ b/rbf/tx_test.go @@ -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)) }