use DeltaReader directly to implement Dictionnary::ord_to_term (#1928)

This commit is contained in:
trinity-1686a
2023-03-08 03:15:56 +01:00
committed by GitHub
parent c0a5b28fd3
commit fcf5a25d93

View File

@@ -279,14 +279,14 @@ impl<TSSTable: SSTable> Dictionary<TSSTable> {
let first_ordinal = block_addr.first_ordinal;
// then search inside that block only
let mut sstable_reader = self.sstable_reader_block(block_addr)?;
let mut sstable_delta_reader = self.sstable_delta_reader_block(block_addr)?;
for _ in first_ordinal..=ord {
if !sstable_reader.advance()? {
if !sstable_delta_reader.advance()? {
return Ok(false);
}
bytes.truncate(sstable_delta_reader.common_prefix_len());
bytes.extend_from_slice(sstable_delta_reader.suffix());
}
bytes.clear();
bytes.extend_from_slice(sstable_reader.key());
Ok(true)
}