diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-08-15 15:46:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-15 15:46:04 +0200 |
commit | e4346cd4abe3f7ec8a7b7b1ad734fe67e66e3386 (patch) | |
tree | 2318446f62e8f391273ac925a45eb2dacf67ae77 /searchlib | |
parent | c5f24b200ec24ac96897327baa9e3fef8d3e633f (diff) | |
parent | 2831803a3af7e8802fd34df881d74e39e6ad1e10 (diff) |
Merge pull request #23651 from vespa-engine/balder/test-unpack-rebased
Balder/test unpack rebased
Diffstat (limited to 'searchlib')
3 files changed, 15 insertions, 9 deletions
diff --git a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp index 77cc7920ea8..0fef721a6fa 100644 --- a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp +++ b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp @@ -263,8 +263,11 @@ TEST_F("test Eager Matching Children", MockFixture(5)) { class IteratorChildrenVerifier : public search::test::IteratorChildrenVerifier { private: - SearchIterator::UP create(const std::vector<SearchIterator*> &children) const override { - std::vector<fef::TermFieldMatchData*> no_child_match; + SearchIterator::UP + create(const std::vector<SearchIterator*> &children) const override { + // This is a pragmatic and dirty workaround to make IteratorVerifier test + // not fail on unpack when accessing child match weights + std::vector<fef::TermFieldMatchData*> no_child_match(children.size(), &_tfmd); MatchData::UP no_match_data; return DotProductSearch::create(children, _tfmd, false, no_child_match, _weights, std::move(no_match_data)); } @@ -272,8 +275,9 @@ private: class WeightIteratorChildrenVerifier : public search::test::DwaIteratorChildrenVerifier { private: - SearchIterator::UP create(std::vector<DocumentWeightIterator> && children) const override { - return SearchIterator::UP(DotProductSearch::create(_tfmd, false, _weights, std::move(children))); + SearchIterator::UP + create(std::vector<DocumentWeightIterator> && children) const override { + return DotProductSearch::create(_tfmd, false, _weights, std::move(children)); } }; diff --git a/searchlib/src/vespa/searchlib/queryeval/dot_product_search.cpp b/searchlib/src/vespa/searchlib/queryeval/dot_product_search.cpp index 393140784b0..34cc343b16d 100644 --- a/searchlib/src/vespa/searchlib/queryeval/dot_product_search.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/dot_product_search.cpp @@ -169,9 +169,9 @@ DotProductSearch::create(const std::vector<SearchIterator*> &children, *childMatch[0], weights[0], std::move(md)); } if (childMatch.size() < 128) { - return SearchIterator::UP(new ArrayHeapImpl(tmd, field_is_filter, weights, SearchIteratorPack(children, childMatch, std::move(md)))); + return std::make_unique<ArrayHeapImpl>(tmd, field_is_filter, weights, SearchIteratorPack(children, childMatch, std::move(md))); } - return SearchIterator::UP(new HeapImpl(tmd, field_is_filter, weights, SearchIteratorPack(children, childMatch, std::move(md)))); + return std::make_unique<HeapImpl>(tmd, field_is_filter, weights, SearchIteratorPack(children, childMatch, std::move(md))); } //----------------------------------------------------------------------------- @@ -186,9 +186,9 @@ DotProductSearch::create(TermFieldMatchData &tmd, typedef DotProductSearchImpl<vespalib::LeftHeap, AttributeIteratorPack> HeapImpl; if (iterators.size() < 128) { - return SearchIterator::UP(new ArrayHeapImpl(tmd, field_is_filter, weights, AttributeIteratorPack(std::move(iterators)))); + return std::make_unique<ArrayHeapImpl>(tmd, field_is_filter, weights, AttributeIteratorPack(std::move(iterators))); } - return SearchIterator::UP(new HeapImpl(tmd, field_is_filter, weights, AttributeIteratorPack(std::move(iterators)))); + return std::make_unique<HeapImpl>(tmd, field_is_filter, weights, AttributeIteratorPack(std::move(iterators))); } //----------------------------------------------------------------------------- diff --git a/searchlib/src/vespa/searchlib/test/initrange.cpp b/searchlib/src/vespa/searchlib/test/initrange.cpp index 5154a8abb08..d082bfd4e78 100644 --- a/searchlib/src/vespa/searchlib/test/initrange.cpp +++ b/searchlib/src/vespa/searchlib/test/initrange.cpp @@ -72,7 +72,7 @@ InitRangeVerifier::InitRangeVerifier() : } } -InitRangeVerifier::~InitRangeVerifier() { } +InitRangeVerifier::~InitRangeVerifier() = default; InitRangeVerifier::DocIds InitRangeVerifier::invert(const DocIds & docIds, uint32_t docIdlimit) @@ -173,6 +173,7 @@ InitRangeVerifier::searchRelaxed(SearchIterator & it, Range range) for (uint32_t docid = range.first; docid < range.second; ++docid) { if (it.seek(docid)) { result.emplace_back(docid); + it.unpack(docid); } } return result; @@ -185,6 +186,7 @@ InitRangeVerifier::searchStrict(SearchIterator & it, Range range) it.initRange(range.first, range.second); for (uint32_t docId = it.seekFirst(range.first); docId < range.second; docId = it.seekNext(docId + 1)) { result.push_back(docId); + it.unpack(docId); } return result; } |