From 6cabf3d40ff50a6157e7ed340b4cfaf95c3930df Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 5 Nov 2018 15:05:00 +0100 Subject: Clean up so all types related to attribute posting lists are defined in one place. --- .../vespa/searchlib/attribute/attributeiterators.h | 3 +- .../src/vespa/searchlib/attribute/dociditerator.h | 4 +- .../searchlib/attribute/enumhintsearchcontext.cpp | 21 +++------ .../searchlib/attribute/enumhintsearchcontext.h | 13 +----- .../attribute/i_document_weight_attribute.h | 6 +-- .../src/vespa/searchlib/attribute/postingchange.h | 8 ++-- .../src/vespa/searchlib/attribute/postingdata.h | 13 ++++++ .../searchlib/attribute/postinglisttraits.cpp | 24 +++++++++++ .../vespa/searchlib/attribute/postinglisttraits.h | 22 +++------- .../src/vespa/searchlib/btree/btreeaggregator.cpp | 2 - .../src/vespa/searchlib/btree/btreeaggregator.h | 50 ++++++---------------- .../src/vespa/searchlib/btree/btreeaggregator.hpp | 11 +---- .../src/vespa/searchlib/btree/minmaxaggrcalc.h | 12 ++---- .../src/vespa/searchlib/btree/minmaxaggregated.h | 10 ++--- searchlib/src/vespa/searchlib/btree/noaggrcalc.h | 12 ++---- searchlib/src/vespa/searchlib/btree/noaggregated.h | 10 +---- 16 files changed, 86 insertions(+), 135 deletions(-) create mode 100644 searchlib/src/vespa/searchlib/attribute/postingdata.h (limited to 'searchlib/src') diff --git a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h index 7b73e0d5990..0fbcab03ec0 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h +++ b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h @@ -3,9 +3,8 @@ #pragma once #include "dociditerator.h" +#include "postinglisttraits.h" #include -#include -#include namespace search { diff --git a/searchlib/src/vespa/searchlib/attribute/dociditerator.h b/searchlib/src/vespa/searchlib/attribute/dociditerator.h index c69d6035f49..1eb1829f3fd 100644 --- a/searchlib/src/vespa/searchlib/attribute/dociditerator.h +++ b/searchlib/src/vespa/searchlib/attribute/dociditerator.h @@ -2,7 +2,9 @@ #pragma once -#include "postinglisttraits.h" +#include "postingdata.h" +#include +#include namespace search { diff --git a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp index 7cad3f7d1d3..7f74d61c1f7 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp +++ b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp @@ -3,12 +3,9 @@ #include "enumhintsearchcontext.h" #include -namespace search { +namespace search::attribute { using queryeval::SearchIterator; - -namespace attribute { - using btree::BTreeNode; using fef::TermFieldMatchData; @@ -25,9 +22,7 @@ EnumHintSearchContext(const EnumStoreDictBase &dictionary, } -EnumHintSearchContext::~EnumHintSearchContext() -{ -} +EnumHintSearchContext::~EnumHintSearchContext() = default; void @@ -51,14 +46,10 @@ EnumHintSearchContext::fetchPostings(bool strict) } SearchIterator::UP -EnumHintSearchContext::createPostingIterator(TermFieldMatchData *matchData, - bool strict) +EnumHintSearchContext::createPostingIterator(TermFieldMatchData *, bool ) { - (void) matchData; - (void) strict; - return (_uniqueValues == 0u) - ? SearchIterator::UP(new queryeval::EmptySearch()) + ? std::make_unique() : SearchIterator::UP(); } @@ -71,6 +62,4 @@ EnumHintSearchContext::approximateHits() const : std::max(uint64_t(_docIdLimit), _numValues); } -} // namespace attribute - -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h index be315b05a69..7d6d31fce50 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h +++ b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h @@ -3,15 +3,10 @@ #pragma once #include "enumstore.h" -#include "postinglisttraits.h" #include "ipostinglistsearchcontext.h" #include -namespace search -{ - -namespace attribute -{ +namespace search::attribute { /** * Search context helper for enumerated attributes, used to eliminate @@ -42,8 +37,4 @@ protected: unsigned int approximateHits() const override; }; - -} // namespace attribute - -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/attribute/i_document_weight_attribute.h b/searchlib/src/vespa/searchlib/attribute/i_document_weight_attribute.h index 7798d3efb3a..e93635749b3 100644 --- a/searchlib/src/vespa/searchlib/attribute/i_document_weight_attribute.h +++ b/searchlib/src/vespa/searchlib/attribute/i_document_weight_attribute.h @@ -2,14 +2,14 @@ #pragma once +#include "postinglisttraits.h" #include -#include namespace search { namespace query { class Node; } -typedef btree::BTreeConstIterator, btree::BTreeDefaultTraits> DocumentWeightIterator; +using DocumentWeightIterator = attribute::PostingListTraits::const_iterator; struct IDocumentWeightAttribute { @@ -28,5 +28,5 @@ struct IDocumentWeightAttribute virtual ~IDocumentWeightAttribute() {} }; -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/attribute/postingchange.h b/searchlib/src/vespa/searchlib/attribute/postingchange.h index 35260f9bb53..00904954a2b 100644 --- a/searchlib/src/vespa/searchlib/attribute/postingchange.h +++ b/searchlib/src/vespa/searchlib/attribute/postingchange.h @@ -2,12 +2,11 @@ #pragma once -#include -#include "postinglisttraits.h" +#include "postingdata.h" #include "enumstorebase.h" +#include -namespace search -{ +namespace search { class GrowableBitVector; @@ -81,7 +80,6 @@ PostingChange::add(uint32_t docId, int32_t weight) _additions.push_back(AttributeWeightPosting(docId, weight)); } - } // namespace search diff --git a/searchlib/src/vespa/searchlib/attribute/postingdata.h b/searchlib/src/vespa/searchlib/attribute/postingdata.h new file mode 100644 index 00000000000..001e1015d19 --- /dev/null +++ b/searchlib/src/vespa/searchlib/attribute/postingdata.h @@ -0,0 +1,13 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include + +namespace search { + +using AttributePosting = btree::BTreeKeyData; +using AttributeWeightPosting = btree::BTreeKeyData; + +} + diff --git a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.cpp b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.cpp index 35c2c7ffad9..2681b6bc39b 100644 --- a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.cpp +++ b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.cpp @@ -1,8 +1,32 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "postinglisttraits.h" +#include +#include +#include +#include +#include namespace search { +using btree::BTreeNoLeafData; +using NoD = attribute::PostingListTraits; +using WD = attribute::PostingListTraits; + +template class btree::BTreeStore, NoD::BTreeTraits, NoD::AggrCalcType>; +template class btree::BTreeRoot, NoD::BTreeTraits, NoD::AggrCalcType>; +template class btree::BTreeRootT, NoD::BTreeTraits>; +template class btree::BTreeNodeAllocator; +template class btree::BTreeBuilder; +template class btree::BTreeIteratorBase; + +template class btree::BTreeStore, WD::BTreeTraits, WD::AggrCalcType>; +template class btree::BTreeRoot, WD::BTreeTraits, WD::AggrCalcType>; +template class btree::BTreeRootT, WD::BTreeTraits>; +template class btree::BTreeNodeAllocator; +template class btree::BTreeBuilder; +template class btree::BTreeIteratorBase; +template class btree::BTreeAggregator; + } // namespace search diff --git a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h index a67b881c266..0400702427e 100644 --- a/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h +++ b/searchlib/src/vespa/searchlib/attribute/postinglisttraits.h @@ -4,9 +4,7 @@ #include -namespace search { - -namespace attribute { +namespace search::attribute { template class PostingListTraits; template class PostingStore; @@ -19,10 +17,8 @@ private: public: using AggregatedType = btree::NoAggregated; using AggrCalcType = btree::NoAggrCalc; - using const_iterator = btree::BTreeConstIterator, BTreeTraits >; - using PostingStoreBase = btree::BTreeStore, BTreeTraits, AggrCalcType> ; + using const_iterator = btree::BTreeConstIterator, BTreeTraits >; + using PostingStoreBase = btree::BTreeStore, BTreeTraits, AggrCalcType> ; using PostingList = PostingStore; using Posting = PostingStoreBase::KeyDataType; }; @@ -35,18 +31,10 @@ private: public: using AggregatedType = btree::MinMaxAggregated; using AggrCalcType = btree::MinMaxAggrCalc; - using const_iterator = btree::BTreeConstIterator, BTreeTraits >; - using PostingStoreBase = btree::BTreeStore, BTreeTraits, AggrCalcType>; + using const_iterator = btree::BTreeConstIterator, BTreeTraits >; + using PostingStoreBase = btree::BTreeStore, BTreeTraits, AggrCalcType>; using PostingList = PostingStore; using Posting = PostingStoreBase::KeyDataType; }; } - -using AttributePosting = btree::BTreeKeyData; -using AttributeWeightPosting = btree::BTreeKeyData; - -} - diff --git a/searchlib/src/vespa/searchlib/btree/btreeaggregator.cpp b/searchlib/src/vespa/searchlib/btree/btreeaggregator.cpp index 1efa6a7f099..2eb627192dc 100644 --- a/searchlib/src/vespa/searchlib/btree/btreeaggregator.cpp +++ b/searchlib/src/vespa/searchlib/btree/btreeaggregator.cpp @@ -1,8 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include "btreetraits.h" #include "btreeaggregator.hpp" -#include "noaggrcalc.h" #include "minmaxaggrcalc.h" namespace search::btree { diff --git a/searchlib/src/vespa/searchlib/btree/btreeaggregator.h b/searchlib/src/vespa/searchlib/btree/btreeaggregator.h index 95c03b11ef8..38c6f579f53 100644 --- a/searchlib/src/vespa/searchlib/btree/btreeaggregator.h +++ b/searchlib/src/vespa/searchlib/btree/btreeaggregator.h @@ -7,11 +7,7 @@ #include "btreetraits.h" #include "noaggrcalc.h" -namespace search -{ - -namespace btree -{ +namespace search::btree { template NodeAllocatorType; - typedef BTreeInternalNode - InternalNodeType; - typedef BTreeLeafNode - LeafNodeType; - typedef AggrT AggregatedType; + using NodeAllocatorType = BTreeNodeAllocator; + using InternalNodeType = BTreeInternalNode; + using LeafNodeType = BTreeLeafNode; + using AggregatedType = AggrT; static AggrT aggregate(const LeafNodeType &node, AggrCalcT aggrCalc); static AggrT aggregate(const InternalNodeType &node, const NodeAllocatorType &allocator, AggrCalcT aggrCalc); - static void - recalc(LeafNodeType &node, const AggrCalcT &aggrCalc); + static void recalc(LeafNodeType &node, const AggrCalcT &aggrCalc); - static void - recalc(LeafNodeType &node, - const NodeAllocatorType &allocator, - const AggrCalcT &aggrCalc) - { - (void) allocator; + static void recalc(LeafNodeType &node, const NodeAllocatorType &, const AggrCalcT &aggrCalc) { recalc(node, aggrCalc); } - static void - recalc(InternalNodeType &node, - const NodeAllocatorType &allocator, - const AggrCalcT &aggrCalc); - - static AggregatedType - recalc(LeafNodeType &node, - LeafNodeType &splitNode, - const AggrCalcT &aggrCalc); + static void recalc(InternalNodeType &node, const NodeAllocatorType &allocator, const AggrCalcT &aggrCalc); + static AggregatedType recalc(LeafNodeType &node, LeafNodeType &splitNode, const AggrCalcT &aggrCalc); - static AggregatedType - recalc(InternalNodeType &node, - InternalNodeType &splitNode, - const NodeAllocatorType &allocator, - const AggrCalcT &aggrCalc); + static AggregatedType recalc(InternalNodeType &node, InternalNodeType &splitNode, + const NodeAllocatorType &allocator, const AggrCalcT &aggrCalc); }; -} // namespace search::btree -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/btree/btreeaggregator.hpp b/searchlib/src/vespa/searchlib/btree/btreeaggregator.hpp index 5a424fb55ff..e1318ab5a66 100644 --- a/searchlib/src/vespa/searchlib/btree/btreeaggregator.hpp +++ b/searchlib/src/vespa/searchlib/btree/btreeaggregator.hpp @@ -4,11 +4,7 @@ #include "btreeaggregator.h" -namespace search -{ - -namespace btree -{ +namespace search::btree { template @@ -93,7 +89,4 @@ BTreeAggregator:: return a; } - -} // namespace search::btree -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/btree/minmaxaggrcalc.h b/searchlib/src/vespa/searchlib/btree/minmaxaggrcalc.h index ef543905155..b33422ec3e3 100644 --- a/searchlib/src/vespa/searchlib/btree/minmaxaggrcalc.h +++ b/searchlib/src/vespa/searchlib/btree/minmaxaggrcalc.h @@ -2,10 +2,9 @@ #pragma once -namespace search -{ -namespace btree -{ +#include "minmaxaggregated.h" + +namespace search::btree { class MinMaxAggrCalc { @@ -48,7 +47,4 @@ public: } }; - -} // namespace search::btree -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/btree/minmaxaggregated.h b/searchlib/src/vespa/searchlib/btree/minmaxaggregated.h index 65dd4839020..add570a6e6b 100644 --- a/searchlib/src/vespa/searchlib/btree/minmaxaggregated.h +++ b/searchlib/src/vespa/searchlib/btree/minmaxaggregated.h @@ -3,10 +3,9 @@ #pragma once #include -#include +#include -namespace search { -namespace btree { +namespace search::btree { class MinMaxAggregated { @@ -103,7 +102,4 @@ public: } }; - -} // namespace search::btree -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/btree/noaggrcalc.h b/searchlib/src/vespa/searchlib/btree/noaggrcalc.h index 2b3fafb6624..e77e8bc204a 100644 --- a/searchlib/src/vespa/searchlib/btree/noaggrcalc.h +++ b/searchlib/src/vespa/searchlib/btree/noaggrcalc.h @@ -2,10 +2,9 @@ #pragma once -namespace search -{ -namespace btree -{ +#include "noaggregated.h" + +namespace search::btree { class NoAggrCalc { @@ -92,7 +91,4 @@ public: } }; - -} // namespace search::btree -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/btree/noaggregated.h b/searchlib/src/vespa/searchlib/btree/noaggregated.h index 33533f18014..e16465f5e0a 100644 --- a/searchlib/src/vespa/searchlib/btree/noaggregated.h +++ b/searchlib/src/vespa/searchlib/btree/noaggregated.h @@ -2,10 +2,7 @@ #pragma once -namespace search -{ -namespace btree -{ +namespace search::btree { class NoAggregated { @@ -15,7 +12,4 @@ public: bool operator!=(const NoAggregated &) const { return false; } }; - -} // namespace search::btree -} // namespace search - +} -- cgit v1.2.3