Giter Club home page Giter Club logo

Comments (5)

fraenky8 avatar fraenky8 commented on May 18, 2024

Hi!

i think you used the for-loop in a "wrong" way. You put a Next()-call at the initializing position. Looking at the godoc for the NewIterator-function, it says

for it.Rewind(); it.Valid(); it.Next() {
...
}

So you can just put the Rewind()-call inside the head of the for-loop.

Still wondering, why a new created iterator must be rewinded, following does not work too, if the Rewind()-call is missing:

it.Rewind()
for it.Valid() {
	kvItem = it.Item()
	fmt.Println("k", string(kvItem.Key()), "v", string(kvItem.Value()), "c", kvItem.Counter())
	it.Next()
}

I would expect a new iterator is just usable after creating it.

from badger.

manishrjain avatar manishrjain commented on May 18, 2024

The reason Rewind must be called, is because we need to know where to start prefetching from. One could use Seek instead of Rewind. In that case, if we automatically start prefetching from the beginning, all that work would need to be abandoned and would cause delays in doing the Seek call.

In short, the reason to specify the initial point is that we do extra work in the background; and we need to know where to begin.

Hope that answers your query.

from badger.

artvel avatar artvel commented on May 18, 2024

Well, the idea was to implement a custom Seek but as far as I understood it's not possible without calling Rewind.

from badger.

manishrjain avatar manishrjain commented on May 18, 2024

You can call Seek directly, then you don't need to call Rewind.

from badger.

artvel avatar artvel commented on May 18, 2024

Yes, but you can't build a Seek like Seek([]byte("contains")). You can only seek the whole key and that's my issue. I thought it would be possible to build a custom seek without Rewind.

from badger.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.