aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-11-05 10:49:57 +0100
committerHenning Baldersheim <balder@oath.com>2018-11-05 10:49:57 +0100
commitb06d2c411b95ab40dce5a6f4b5f28bb23a573ac7 (patch)
tree4dcb0b9c3ddf0a47886f73e100f3f3b117e45a87 /searchlib
parentfddd6e1af45c1e4b820a2c5c97f73bcad040229d (diff)
Avoid double bookeeping.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributeiterators.h10
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp14
-rw-r--r--searchlib/src/vespa/searchlib/attribute/postinglisttraits.h15
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;
};