func query(db storage.Engine, s int64, yield func(storage.Iterator)) { sb := bytes.NewBuffer(nil) binary.Write(sb, binary.BigEndian, s) binary.Write(sb, binary.BigEndian, int64(0)) binary.Write(sb, binary.BigEndian, int64(0)) eb := bytes.NewBuffer(nil) binary.Write(eb, binary.BigEndian, s) binary.Write(eb, binary.BigEndian, int64(-1)) binary.Write(eb, binary.BigEndian, int64(-1)) itr := db.Iterator() defer itr.Close() count := 0 for itr.Seek(sb.Bytes()); itr.Valid(); itr.Next() { key := itr.Key() if bytes.Compare(key, eb.Bytes()) > 0 { break } count++ yield(itr) } }