DatabaseModifiedError while iterating on mset
Eric Wong <[email protected]> Wed, 23 Aug 2023 13:53:27 +0000
| Newsgroups | gmane.comp.search.xapian.general |
|---|---|
| Message-ID | <20230823135327.M589756@dcvr> |
I'm already retrying the ->get_mset operations; but now I'm wondering where I'd hit DatabaseModifiedErrors while inside a Xapian::MSetIterator loop. I assume ->get_document is a place where it gets thrown; but once a document is retrieved, can iterating through terms in one document (using TermIterator) also throw DB modified? I'm dumping multiple terms per-document to a stream. While retrying ->get_document seems straightforward, retrying midway through a documents terms would require me to introduce extra checks/buffering to avoid duplicate terms on reopen+retry. I'm actually redoing some stuff using C++; Perl's method dispatch gets awfully slow for this. Thanks.