diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-07-10 13:00:07 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-07-10 13:00:07 +0200 |
commit | ab534827bb9ae48d8de413f007ccfd3aa157634c (patch) | |
tree | ba4d9d030fc08f1b98c9d498fb616424a3b7f776 /searchlib | |
parent | d097d374cbc284b2a0a8459f47e87f9b83c68034 (diff) |
Change createIterator member functions to return unique ptr to
search iterator.
Diffstat (limited to 'searchlib')
19 files changed, 60 insertions, 69 deletions
diff --git a/searchlib/src/tests/diskindex/diskindex/diskindex_test.cpp b/searchlib/src/tests/diskindex/diskindex/diskindex_test.cpp index d153481ef36..f87096aa1e3 100644 --- a/searchlib/src/tests/diskindex/diskindex/diskindex_test.cpp +++ b/searchlib/src/tests/diskindex/diskindex/diskindex_test.cpp @@ -228,9 +228,8 @@ DiskIndexTest::requireThatWeCanReadPostingList() { // field 'f1' LookupResult::UP r = _index->lookup(0, "w1"); PostingListHandle::UP h = _index->readPostingList(*r); - SearchIterator * sb = h->createIterator(r->counts, mda); + auto sb = h->createIterator(r->counts, mda); EXPECT_EQ(SimpleResult({1,3}), SimpleResult().search(*sb)); - delete sb; } } diff --git a/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.cpp b/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.cpp index 4ed72c2f8c3..8a987c49544 100644 --- a/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.cpp @@ -53,7 +53,7 @@ ZcPosOccRandRead::~ZcPosOccRandRead() } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> ZcPosOccRandRead:: createIterator(const PostingListCounts &counts, const PostingListHandle &handle, @@ -67,7 +67,7 @@ createIterator(const PostingListCounts &counts, assert(handle._bitOffsetMem <= handle._bitOffset); if (handle._bitLength == 0) { - return new search::queryeval::EmptySearch; + return std::make_unique<search::queryeval::EmptySearch>(); } const char *cmem = static_cast<const char *>(handle._mem); @@ -80,7 +80,7 @@ createIterator(const PostingListCounts &counts, handle._bitOffsetMem) & 63; Position start(mem, bitOffset); - return create_zc_posocc_iterator(true, counts, start, handle._bitLength, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(true, counts, start, handle._bitLength, _posting_params, _fieldsParams, matchData); } diff --git a/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.h b/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.h index f23af15f72d..db7806beadd 100644 --- a/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.h +++ b/searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.h @@ -33,7 +33,7 @@ public: * Create iterator for single word. Semantic lifetime of counts and * handle must exceed lifetime of iterator. */ - queryeval::SearchIterator * + std::unique_ptr<queryeval::SearchIterator> createIterator(const PostingListCounts &counts, const PostingListHandle &handle, const fef::TermFieldMatchDataArray &matchData, bool usebitVector) const override; diff --git a/searchlib/src/vespa/searchlib/index/postinglistfile.cpp b/searchlib/src/vespa/searchlib/index/postinglistfile.cpp index acb1d40e353..7bb724f0fe6 100644 --- a/searchlib/src/vespa/searchlib/index/postinglistfile.cpp +++ b/searchlib/src/vespa/searchlib/index/postinglistfile.cpp @@ -3,6 +3,7 @@ #include "postinglistfile.h" #include "postinglistparams.h" #include <vespa/fastos/file.h> +#include <vespa/searchlib/queryeval/searchiterator.h> namespace search::index { @@ -94,7 +95,7 @@ PostingListFileRandReadPassThrough::~PostingListFileRandReadPassThrough() } } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> PostingListFileRandReadPassThrough:: createIterator(const PostingListCounts &counts, const PostingListHandle &handle, diff --git a/searchlib/src/vespa/searchlib/index/postinglistfile.h b/searchlib/src/vespa/searchlib/index/postinglistfile.h index 17bfb47b812..93d0dd362f7 100644 --- a/searchlib/src/vespa/searchlib/index/postinglistfile.h +++ b/searchlib/src/vespa/searchlib/index/postinglistfile.h @@ -147,7 +147,7 @@ public: * didn't cover the whole word, probably need access to higher level * API above caches. */ - virtual search::queryeval::SearchIterator * + virtual std::unique_ptr<search::queryeval::SearchIterator> createIterator(const PostingListCounts &counts, const PostingListHandle &handle, const search::fef::TermFieldMatchDataArray &matchData, @@ -194,7 +194,7 @@ public: PostingListFileRandReadPassThrough(PostingListFileRandRead *lower, bool ownLower); ~PostingListFileRandReadPassThrough(); - search::queryeval::SearchIterator * + std::unique_ptr<search::queryeval::SearchIterator> createIterator(const PostingListCounts &counts, const PostingListHandle &handle, const search::fef::TermFieldMatchDataArray &matchData, diff --git a/searchlib/src/vespa/searchlib/index/postinglisthandle.cpp b/searchlib/src/vespa/searchlib/index/postinglisthandle.cpp index 82737531d69..c8cccd89207 100644 --- a/searchlib/src/vespa/searchlib/index/postinglisthandle.cpp +++ b/searchlib/src/vespa/searchlib/index/postinglisthandle.cpp @@ -2,10 +2,11 @@ #include "postinglisthandle.h" #include "postinglistfile.h" +#include <vespa/searchlib/queryeval/searchiterator.h> namespace search::index { -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> PostingListHandle::createIterator(const PostingListCounts &counts, const search::fef::TermFieldMatchDataArray &matchData, bool useBitVector) const diff --git a/searchlib/src/vespa/searchlib/index/postinglisthandle.h b/searchlib/src/vespa/searchlib/index/postinglisthandle.h index 9a4ec212636..1f3a72a876f 100644 --- a/searchlib/src/vespa/searchlib/index/postinglisthandle.h +++ b/searchlib/src/vespa/searchlib/index/postinglisthandle.h @@ -61,7 +61,7 @@ public: * didn't cover the whole word, probably need access to higher level * API above caches. */ - search::queryeval::SearchIterator * + std::unique_ptr<search::queryeval::SearchIterator> createIterator(const PostingListCounts &counts, const search::fef::TermFieldMatchDataArray &matchData, bool useBitVector=false) const; diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fake_match_loop.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fake_match_loop.cpp index 95f07bc3191..bb55593f8e3 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fake_match_loop.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fake_match_loop.cpp @@ -32,7 +32,7 @@ public: _tfmda.add(&_md); _md.setNeedNormalFeatures(posting.enable_unpack_normal_features()); _md.setNeedInterleavedFeatures(posting.enable_unpack_interleaved_features()); - _itr.reset(posting.createIterator(_tfmda)); + _itr = posting.createIterator(_tfmda); } ~IteratorState() {} diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp index 9521bed7827..358008f389a 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp @@ -717,23 +717,16 @@ FakeFilterOccEGCompressed64ArrayIterator<bigEndian>::doUnpack(uint32_t docId) } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> FakeEGCompr64FilterOcc:: createIterator(const fef::TermFieldMatchDataArray &matchData) const { const uint64_t *arr = _compressed.first; - if (_bigEndian) - return new FakeFilterOccEGCompressed64ArrayIterator<true>(arr, - 0, - _hitDocs, - _lastDocId, - matchData); - else - return new FakeFilterOccEGCompressed64ArrayIterator<false>(arr, - 0, - _hitDocs, - _lastDocId, - matchData); + if (_bigEndian) { + return std::make_unique<FakeFilterOccEGCompressed64ArrayIterator<true>>(arr, 0, _hitDocs, _lastDocId, matchData); + } else { + return std::make_unique<FakeFilterOccEGCompressed64ArrayIterator<false>>(arr, 0, _hitDocs, _lastDocId, matchData); + } } @@ -766,7 +759,7 @@ class FakeEGCompr64SkipFilterOcc : public FakeEGCompr64FilterOcc public: FakeEGCompr64SkipFilterOcc(const FakeWord &fw); ~FakeEGCompr64SkipFilterOcc(); - search::queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<search::queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; @@ -1451,7 +1444,7 @@ FakeFilterOccEGCompressed64SkipArrayIterator<doSkip>::doUnpack(uint32_t docId) template <bool doSkip> -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> FakeEGCompr64SkipFilterOcc<doSkip>:: createIterator(const fef::TermFieldMatchDataArray &matchData) const { @@ -1478,15 +1471,16 @@ createIterator(const fef::TermFieldMatchDataArray &matchData) const const uint64_t *l2SkipArr = _l2SkipCompressed.first; const uint64_t *l3SkipArr = _l3SkipCompressed.first; const uint64_t *l4SkipArr = _l4SkipCompressed.first; - return new FakeFilterOccEGCompressed64SkipArrayIterator<doSkip>(docIdBits.getCompr(), - docIdBits.getBitOffset(), - _lastDocId, - l1SkipArr, 0, - l2SkipArr, 0, - l3SkipArr, 0, - l4SkipArr, 0, - getName(), - matchData); + return std::make_unique<FakeFilterOccEGCompressed64SkipArrayIterator<doSkip>> + (docIdBits.getCompr(), + docIdBits.getBitOffset(), + _lastDocId, + l1SkipArr, 0, + l2SkipArr, 0, + l3SkipArr, 0, + l4SkipArr, 0, + getName(), + matchData); } } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.h index 6e398a2f0b0..2ef91c70921 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.h @@ -58,7 +58,7 @@ public: int lowLevelSinglePostingScanUnpack() const override; int lowLevelAndPairPostingScan(const FakePosting &rhs) const override; int lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const override; - queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp index a412a779006..54710a85a04 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp @@ -176,13 +176,11 @@ FakeFilterOccArrayIterator::doUnpack(uint32_t docId) } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> FakeFilterOcc:: createIterator(const fef::TermFieldMatchDataArray &matchData) const { - return new FakeFilterOccArrayIterator(&*_uncompressed.begin(), - &*_uncompressed.end(), - matchData); + return std::make_unique<FakeFilterOccArrayIterator>(&*_uncompressed.begin(), &*_uncompressed.end(), matchData); } } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.h index ed0855cfb87..c05dc9db342 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.h @@ -30,7 +30,7 @@ public: int lowLevelSinglePostingScanUnpack() const override; int lowLevelAndPairPostingScan(const FakePosting &rhs) const override; int lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const override; - queryeval::SearchIterator * createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; } // namespace fakedata diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp index 99d0fb3b3f1..48820b58a7c 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp @@ -129,14 +129,14 @@ lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> FakeMemTreeOcc:: createIterator(const fef::TermFieldMatchDataArray &matchData) const { return memoryindex::make_search_iterator<false>(_tree.begin(_allocator), _mgr._featureStore, _packedIndex, - matchData).release(); + matchData); } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h index ea8699d94b2..28698e29cf9 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h @@ -176,7 +176,7 @@ public: int lowLevelSinglePostingScanUnpack() const override; int lowLevelAndPairPostingScan(const FakePosting &rhs) const override; int lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const override; - queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakeposting.h b/searchlib/src/vespa/searchlib/test/fakedata/fakeposting.h index 7e32fcc31ad..56a54b2cf85 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakeposting.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakeposting.h @@ -72,7 +72,7 @@ public: /* * Iterator factory, for current query evaluation framework. */ - virtual search::queryeval::SearchIterator * + virtual std::unique_ptr<search::queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const = 0; const std::string &getName() const diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp index dc6f546fad0..2f9714f1638 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp @@ -237,14 +237,12 @@ FakeFilterOccZCBArrayIterator::doUnpack(uint32_t docId) } -search::queryeval::SearchIterator * +std::unique_ptr<search::queryeval::SearchIterator> FakeZcbFilterOcc:: createIterator(const fef::TermFieldMatchDataArray &matchData) const { const uint8_t *arr = &*_compressed.begin(); - return new FakeFilterOccZCBArrayIterator(arr, - _hitDocs, - matchData); + return std::make_unique<FakeFilterOccZCBArrayIterator>(arr, _hitDocs, matchData); } } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.h index 87d25cb6761..599b9c83d76 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.h @@ -29,7 +29,7 @@ public: int lowLevelSinglePostingScanUnpack() const override; int lowLevelAndPairPostingScan(const FakePosting &rhs) const override; int lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const override; - queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; } // namespace fakedata diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp index 809746a87e6..dc2791fa4f6 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp @@ -502,11 +502,11 @@ FakeFilterOccZCArrayIterator::doUnpack(uint32_t docId) } -SearchIterator * +std::unique_ptr<SearchIterator> FakeZcFilterOcc:: createIterator(const TermFieldMatchDataArray &matchData) const { - return new FakeFilterOccZCArrayIterator(_compressed.first, 0, _posting_params._doc_id_limit, matchData); + return std::make_unique<FakeFilterOccZCArrayIterator>(_compressed.first, 0, _posting_params._doc_id_limit, matchData); } class FakeZcSkipFilterOcc : public FakeZcFilterOcc @@ -516,7 +516,7 @@ public: FakeZcSkipFilterOcc(const FakeWord &fw); ~FakeZcSkipFilterOcc() override; - SearchIterator *createIterator(const TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<SearchIterator> createIterator(const TermFieldMatchDataArray &matchData) const override; }; static FPFactoryInit @@ -534,10 +534,10 @@ FakeZcSkipFilterOcc::FakeZcSkipFilterOcc(const FakeWord &fw) FakeZcSkipFilterOcc::~FakeZcSkipFilterOcc() = default; -SearchIterator * +std::unique_ptr<SearchIterator> FakeZcSkipFilterOcc::createIterator(const TermFieldMatchDataArray &matchData) const { - return create_zc_posocc_iterator(true, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(true, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData); } @@ -550,7 +550,7 @@ public: ~FakeEGCompr64PosOcc() override; size_t bitSize() const override; bool hasWordPositions() const override; - SearchIterator *createIterator(const TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<SearchIterator> createIterator(const TermFieldMatchDataArray &matchData) const override; }; @@ -587,11 +587,11 @@ FakeEGCompr64PosOcc<bigEndian>::hasWordPositions() const template <bool bigEndian> -SearchIterator * +std::unique_ptr<SearchIterator> FakeEGCompr64PosOcc<bigEndian>:: createIterator(const TermFieldMatchDataArray &matchData) const { - return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData); } @@ -604,7 +604,7 @@ public: ~FakeEG2Compr64PosOcc() override; size_t bitSize() const override; bool hasWordPositions() const override; - SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; @@ -642,11 +642,11 @@ FakeEG2Compr64PosOcc<bigEndian>::hasWordPositions() const template <bool bigEndian> -SearchIterator * +std::unique_ptr<SearchIterator> FakeEG2Compr64PosOcc<bigEndian>:: createIterator(const TermFieldMatchDataArray &matchData) const { - return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData); } @@ -660,7 +660,7 @@ public: size_t bitSize() const override; bool hasWordPositions() const override; - SearchIterator *createIterator(const TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<SearchIterator> createIterator(const TermFieldMatchDataArray &matchData) const override; }; @@ -699,11 +699,11 @@ FakeZcSkipPosOcc<bigEndian>::hasWordPositions() const template <bool bigEndian> -SearchIterator * +std::unique_ptr<SearchIterator> FakeZcSkipPosOcc<bigEndian>:: createIterator(const TermFieldMatchDataArray &matchData) const { - return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData); } @@ -720,7 +720,7 @@ public: ~FakeZc4SkipPosOcc() override; size_t bitSize() const override; bool hasWordPositions() const override; - SearchIterator *createIterator(const TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<SearchIterator> createIterator(const TermFieldMatchDataArray &matchData) const override; bool enable_unpack_normal_features() const override { return _unpack_normal_features; } bool enable_unpack_interleaved_features() const override { return _unpack_interleaved_features; } }; @@ -766,7 +766,7 @@ FakeZc4SkipPosOcc<bigEndian>::hasWordPositions() const template <bool bigEndian> -SearchIterator * +std::unique_ptr<SearchIterator> FakeZc4SkipPosOcc<bigEndian>:: createIterator(const TermFieldMatchDataArray &matchData) const { @@ -777,7 +777,7 @@ createIterator(const TermFieldMatchDataArray &matchData) const assert(!_unpack_normal_features); assert(!_unpack_interleaved_features); } -return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData).release(); + return create_zc_posocc_iterator(bigEndian, _counts, Position(_compressed.first, 0), _compressedBits, _posting_params, _fieldsParams, matchData); } template <bool bigEndian> diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.h index bcdd780e1e4..7d0670f993b 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.h @@ -65,7 +65,7 @@ public: int lowLevelSinglePostingScanUnpack() const override; int lowLevelAndPairPostingScan(const FakePosting &rhs) const override; int lowLevelAndPairPostingScanUnpack(const FakePosting &rhs) const override; - queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override; + std::unique_ptr<queryeval::SearchIterator> createIterator(const fef::TermFieldMatchDataArray &matchData) const override; }; } |