summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-07-10 13:00:07 +0200
committerTor Egge <Tor.Egge@online.no>2023-07-10 13:00:07 +0200
commitab534827bb9ae48d8de413f007ccfd3aa157634c (patch)
treeba4d9d030fc08f1b98c9d498fb616424a3b7f776 /searchlib
parentd097d374cbc284b2a0a8459f47e87f9b83c68034 (diff)
Change createIterator member functions to return unique ptr to
search iterator.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/diskindex/diskindex/diskindex_test.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/zcposoccrandread.h2
-rw-r--r--searchlib/src/vespa/searchlib/index/postinglistfile.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/index/postinglistfile.h4
-rw-r--r--searchlib/src/vespa/searchlib/index/postinglisthandle.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/index/postinglisthandle.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fake_match_loop.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.cpp42
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakeegcompr64filterocc.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakefilterocc.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakeposting.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakezcbfilterocc.h2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.cpp34
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakezcfilterocc.h2
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;
};
}