iterator.go
func (it *Iterator) Seek(key []byte) {
	for i := it.data.pop(); i != nil; i = it.data.pop() {
		i.wg.Wait()
		it.waste.push(i)
	}

	it.lastKey = it.lastKey[:0]
	if len(key) == 0 {
		key = it.opt.Prefix
	}
	if len(key) == 0 {
		it.iitr.Rewind()
		it.prefetch()
		return
	}

	if !it.opt.Reverse {
		key = y.KeyWithTs(key, it.txn.readTs)
	} else {
		key = y.KeyWithTs(key, 0)
	}
	it.iitr.Seek(key)
	it.prefetch()
}
func (it *Iterator) Seek(key []byte) {
	for i := it.data.pop(); i != nil; i = it.data.pop() {
		i.wg.Wait()
		it.waste.push(i)
	}

	it.lastKey = it.lastKey[:0]
	if len(key) == 0 {
		key = it.opt.Prefix
	}
	if len(key) == 0 {
		it.iitr.Rewind()
		it.prefetch()
		return
	}

	if !it.opt.Reverse {
		key = y.KeyWithTs(key, it.txn.readTs)
	} else {
		key = y.KeyWithTs(key, 0)
	}
	it.iitr.Seek(key)
	it.prefetch()
}
func ( it * Iterator ) Seek ( key [ ] byte ) { for i := it . data . pop ( ) ; i != nil ; i = it . data . pop ( ) { i . wg . Wait ( ) it . waste . push ( i ) } it . lastKey = it . lastKey [ : 0 ] if len ( key ) == 0 { key = it . opt . Prefix } if len ( key ) == 0 { it . iitr . Rewind ( ) it . prefetch ( ) return } if ! it . opt . Reverse { key = y . KeyWithTs ( key , it . txn . readTs ) } else { key = y . KeyWithTs ( key , 0 ) } it . iitr . Seek ( key ) it . prefetch ( ) }
// Seek would seek to the provided key if present. If absent, it would seek to the next smallest key
// greater than the provided key if iterating in the forward direction. Behavior would be reversed if
// iterating backwards.
Seek would seek to the provided key if present . If absent it would seek to the next smallest key greater than the provided key if iterating in the forward direction . Behavior would be reversed if iterating backwards .