diff --git a/src/store/index/block.rs b/src/store/index/block.rs index 1d86d68aca..ae969110cf 100644 --- a/src/store/index/block.rs +++ b/src/store/index/block.rs @@ -90,7 +90,7 @@ impl CheckpointBlock { return Ok(()); } let mut doc = read_u32_vint(data); - let mut start_offset = read_u32_vint(data) as usize; + let mut start_offset = VInt::deserialize_u64(data)? as usize; for _ in 0..len { let num_docs = read_u32_vint(data); let block_num_bytes = read_u32_vint(data) as usize; @@ -147,6 +147,15 @@ mod tests { test_aux_ser_deser(&checkpoints) } + #[test] + fn test_block_serialize_large_byte_range() -> io::Result<()> { + let checkpoints = vec![Checkpoint { + doc_range: 10..12, + byte_range: 8_000_000_000..9_000_000_000, + }]; + test_aux_ser_deser(&checkpoints) + } + #[test] fn test_block_serialize() -> io::Result<()> { let offsets: Vec = (0..11).map(|i| i * i * i).collect();