Iterator iterates over a DB's key/value pairs in key order.

When encouter an error any 'seeks method' will return false and will yield no key/value pairs. The error can be queried by calling the Error method. Calling Release is still necessary.

An iterator must be released after use, but it is not necessary to read an iterator until exhaustion. Also, an iterator is not necessarily goroutine-safe, but it is safe to use multiple iterators concurrently, with each in a dedicated goroutine.