Skip to content

Commit d61d3e1

Browse files
committed
save
1 parent 842c7c9 commit d61d3e1

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

db/recsplit/multiencseq/sequence_builder.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ const SIMPLE_SEQUENCE_MAX_THRESHOLD = 16
3131
type SequenceBuilder struct {
3232
baseNum uint64
3333
ef *eliasfano32.EliasFano
34+
it1 SequenceIterator
35+
it2 SequenceIterator
3436
}
3537

3638
// Creates a new builder. The builder is not meant to be reused. The construction
@@ -109,19 +111,19 @@ func (b *SequenceBuilder) simpleEncoding(buf []byte) []byte {
109111
// Merge merges s1 and s2 into this builder, resetting it first.
110112
// s1 and s2 must be pre-sorted with s1.Max() <= s2.Min().
111113
// Call AppendBytes on the builder to serialize.
112-
func (b *SequenceBuilder) Merge(s1, s2 *SequenceReader, outBaseNum uint64, it1, it2 *SequenceIterator) error {
114+
func (b *SequenceBuilder) Merge(s1, s2 *SequenceReader, outBaseNum uint64) error {
113115
b.Reset(outBaseNum, s1.Count()+s2.Count(), s2.Max())
114-
it1.Reset(s1, 0)
115-
it2.Reset(s2, 0)
116-
for it1.HasNext() {
117-
v, err := it1.Next()
116+
b.it1.Reset(s1, 0)
117+
b.it2.Reset(s2, 0)
118+
for b.it1.HasNext() {
119+
v, err := b.it1.Next()
118120
if err != nil {
119121
return err
120122
}
121123
b.AddOffset(v)
122124
}
123-
for it2.HasNext() {
124-
v, err := it2.Next()
125+
for b.it2.HasNext() {
126+
v, err := b.it2.Next()
125127
if err != nil {
126128
return err
127129
}

db/state/merge.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ func (iit *InvertedIndexRoTx) mergeFiles(ctx context.Context, files []*FilesItem
645645
var keyBuf, valBuf []byte
646646
var lastKey, lastVal []byte
647647
preSeq, mergeSeq := &multiencseq.SequenceReader{}, &multiencseq.SequenceReader{}
648-
preIt, mergeIt := &multiencseq.SequenceIterator{}, &multiencseq.SequenceIterator{}
648+
preIt := &multiencseq.SequenceIterator{}
649649
builder := &multiencseq.SequenceBuilder{}
650650
for cp.Len() > 0 {
651651
lastKey = append(lastKey[:0], cp[0].key...)
@@ -672,7 +672,7 @@ func (iit *InvertedIndexRoTx) mergeFiles(ctx context.Context, files []*FilesItem
672672
if mergedOnce {
673673
mergeSeq.Reset(ci1.startTxNum, ci1.val)
674674
preSeq.Reset(startTxNum, lastVal)
675-
if mergeErr := builder.Merge(mergeSeq, preSeq, startTxNum, mergeIt, preIt); mergeErr != nil {
675+
if mergeErr := builder.Merge(mergeSeq, preSeq, startTxNum); mergeErr != nil {
676676
return nil, fmt.Errorf("merge %s inverted index: %w", iit.ii.FilenameBase, mergeErr)
677677
}
678678
lastVal = builder.AppendBytes(lastVal[:0])

db/state/merge_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,11 +748,10 @@ func Test_mergeEliasFano(t *testing.T) {
748748
}
749749

750750
var seq1, seq2 multiencseq.SequenceReader
751-
var it1, it2 multiencseq.SequenceIterator
752751
seq1.Reset(0, firstBytes)
753752
seq2.Reset(0, secondBytes)
754753
var mergedSeq multiencseq.SequenceBuilder
755-
err := mergedSeq.Merge(&seq1, &seq2, 0, &it1, &it2)
754+
err := mergedSeq.Merge(&seq1, &seq2, 0)
756755
require.NoError(t, err)
757756
menc := mergedSeq.AppendBytes(nil)
758757

0 commit comments

Comments
 (0)