X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=plocate.cpp;h=c47c6480465a7f9e70472e7cbac984e3c6ddc78d;hb=498466c6434e479cd973fe7655b4feb51dd2c378;hp=6fe46a4f77e36a1aa1f75ec2fc7e2036079b25fc;hpb=63fd24efd774f1ed3f5dab82b934f35b7b039557;p=plocate diff --git a/plocate.cpp b/plocate.cpp index 6fe46a4..c47c648 100644 --- a/plocate.cpp +++ b/plocate.cpp @@ -105,6 +105,10 @@ Corpus::Corpus(int fd, IOUringEngine *engine) hdr.zstd_dictionary_offset_bytes = 0; hdr.zstd_dictionary_length_bytes = 0; } + if (hdr.max_version < 2) { + // This too. (We ignore the other max_version 2 fields.) + hdr.check_visibility = true; + } } Corpus::~Corpus() @@ -230,7 +234,7 @@ void scan_file_block(const vector &needles, string_view compressed, size_t scan_docids(const vector &needles, const vector &docids, const Corpus &corpus, IOUringEngine *engine) { Serializer docids_in_order; - AccessRXCache access_rx_cache(engine); + AccessRXCache access_rx_cache(engine, corpus.get_hdr().check_visibility); atomic matched{ 0 }; for (size_t i = 0; i < docids.size(); ++i) { uint32_t docid = docids[i]; @@ -306,7 +310,7 @@ uint64_t scan_all_docids(const vector &needles, int fd, const Corpus &co } } - AccessRXCache access_rx_cache(nullptr); + AccessRXCache access_rx_cache(nullptr, corpus.get_hdr().check_visibility); Serializer serializer; uint32_t num_blocks = corpus.get_num_filename_blocks(); unique_ptr offsets(new uint64_t[num_blocks + 1]);