mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-10-30 07:17:07 +00:00
NOBUG Switched to 64 bits addr
This commit is contained in:
@@ -159,7 +159,7 @@ impl<'a> FieldSerializer<'a> {
|
||||
let (filepos, offset) = self.positions_serializer_opt
|
||||
.as_ref()
|
||||
.map(|positions_serializer| positions_serializer.addr())
|
||||
.unwrap_or((0u32, 0u8));
|
||||
.unwrap_or((0u64, 0u8));
|
||||
TermInfo {
|
||||
doc_freq: 0,
|
||||
postings_offset: self.postings_serializer.addr(),
|
||||
@@ -311,8 +311,8 @@ impl<W: Write> PostingsSerializer<W> {
|
||||
self.postings_write.flush()
|
||||
}
|
||||
|
||||
fn addr(&self) -> u32 {
|
||||
self.postings_write.written_bytes() as u32
|
||||
fn addr(&self) -> u64 {
|
||||
self.postings_write.written_bytes() as u64
|
||||
}
|
||||
|
||||
fn clear(&mut self) {
|
||||
@@ -337,8 +337,8 @@ impl<W: Write> PositionSerializer<W> {
|
||||
}
|
||||
}
|
||||
|
||||
fn addr(&self) -> (u32, u8) {
|
||||
(self.write.written_bytes() as u32, self.buffer.len() as u8)
|
||||
fn addr(&self) -> (u64, u8) {
|
||||
(self.write.written_bytes() as u64, self.buffer.len() as u8)
|
||||
}
|
||||
|
||||
fn write_block(&mut self) -> io::Result<()> {
|
||||
|
||||
@@ -16,9 +16,9 @@ pub struct TermInfo {
|
||||
/// Number of documents in the segment containing the term
|
||||
pub doc_freq: u32,
|
||||
/// Offset within the postings (`.idx`) file.
|
||||
pub postings_offset: u32,
|
||||
pub postings_offset: u64,
|
||||
/// Offset within the position (`.pos`) file.
|
||||
pub positions_offset: u32,
|
||||
pub positions_offset: u64,
|
||||
/// Offset within the position block.
|
||||
pub positions_inner_offset: u8,
|
||||
}
|
||||
@@ -33,8 +33,8 @@ impl BinarySerializable for TermInfo {
|
||||
|
||||
fn deserialize<R: io::Read>(reader: &mut R) -> io::Result<Self> {
|
||||
let doc_freq = u32::deserialize(reader)?;
|
||||
let postings_offset = u32::deserialize(reader)?;
|
||||
let positions_offset = u32::deserialize(reader)?;
|
||||
let postings_offset = u64::deserialize(reader)?;
|
||||
let positions_offset = u64::deserialize(reader)?;
|
||||
let positions_inner_offset = u8::deserialize(reader)?;
|
||||
Ok(TermInfo {
|
||||
doc_freq,
|
||||
|
||||
+5
-5
@@ -27,10 +27,10 @@ impl StoreReader {
|
||||
let (data_source, offset_index_source, max_doc) = split_source(data);
|
||||
StoreReader {
|
||||
data: data_source,
|
||||
offset_index_source: offset_index_source,
|
||||
offset_index_source,
|
||||
current_block_offset: RefCell::new(usize::max_value()),
|
||||
current_block: RefCell::new(Vec::new()),
|
||||
max_doc: max_doc,
|
||||
max_doc,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ impl StoreReader {
|
||||
let block_length = u32::deserialize(&mut cursor).unwrap();
|
||||
let block_array: &[u8] = &total_buffer
|
||||
[(block_offset + 4 as usize)..(block_offset + 4 + block_length as usize)];
|
||||
let mut lz4_decoder = try!(lz4::Decoder::new(block_array));
|
||||
let mut lz4_decoder = lz4::Decoder::new(block_array)?;
|
||||
*self.current_block_offset.borrow_mut() = usize::max_value();
|
||||
try!(lz4_decoder.read_to_end(&mut current_block_mut).map(|_| ()));
|
||||
lz4_decoder.read_to_end(&mut current_block_mut).map(|_| ())?;
|
||||
*self.current_block_offset.borrow_mut() = block_offset;
|
||||
}
|
||||
Ok(())
|
||||
@@ -70,7 +70,7 @@ impl StoreReader {
|
||||
let current_block_mut = self.current_block.borrow_mut();
|
||||
let mut cursor = ¤t_block_mut[..];
|
||||
for _ in first_doc_id..doc_id {
|
||||
let block_length = try!(u32::deserialize(&mut cursor));
|
||||
let block_length = u32::deserialize(&mut cursor)?;
|
||||
cursor = &cursor[block_length as usize..];
|
||||
}
|
||||
u32::deserialize(&mut cursor)?;
|
||||
|
||||
+11
-12
@@ -133,7 +133,6 @@ pub trait TermStreamer: Sized {
|
||||
fn advance(&mut self) -> bool;
|
||||
|
||||
/// Accesses the current key.
|
||||
///
|
||||
/// `.key()` should return the key that was returned
|
||||
/// by the `.next()` method.
|
||||
///
|
||||
@@ -204,11 +203,11 @@ mod tests {
|
||||
|
||||
const BLOCK_SIZE: usize = 1_500;
|
||||
|
||||
fn make_term_info(val: u32) -> TermInfo {
|
||||
fn make_term_info(val: u64) -> TermInfo {
|
||||
TermInfo {
|
||||
doc_freq: val,
|
||||
positions_offset: val * 2u32,
|
||||
postings_offset: val * 3u32,
|
||||
doc_freq: val as u32,
|
||||
positions_offset: val * 2u64,
|
||||
postings_offset: val * 3u64,
|
||||
positions_inner_offset: 5u8,
|
||||
}
|
||||
}
|
||||
@@ -223,10 +222,10 @@ mod tests {
|
||||
let mut term_dictionary_builder =
|
||||
TermDictionaryBuilderImpl::new(write, field_type).unwrap();
|
||||
term_dictionary_builder
|
||||
.insert("abc".as_bytes(), &make_term_info(34u32))
|
||||
.insert("abc".as_bytes(), &make_term_info(34u64))
|
||||
.unwrap();
|
||||
term_dictionary_builder
|
||||
.insert("abcd".as_bytes(), &make_term_info(346u32))
|
||||
.insert("abcd".as_bytes(), &make_term_info(346u64))
|
||||
.unwrap();
|
||||
term_dictionary_builder.finish().unwrap();
|
||||
}
|
||||
@@ -312,7 +311,7 @@ mod tests {
|
||||
TermDictionaryBuilderImpl::new(vec![], field_type).unwrap();
|
||||
for &(ref id, ref i) in &ids {
|
||||
term_dictionary_builder
|
||||
.insert(id.as_bytes(), &make_term_info(*i))
|
||||
.insert(id.as_bytes(), &make_term_info(*i as u64))
|
||||
.unwrap();
|
||||
}
|
||||
term_dictionary_builder.finish().unwrap()
|
||||
@@ -325,7 +324,7 @@ mod tests {
|
||||
while let Some((streamer_k, streamer_v)) = streamer.next() {
|
||||
let &(ref key, ref v) = &ids[i];
|
||||
assert_eq!(streamer_k.as_ref(), key.as_bytes());
|
||||
assert_eq!(streamer_v, &make_term_info(*v));
|
||||
assert_eq!(streamer_v, &make_term_info(*v as u64));
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
@@ -377,7 +376,7 @@ mod tests {
|
||||
TermDictionaryBuilderImpl::new(vec![], field_type).unwrap();
|
||||
for &(ref id, ref i) in &ids {
|
||||
term_dictionary_builder
|
||||
.insert(id.as_bytes(), &make_term_info(*i))
|
||||
.insert(id.as_bytes(), &make_term_info(*i as u64))
|
||||
.unwrap();
|
||||
}
|
||||
term_dictionary_builder.finish().unwrap()
|
||||
@@ -398,7 +397,7 @@ mod tests {
|
||||
let &(ref key, ref v) = &ids[i + j];
|
||||
assert_eq!(str::from_utf8(streamer_k.as_ref()).unwrap(), key);
|
||||
assert_eq!(streamer_v.doc_freq, *v);
|
||||
assert_eq!(streamer_v, &make_term_info(*v));
|
||||
assert_eq!(streamer_v, &make_term_info(*v as u64));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -447,7 +446,7 @@ mod tests {
|
||||
for i in 0u8..10u8 {
|
||||
let number_arr = [i; 1];
|
||||
term_dictionary_builder
|
||||
.insert(&number_arr, &make_term_info(i as u32))
|
||||
.insert(&number_arr, &make_term_info(i as u64))
|
||||
.unwrap();
|
||||
}
|
||||
term_dictionary_builder.finish().unwrap()
|
||||
|
||||
Reference in New Issue
Block a user