diff options
author | Henning Baldersheim <balder@oath.com> | 2018-11-05 10:49:57 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-11-05 10:49:57 +0100 |
commit | b06d2c411b95ab40dce5a6f4b5f28bb23a573ac7 (patch) | |
tree | 4dcb0b9c3ddf0a47886f73e100f3f3b117e45a87 /searchlib | |
parent | fddd6e1af45c1e4b820a2c5c97f73bcad040229d (diff) |
Avoid double bookeeping.
Diffstat (limited to 'searchlib')
3 files changed, 22 insertions, 17 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h index b84802cb17f..7b73e0d5990 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h +++ b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h @@ -183,11 +183,9 @@ public: }; -using InnerAttributePostingListIterator = btree::BTreeConstIterator<uint32_t, btree::BTreeNoLeafData, btree::NoAggregated, - std::less<uint32_t>, btree::BTreeDefaultTraits>; +using InnerAttributePostingListIterator = attribute::PostingListTraits<btree::BTreeNoLeafData>::const_iterator; -using WeightedInnerAttributePostingListIterator = btree::BTreeConstIterator<uint32_t, int32_t, btree::MinMaxAggregated, - std::less<uint32_t>, btree::BTreeDefaultTraits>; +using WeightedInnerAttributePostingListIterator = attribute::PostingListTraits<int32_t>::const_iterator; template <typename PL> class AttributePostingListIteratorT : public AttributePostingListIterator @@ -203,7 +201,7 @@ private: int32_t getWeight() { return _iterator.getData(); } const queryeval::PostingInfo * getPostingInfo() const override { - return _postingInfoValid ? &_postingInfo : NULL; + return _postingInfoValid ? &_postingInfo : nullptr; } void initRange(uint32_t begin, uint32_t end) override; @@ -238,7 +236,7 @@ private: void setupPostingInfo() { } const queryeval::PostingInfo * getPostingInfo() const override { - return _postingInfoValid ? &_postingInfo : NULL; + return _postingInfoValid ? &_postingInfo : nullptr; } void initRange(uint32_t begin, uint32_t end) override; diff --git a/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp b/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp index e52a393fc11..d1165ed20e1 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp +++ b/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp @@ -236,7 +236,7 @@ FlagAttributeIteratorStrict<SC>::doSeek(uint32_t docId) const Attribute &attr = static_cast<const Attribute &>(sc.attribute()); for (int i = sc._low; (i <= sc._high); ++i) { const BitVector * bv = attr.getBitVector(i); - if ((bv != NULL) && !isAtEnd(docId) && bv->testBit(docId)) { + if ((bv != nullptr) && !isAtEnd(docId) && bv->testBit(docId)) { setDocId(docId); return; } @@ -245,7 +245,7 @@ FlagAttributeIteratorStrict<SC>::doSeek(uint32_t docId) uint32_t minNextBit(search::endDocId); for (int i = sc._low; (i <= sc._high); ++i) { const BitVector * bv = attr.getBitVector(i); - if (bv != NULL && !isAtEnd(docId)) { + if (bv != nullptr && !isAtEnd(docId)) { uint32_t nextBit = bv->getNextTrueBit(docId); minNextBit = std::min(nextBit, minNextBit); } @@ -265,7 +265,7 @@ FlagAttributeIteratorT<SC>::doSeek(uint32_t docId) const Attribute &attr = static_cast<const Attribute &>(sc.attribute()); for (int i = sc._low; (i <= sc._high); ++i) { const BitVector * bv = attr.getBitVector(i); - if ((bv != NULL) && !isAtEnd(docId) && bv->testBit(docId)) { + if ((bv != nullptr) && !isAtEnd(docId) && bv->testBit(docId)) { setDocId(docId); return; } @@ -280,7 +280,7 @@ FlagAttributeIteratorT<SC>::or_hits_into(BitVector &result, uint32_t begin_id) { const Attribute &attr = static_cast<const Attribute &>(sc.attribute()); for (int i = sc._low; (i <= sc._high); ++i) { const BitVector * bv = attr.getBitVector(i); - if (bv != NULL) { + if (bv != nullptr) { result.orWith(*bv); } } @@ -293,7 +293,7 @@ FlagAttributeIteratorT<SC>::and_hits_into(BitVector &result, uint32_t begin_id) const Attribute &attr = static_cast<const Attribute &>(sc.attribute()); if (sc._low == sc._high) { const BitVector * bv = attr.getBitVector(sc._low); - if (bv != NULL) { + if (bv != nullptr) { result.andWith(*bv); } else { // I would expect us never to end up in this case as we are probably @@ -314,14 +314,14 @@ FlagAttributeIteratorT<SC>::get_hits(uint32_t begin_id) { BitVector::UP result; for (;!result && i < sc._high; ++i) { const BitVector * bv = attr.getBitVector(i); - if (bv != NULL) { + if (bv != nullptr) { result = BitVector::create(*bv, begin_id, getEndId()); } } for (; i <= sc._high; ++i) { const BitVector * bv = attr.getBitVector(i); - if (bv != NULL) { + if (bv != nullptr) { result->orWith(*bv); } } diff --git a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h index cd77af6bb1c..a67b881c266 100644 --- a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h +++ b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h @@ -15,11 +15,14 @@ template <> class PostingListTraits<btree::BTreeNoLeafData> { private: + using BTreeTraits = btree::BTreeTraits<16, 16, 10, true>; public: using AggregatedType = btree::NoAggregated; using AggrCalcType = btree::NoAggrCalc; - using PostingStoreBase = btree::BTreeStore<uint32_t, btree::BTreeNoLeafData, AggregatedType, std::less<uint32_t>, - btree::BTreeTraits<16, 16, 10, true>, AggrCalcType> ; + using const_iterator = btree::BTreeConstIterator<uint32_t, btree::BTreeNoLeafData, AggregatedType , + std::less<uint32_t>, BTreeTraits >; + using PostingStoreBase = btree::BTreeStore<uint32_t, btree::BTreeNoLeafData, AggregatedType, + std::less<uint32_t>, BTreeTraits, AggrCalcType> ; using PostingList = PostingStore<btree::BTreeNoLeafData>; using Posting = PostingStoreBase::KeyDataType; }; @@ -27,11 +30,15 @@ public: template <> class PostingListTraits<int32_t> { +private: + using BTreeTraits = btree::BTreeTraits<16, 16, 10, true>; public: using AggregatedType = btree::MinMaxAggregated; using AggrCalcType = btree::MinMaxAggrCalc; - using PostingStoreBase = btree::BTreeStore<uint32_t, int32_t, AggregatedType, std::less<uint32_t>, - btree::BTreeTraits<16, 16, 10, true>, AggrCalcType>; + using const_iterator = btree::BTreeConstIterator<uint32_t, int32_t, AggregatedType , + std::less<uint32_t>, BTreeTraits >; + using PostingStoreBase = btree::BTreeStore<uint32_t, int32_t, AggregatedType, + std::less<uint32_t>, BTreeTraits, AggrCalcType>; using PostingList = PostingStore<int32_t>; using Posting = PostingStoreBase::KeyDataType; }; |