Makes RocksDB reads faster
Avoids an unneeded copy
@@ -449,11 +449,14 @@ impl Iterator for SPOGIndexIterator {
fn next(&mut self) -> Option<Result<EncodedQuad>> {
self.iter.next();
+ unsafe {
+ //This is safe because we are not keeping the buffer
self.iter
- .key()
+ .key_inner()
.map(|buffer| Cursor::new(buffer).read_spog_quad())
}
}
+}
pub struct POSGIndexIterator {
iter: DBRawIterator,
@@ -464,11 +467,14 @@ impl Iterator for POSGIndexIterator {
fn next(&mut self) -> Option<Result<EncodedQuad>> {
self.iter.next();
+ unsafe {
+ //This is safe because we are not keeping the buffer
self.iter
- .key()
+ .key_inner()
.map(|buffer| Cursor::new(buffer).read_posg_quad())
}
}
+}
pub struct OSPGIndexIterator {
iter: DBRawIterator,
@@ -479,11 +485,14 @@ impl Iterator for OSPGIndexIterator {
fn next(&mut self) -> Option<Result<EncodedQuad>> {
self.iter.next();
+ unsafe {
+ //This is safe because we are not keeping the buffer
self.iter
- .key()
+ .key_inner()
.map(|buffer| Cursor::new(buffer).read_ospg_quad())
}
}
+}
pub struct FilteringEncodedQuadsIterator<I: Iterator<Item = Result<EncodedQuad>>> {
iter: I,
