A cursor is a helper object to iterate through an index.
For indexes are sorted (such as the b tree index), it can iterate
to the very end of the index. For other indexes that don't support
that (such as a hash index), only one row is returned.
The cursor is initially positioned before the first row, that means
next() must be called before accessing data.