[WIP] lint a bit, update deps
This commit is contained in:
50
vendor/github.com/cockroachdb/pebble/range_keys.go
generated
vendored
50
vendor/github.com/cockroachdb/pebble/range_keys.go
generated
vendored
@@ -17,7 +17,7 @@ import (
|
||||
func (i *Iterator) constructRangeKeyIter() {
|
||||
i.rangeKey.rangeKeyIter = i.rangeKey.iterConfig.Init(
|
||||
&i.comparer, i.seqNum, i.opts.LowerBound, i.opts.UpperBound,
|
||||
&i.hasPrefix, &i.prefixOrFullSeekKey, true /* onlySets */, &i.rangeKey.rangeKeyBuffers.internal)
|
||||
&i.hasPrefix, &i.prefixOrFullSeekKey, false /* internalKeys */, &i.rangeKey.rangeKeyBuffers.internal)
|
||||
|
||||
// If there's an indexed batch with range keys, include it.
|
||||
if i.batch != nil {
|
||||
@@ -36,19 +36,24 @@ func (i *Iterator) constructRangeKeyIter() {
|
||||
}
|
||||
|
||||
// Next are the flushables: memtables and large batches.
|
||||
for j := len(i.readState.memtables) - 1; j >= 0; j-- {
|
||||
mem := i.readState.memtables[j]
|
||||
// We only need to read from memtables which contain sequence numbers older
|
||||
// than seqNum.
|
||||
if logSeqNum := mem.logSeqNum; logSeqNum >= i.seqNum {
|
||||
continue
|
||||
}
|
||||
if rki := mem.newRangeKeyIter(&i.opts); rki != nil {
|
||||
i.rangeKey.iterConfig.AddLevel(rki)
|
||||
if i.readState != nil {
|
||||
for j := len(i.readState.memtables) - 1; j >= 0; j-- {
|
||||
mem := i.readState.memtables[j]
|
||||
// We only need to read from memtables which contain sequence numbers older
|
||||
// than seqNum.
|
||||
if logSeqNum := mem.logSeqNum; logSeqNum >= i.seqNum {
|
||||
continue
|
||||
}
|
||||
if rki := mem.newRangeKeyIter(&i.opts); rki != nil {
|
||||
i.rangeKey.iterConfig.AddLevel(rki)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
current := i.readState.current
|
||||
current := i.version
|
||||
if current == nil {
|
||||
current = i.readState.current
|
||||
}
|
||||
// Next are the file levels: L0 sub-levels followed by lower levels.
|
||||
//
|
||||
// Add file-specific iterators for L0 files containing range keys. This is less
|
||||
@@ -63,8 +68,7 @@ func (i *Iterator) constructRangeKeyIter() {
|
||||
// around Key Trailer order.
|
||||
iter := current.RangeKeyLevels[0].Iter()
|
||||
for f := iter.Last(); f != nil; f = iter.Prev() {
|
||||
spanIterOpts := &keyspan.SpanIterOptions{RangeKeyFilters: i.opts.RangeKeyFilters}
|
||||
spanIter, err := i.newIterRangeKey(f, spanIterOpts)
|
||||
spanIter, err := i.newIterRangeKey(f, i.opts.SpanIterOptions())
|
||||
if err != nil {
|
||||
i.rangeKey.iterConfig.AddLevel(&errorKeyspanIter{err: err})
|
||||
continue
|
||||
@@ -78,7 +82,7 @@ func (i *Iterator) constructRangeKeyIter() {
|
||||
continue
|
||||
}
|
||||
li := i.rangeKey.iterConfig.NewLevelIter()
|
||||
spanIterOpts := keyspan.SpanIterOptions{RangeKeyFilters: i.opts.RangeKeyFilters}
|
||||
spanIterOpts := i.opts.SpanIterOptions()
|
||||
li.Init(spanIterOpts, i.cmp, i.newIterRangeKey, current.RangeKeyLevels[level].Iter(),
|
||||
manifest.Level(level), manifest.KeyTypeRange)
|
||||
i.rangeKey.iterConfig.AddLevel(li)
|
||||
@@ -366,24 +370,24 @@ func (m *rangeKeyMasking) Intersects(prop []byte) (bool, error) {
|
||||
// KeyIsWithinLowerBound implements the limitedBlockPropertyFilter interface
|
||||
// defined in the sstable package. It's used to restrict the masking block
|
||||
// property filter to only applying within the bounds of the active range key.
|
||||
func (m *rangeKeyMasking) KeyIsWithinLowerBound(ik *InternalKey) bool {
|
||||
func (m *rangeKeyMasking) KeyIsWithinLowerBound(key []byte) bool {
|
||||
// Invariant: m.maskSpan != nil
|
||||
//
|
||||
// The provided `ik` is an inclusive lower bound of the block we're
|
||||
// The provided `key` is an inclusive lower bound of the block we're
|
||||
// considering skipping.
|
||||
return m.cmp(m.maskSpan.Start, ik.UserKey) <= 0
|
||||
return m.cmp(m.maskSpan.Start, key) <= 0
|
||||
}
|
||||
|
||||
// KeyIsWithinUpperBound implements the limitedBlockPropertyFilter interface
|
||||
// defined in the sstable package. It's used to restrict the masking block
|
||||
// property filter to only applying within the bounds of the active range key.
|
||||
func (m *rangeKeyMasking) KeyIsWithinUpperBound(ik *InternalKey) bool {
|
||||
func (m *rangeKeyMasking) KeyIsWithinUpperBound(key []byte) bool {
|
||||
// Invariant: m.maskSpan != nil
|
||||
//
|
||||
// The provided `ik` is an *inclusive* upper bound of the block we're
|
||||
// The provided `key` is an *inclusive* upper bound of the block we're
|
||||
// considering skipping, so the range key's end must be strictly greater
|
||||
// than the block bound for the block to be within bounds.
|
||||
return m.cmp(m.maskSpan.End, ik.UserKey) > 0
|
||||
return m.cmp(m.maskSpan.End, key) > 0
|
||||
}
|
||||
|
||||
// lazyCombinedIter implements the internalIterator interface, wrapping a
|
||||
@@ -512,7 +516,11 @@ func (i *lazyCombinedIter) initCombinedIteration(
|
||||
// Initialize the Iterator's interleaving iterator.
|
||||
i.parent.rangeKey.iiter.Init(
|
||||
&i.parent.comparer, i.parent.pointIter, i.parent.rangeKey.rangeKeyIter,
|
||||
&i.parent.rangeKeyMasking, i.parent.opts.LowerBound, i.parent.opts.UpperBound)
|
||||
keyspan.InterleavingIterOpts{
|
||||
Mask: &i.parent.rangeKeyMasking,
|
||||
LowerBound: i.parent.opts.LowerBound,
|
||||
UpperBound: i.parent.opts.UpperBound,
|
||||
})
|
||||
|
||||
// Set the parent's primary iterator to point to the combined, interleaving
|
||||
// iterator that's now initialized with our current state.
|
||||
|
||||
Reference in New Issue
Block a user