aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/vespa')
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/group.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/changevector.hpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendableattributes.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/loadednumericvalue.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/loadedvalue.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/sourceselector.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/sourceselector.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/stringbase.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/common/indexmetainfo.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/common/sortresults.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/expression/rawbucketresultnode.h4
-rw-r--r--searchlib/src/vespa/searchlib/expression/resultvector.h8
-rw-r--r--searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/expression/stringbucketresultnode.h4
-rw-r--r--searchlib/src/vespa/searchlib/features/closenessfeature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/closenessfeature.h1
-rw-r--r--searchlib/src/vespa/searchlib/features/element_completeness_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/element_completeness_feature.h2
-rw-r--r--searchlib/src/vespa/searchlib/features/item_raw_score_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/item_raw_score_feature.h1
-rw-r--r--searchlib/src/vespa/searchlib/features/native_dot_product_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/native_dot_product_feature.h1
-rw-r--r--searchlib/src/vespa/searchlib/features/raw_score_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/raw_score_feature.h1
-rw-r--r--searchlib/src/vespa/searchlib/features/subqueries_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/subqueries_feature.h1
-rw-r--r--searchlib/src/vespa/searchlib/features/text_similarity_feature.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/features/text_similarity_feature.h1
-rw-r--r--searchlib/src/vespa/searchlib/fef/test/labels.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/fef/test/labels.h3
-rw-r--r--searchlib/src/vespa/searchlib/query/tree/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/query/tree/simplequery.cpp55
-rw-r--r--searchlib/src/vespa/searchlib/query/tree/simplequery.h52
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/posting_info.cpp9
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/posting_info.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/test/CMakeLists.txt3
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/test/searchhistory.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/test/searchhistory.h4
45 files changed, 215 insertions, 26 deletions
diff --git a/searchlib/src/vespa/searchlib/aggregation/group.h b/searchlib/src/vespa/searchlib/aggregation/group.h
index 4b06bcd8cae..202c5085133 100644
--- a/searchlib/src/vespa/searchlib/aggregation/group.h
+++ b/searchlib/src/vespa/searchlib/aggregation/group.h
@@ -39,7 +39,7 @@ public:
using UP = std::unique_ptr<Group>;
typedef Group * ChildP;
typedef ChildP * GroupList;
- struct GroupEqual : public std::binary_function<ChildP, ChildP, bool> {
+ struct GroupEqual {
GroupEqual(const GroupList * v) : _v(v) { }
bool operator()(uint32_t a, uint32_t b) { return (*_v)[a]->getId().cmpFast((*_v)[b]->getId()) == 0; }
bool operator()(const Group & a, uint32_t b) { return a.getId().cmpFast((*_v)[b]->getId()) == 0; }
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
index 213bbfc3493..906400f50a5 100644
--- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
@@ -235,6 +235,8 @@ public:
set_allow_termwise_eval(true);
}
+ ~LocationPreFilterBlueprint();
+
bool should_use() const { return _should_use; }
SearchIterator::UP
@@ -258,6 +260,8 @@ public:
}
};
+LocationPreFilterBlueprint::~LocationPreFilterBlueprint() = default;
+
//-----------------------------------------------------------------------------
class LocationPostFilterBlueprint : public ComplexLeafBlueprint
@@ -282,6 +286,8 @@ public:
setEstimate(estimate);
}
+ ~LocationPostFilterBlueprint();
+
const common::Location &location() const { return _location; }
SearchIterator::UP
@@ -334,6 +340,8 @@ make_location_blueprint(const FieldSpec &field, const IAttributeVector &attribut
return root;
}
+LocationPostFilterBlueprint::~LocationPostFilterBlueprint() = default;
+
class LookupKey : public IDocumentWeightAttribute::LookupKey {
public:
LookupKey(MultiTerm & terms, uint32_t index) : _terms(terms), _index(index) {}
@@ -381,6 +389,7 @@ public:
_weights.reserve(size_hint);
_terms.reserve(size_hint);
}
+ ~DirectWeightedSetBlueprint() override;
void addTerm(const IDocumentWeightAttribute::LookupKey & key, int32_t weight) {
IDocumentWeightAttribute::LookupResult result = _attr.lookup(key, _dictionary_snapshot);
@@ -423,6 +432,9 @@ public:
};
template <typename SearchType>
+DirectWeightedSetBlueprint<SearchType>::~DirectWeightedSetBlueprint() = default;
+
+template <typename SearchType>
std::unique_ptr<SearchIterator>
DirectWeightedSetBlueprint<SearchType>::createFilterSearch(bool, FilterConstraint) const
{
@@ -467,6 +479,8 @@ public:
_terms.reserve(size_hint);
}
+ ~DirectWandBlueprint();
+
void addTerm(const IDocumentWeightAttribute::LookupKey & key, int32_t weight) {
IDocumentWeightAttribute::LookupResult result = _attr.lookup(key, _dictionary_snapshot);
HitEstimate childEst(result.posting_size, (result.posting_size == 0));
@@ -497,6 +511,8 @@ public:
bool always_needs_unpack() const override { return true; }
};
+DirectWandBlueprint::~DirectWandBlueprint() = default;
+
std::unique_ptr<SearchIterator>
DirectWandBlueprint::createFilterSearch(bool, FilterConstraint constraint) const
{
diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
index 6b692ee4b27..0179841e7fa 100644
--- a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
@@ -99,7 +99,7 @@ void StringDirectAttribute::onSave(IAttributeSaveTarget & saveTarget)
}
}
-class stringComp : public std::binary_function<uint32_t, uint32_t, bool> {
+class stringComp {
public:
stringComp(const char * buffer) : _buffer(buffer) { }
bool operator()(uint32_t x, uint32_t y) const { return strcmp(_buffer+x, _buffer+y) < 0; }
diff --git a/searchlib/src/vespa/searchlib/attribute/changevector.hpp b/searchlib/src/vespa/searchlib/attribute/changevector.hpp
index 43787bf8bd4..a81c14aa85c 100644
--- a/searchlib/src/vespa/searchlib/attribute/changevector.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/changevector.hpp
@@ -5,6 +5,7 @@
#include "changevector.h"
#include <vespa/vespalib/util/memoryusage.h>
#include <vespa/vespalib/util/alloc.h>
+#include <algorithm>
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/extendableattributes.h b/searchlib/src/vespa/searchlib/attribute/extendableattributes.h
index 33b8544f9fe..bb8197c1908 100644
--- a/searchlib/src/vespa/searchlib/attribute/extendableattributes.h
+++ b/searchlib/src/vespa/searchlib/attribute/extendableattributes.h
@@ -124,6 +124,7 @@ public:
MultiExtAttribute(const vespalib::string &name)
: Super(name, Config(BasicType::fromType(static_cast<T>(0)),
attribute::CollectionType::ARRAY)) {}
+ ~MultiExtAttribute() override;
bool addDoc(typename Super::DocId &docId) override {
docId = this->_idx.size() - 1;
@@ -147,6 +148,9 @@ public:
}
};
+template <typename T>
+MultiExtAttribute<T>::~MultiExtAttribute() = default;
+
typedef MultiExtAttribute<int8_t> MultiInt8ExtAttribute;
typedef MultiExtAttribute<int16_t> MultiInt16ExtAttribute;
typedef MultiExtAttribute<int32_t> MultiInt32ExtAttribute;
diff --git a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
index fdf9ab624ad..96bdc147559 100644
--- a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
+++ b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
@@ -33,9 +33,7 @@ public:
}
};
- class EnumCompare : public std::binary_function<LoadedEnumAttribute,
- LoadedEnumAttribute,
- bool>
+ class EnumCompare
{
public:
bool
diff --git a/searchlib/src/vespa/searchlib/attribute/loadednumericvalue.h b/searchlib/src/vespa/searchlib/attribute/loadednumericvalue.h
index bfc636d79b9..934d20d57b2 100644
--- a/searchlib/src/vespa/searchlib/attribute/loadednumericvalue.h
+++ b/searchlib/src/vespa/searchlib/attribute/loadednumericvalue.h
@@ -20,7 +20,7 @@ struct LoadedNumericValue : public LoadedValue<T>
{
LoadedNumericValue() : LoadedValue<T>() { }
- class ValueCompare : public std::binary_function<LoadedNumericValue<T>, LoadedNumericValue<T>, bool>
+ class ValueCompare
{
public:
bool operator()(const LoadedNumericValue<T> &x, const LoadedNumericValue<T> &y) const {
diff --git a/searchlib/src/vespa/searchlib/attribute/loadedvalue.h b/searchlib/src/vespa/searchlib/attribute/loadedvalue.h
index b8f938838d2..ab20c9fbe69 100644
--- a/searchlib/src/vespa/searchlib/attribute/loadedvalue.h
+++ b/searchlib/src/vespa/searchlib/attribute/loadedvalue.h
@@ -40,9 +40,7 @@ public:
}
};
- class DocOrderCompare : public std::binary_function<LoadedValue<T>,
- LoadedValue<T>,
- bool>
+ class DocOrderCompare
{
public:
bool
diff --git a/searchlib/src/vespa/searchlib/attribute/sourceselector.cpp b/searchlib/src/vespa/searchlib/attribute/sourceselector.cpp
index 3bc85783c2f..0a39e5defc9 100644
--- a/searchlib/src/vespa/searchlib/attribute/sourceselector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/sourceselector.cpp
@@ -64,6 +64,7 @@ SourceSelector::SaveInfo::SaveInfo(const vespalib::string & baseFileName,
sourceStore.save(_memSaver, _header._baseFileName);
}
+SourceSelector::SaveInfo::~SaveInfo() = default;
bool
SourceSelector::SaveInfo::save(const TuneFileAttributes &tuneFileAttributes,
const FileHeaderContext &fileHeaderContext)
diff --git a/searchlib/src/vespa/searchlib/attribute/sourceselector.h b/searchlib/src/vespa/searchlib/attribute/sourceselector.h
index 7ab79ea34e8..de92abf212e 100644
--- a/searchlib/src/vespa/searchlib/attribute/sourceselector.h
+++ b/searchlib/src/vespa/searchlib/attribute/sourceselector.h
@@ -42,6 +42,7 @@ public:
uint32_t baseId,
uint32_t docIdLimit,
AttributeVector & sourceStore);
+ ~SaveInfo();
const HeaderInfo & getHeader() const { return _header; }
bool save(const TuneFileAttributes &tuneFileAttributes,
const search::common::FileHeaderContext &fileHeaderContext);
diff --git a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
index ec9b212fcf8..57882ddf1ae 100644
--- a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
@@ -107,7 +107,7 @@ public:
}
};
-class StdSortDataCharCompare : public std::binary_function<SortDataChar, SortDataChar, bool>
+class StdSortDataCharCompare
{
public:
bool operator() (const SortDataChar & x, const SortDataChar & y) const {
diff --git a/searchlib/src/vespa/searchlib/common/indexmetainfo.cpp b/searchlib/src/vespa/searchlib/common/indexmetainfo.cpp
index f33b571f263..60d04d7e3ad 100644
--- a/searchlib/src/vespa/searchlib/common/indexmetainfo.cpp
+++ b/searchlib/src/vespa/searchlib/common/indexmetainfo.cpp
@@ -5,6 +5,7 @@
#include <vespa/vespalib/util/stringfmt.h>
#include <vespa/vespalib/util/guard.h>
#include <cassert>
+#include <algorithm>
#include <vespa/log/log.h>
LOG_SETUP(".indexmetainfo");
diff --git a/searchlib/src/vespa/searchlib/common/sortresults.cpp b/searchlib/src/vespa/searchlib/common/sortresults.cpp
index 7510ae162ce..8a9af3af828 100644
--- a/searchlib/src/vespa/searchlib/common/sortresults.cpp
+++ b/searchlib/src/vespa/searchlib/common/sortresults.cpp
@@ -425,7 +425,7 @@ FastS_insertion_sort(T a[], uint32_t n, Compare *compobj)
}
}
-class StdSortDataCompare : public std::binary_function<FastS_SortSpec::SortData, FastS_SortSpec::SortData, bool>
+class StdSortDataCompare
{
public:
StdSortDataCompare(const uint8_t * s) : _sortSpec(s) { }
diff --git a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
index 180151264a8..89ea14a94ac 100644
--- a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.cpp
@@ -40,8 +40,14 @@ RawBucketResultNode::RawBucketResultNode()
_to(new RawResultNode())
{}
+RawBucketResultNode::RawBucketResultNode(const RawBucketResultNode&) = default;
+
RawBucketResultNode::~RawBucketResultNode() = default;
+RawBucketResultNode& RawBucketResultNode::operator=(const RawBucketResultNode&) = default;
+
+RawBucketResultNode& RawBucketResultNode::operator=(RawBucketResultNode&&) noexcept = default;
+
int
RawBucketResultNode::onCmp(const Identifiable & rhs) const
{
diff --git a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.h b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.h
index eaca52de4f6..436304a3dce 100644
--- a/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.h
+++ b/searchlib/src/vespa/searchlib/expression/rawbucketresultnode.h
@@ -23,8 +23,12 @@ public:
DECLARE_EXPRESSIONNODE(RawBucketResultNode);
DECLARE_NBO_SERIALIZE;
RawBucketResultNode();
+ RawBucketResultNode(const RawBucketResultNode&);
+ RawBucketResultNode(RawBucketResultNode&&) noexcept = default;
RawBucketResultNode(ResultNode::UP from, ResultNode::UP to) : _from(from.release()), _to(to.release()) {}
~RawBucketResultNode();
+ RawBucketResultNode& operator=(const RawBucketResultNode&);
+ RawBucketResultNode& operator=(RawBucketResultNode&&) noexcept;
size_t hash() const override;
int onCmp(const Identifiable & b) const override;
int contains(const RawBucketResultNode & b) const;
diff --git a/searchlib/src/vespa/searchlib/expression/resultvector.h b/searchlib/src/vespa/searchlib/expression/resultvector.h
index 171659993ac..81d73e9b1f5 100644
--- a/searchlib/src/vespa/searchlib/expression/resultvector.h
+++ b/searchlib/src/vespa/searchlib/expression/resultvector.h
@@ -57,20 +57,20 @@ private:
template <typename B>
struct cmpT {
- struct less : public std::binary_function<B, B, bool> {
+ struct less {
bool operator()(const B & a, const B & b) { return a.cmp(b) < 0; }
};
- struct equal : public std::binary_function<B, B, bool> {
+ struct equal {
bool operator()(const B & a, const B & b) { return a.cmp(b) == 0; }
};
};
template <typename B, typename V>
struct contains {
- struct less : public std::binary_function<B, V, bool> {
+ struct less {
bool operator()(const B & a, const V & b) { return a.contains(b) < 0; }
};
- struct equal : public std::binary_function<B, V, bool> {
+ struct equal {
bool operator()(const B & a, const V & b) { return a.contains(b) == 0; }
};
};
diff --git a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
index 6958bba2fba..5aadddfa0e2 100644
--- a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
+++ b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.cpp
@@ -9,6 +9,12 @@ IMPLEMENT_RESULTNODE(StringBucketResultNode, BucketResultNode);
StringBucketResultNode StringBucketResultNode::_nullResult;
+StringBucketResultNode::StringBucketResultNode(const StringBucketResultNode&) = default;
+
+StringBucketResultNode& StringBucketResultNode::operator=(const StringBucketResultNode&) = default;
+
+StringBucketResultNode& StringBucketResultNode::operator=(StringBucketResultNode&&) = default;
+
size_t
StringBucketResultNode::hash() const
{
diff --git a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.h b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.h
index 59120680732..bf270d64729 100644
--- a/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.h
+++ b/searchlib/src/vespa/searchlib/expression/stringbucketresultnode.h
@@ -23,9 +23,13 @@ public:
DECLARE_EXPRESSIONNODE(StringBucketResultNode);
DECLARE_NBO_SERIALIZE;
StringBucketResultNode();
+ StringBucketResultNode(const StringBucketResultNode&);
+ StringBucketResultNode(StringBucketResultNode&&) noexcept = default;
StringBucketResultNode(vespalib::stringref from, vespalib::stringref to);
StringBucketResultNode(ResultNode::UP from, ResultNode::UP to) : _from(from.release()), _to(to.release()) {}
~StringBucketResultNode();
+ StringBucketResultNode& operator=(const StringBucketResultNode&);
+ StringBucketResultNode& operator=(StringBucketResultNode&&);
size_t hash() const override;
int onCmp(const Identifiable & b) const override;
int contains(const StringBucketResultNode & b) const;
diff --git a/searchlib/src/vespa/searchlib/features/closenessfeature.cpp b/searchlib/src/vespa/searchlib/features/closenessfeature.cpp
index e98573d7a6b..04fc2a263be 100644
--- a/searchlib/src/vespa/searchlib/features/closenessfeature.cpp
+++ b/searchlib/src/vespa/searchlib/features/closenessfeature.cpp
@@ -107,6 +107,8 @@ ClosenessBlueprint::ClosenessBlueprint() :
{
}
+ClosenessBlueprint::~ClosenessBlueprint() = default;
+
void
ClosenessBlueprint::visitDumpFeatures(const IIndexEnvironment &,
IDumpFeatureVisitor &) const
diff --git a/searchlib/src/vespa/searchlib/features/closenessfeature.h b/searchlib/src/vespa/searchlib/features/closenessfeature.h
index e45cf9687e0..799495eaff5 100644
--- a/searchlib/src/vespa/searchlib/features/closenessfeature.h
+++ b/searchlib/src/vespa/searchlib/features/closenessfeature.h
@@ -38,6 +38,7 @@ private:
public:
ClosenessBlueprint();
+ ~ClosenessBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment & env, fef::IDumpFeatureVisitor & visitor) const override;
fef::Blueprint::UP createInstance() const override;
fef::ParameterDescriptions getDescriptions() const override {
diff --git a/searchlib/src/vespa/searchlib/features/element_completeness_feature.cpp b/searchlib/src/vespa/searchlib/features/element_completeness_feature.cpp
index 3b481ac69f1..3edfecd9a2c 100644
--- a/searchlib/src/vespa/searchlib/features/element_completeness_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/element_completeness_feature.cpp
@@ -96,6 +96,8 @@ ElementCompletenessBlueprint::ElementCompletenessBlueprint()
_output.push_back("elementWeight");
}
+ElementCompletenessBlueprint::~ElementCompletenessBlueprint() = default;
+
void
ElementCompletenessBlueprint::visitDumpFeatures(const fef::IIndexEnvironment &env,
fef::IDumpFeatureVisitor &visitor) const
diff --git a/searchlib/src/vespa/searchlib/features/element_completeness_feature.h b/searchlib/src/vespa/searchlib/features/element_completeness_feature.h
index 00e0d115f3d..2b1901184f4 100644
--- a/searchlib/src/vespa/searchlib/features/element_completeness_feature.h
+++ b/searchlib/src/vespa/searchlib/features/element_completeness_feature.h
@@ -100,7 +100,7 @@ private:
public:
ElementCompletenessBlueprint();
-
+ ~ElementCompletenessBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment & env, fef::IDumpFeatureVisitor & visitor) const override;
fef::Blueprint::UP createInstance() const override;
diff --git a/searchlib/src/vespa/searchlib/features/item_raw_score_feature.cpp b/searchlib/src/vespa/searchlib/features/item_raw_score_feature.cpp
index b02d336168b..586e086cf97 100644
--- a/searchlib/src/vespa/searchlib/features/item_raw_score_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/item_raw_score_feature.cpp
@@ -49,6 +49,8 @@ SimpleItemRawScoreExecutor::handle_bind_match_data(const MatchData &md)
//-----------------------------------------------------------------------------
+ItemRawScoreBlueprint::~ItemRawScoreBlueprint() = default;
+
bool
ItemRawScoreBlueprint::setup(const IIndexEnvironment &,
const ParameterList &params)
diff --git a/searchlib/src/vespa/searchlib/features/item_raw_score_feature.h b/searchlib/src/vespa/searchlib/features/item_raw_score_feature.h
index 312034b732f..3f93ca5ad75 100644
--- a/searchlib/src/vespa/searchlib/features/item_raw_score_feature.h
+++ b/searchlib/src/vespa/searchlib/features/item_raw_score_feature.h
@@ -46,6 +46,7 @@ private:
vespalib::string _label;
public:
ItemRawScoreBlueprint() : Blueprint("itemRawScore"), _label() {}
+ ~ItemRawScoreBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment &, fef::IDumpFeatureVisitor &) const override {}
fef::Blueprint::UP createInstance() const override {
return Blueprint::UP(new ItemRawScoreBlueprint());
diff --git a/searchlib/src/vespa/searchlib/features/native_dot_product_feature.cpp b/searchlib/src/vespa/searchlib/features/native_dot_product_feature.cpp
index 8b47c4e9e81..9472814f581 100644
--- a/searchlib/src/vespa/searchlib/features/native_dot_product_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/native_dot_product_feature.cpp
@@ -59,6 +59,8 @@ NativeDotProductExecutor::handle_bind_match_data(const fef::MatchData &md)
//-----------------------------------------------------------------------------
+NativeDotProductBlueprint::~NativeDotProductBlueprint() = default;
+
bool
NativeDotProductBlueprint::setup(const IIndexEnvironment &,
const ParameterList &params)
diff --git a/searchlib/src/vespa/searchlib/features/native_dot_product_feature.h b/searchlib/src/vespa/searchlib/features/native_dot_product_feature.h
index adff5663b92..c546ed86501 100644
--- a/searchlib/src/vespa/searchlib/features/native_dot_product_feature.h
+++ b/searchlib/src/vespa/searchlib/features/native_dot_product_feature.h
@@ -31,6 +31,7 @@ private:
const fef::FieldInfo *_field;
public:
NativeDotProductBlueprint() : Blueprint("nativeDotProduct"), _field(nullptr) {}
+ ~NativeDotProductBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment &, fef::IDumpFeatureVisitor &) const override {}
fef::Blueprint::UP createInstance() const override {
return Blueprint::UP(new NativeDotProductBlueprint());
diff --git a/searchlib/src/vespa/searchlib/features/raw_score_feature.cpp b/searchlib/src/vespa/searchlib/features/raw_score_feature.cpp
index bedb62e79e4..4e4426a5dab 100644
--- a/searchlib/src/vespa/searchlib/features/raw_score_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/raw_score_feature.cpp
@@ -43,6 +43,8 @@ RawScoreExecutor::handle_bind_match_data(const fef::MatchData &md)
//-----------------------------------------------------------------------------
+RawScoreBlueprint::~RawScoreBlueprint() = default;
+
bool
RawScoreBlueprint::setup(const IIndexEnvironment &, const ParameterList &params)
{
diff --git a/searchlib/src/vespa/searchlib/features/raw_score_feature.h b/searchlib/src/vespa/searchlib/features/raw_score_feature.h
index 6344b527595..14106522d38 100644
--- a/searchlib/src/vespa/searchlib/features/raw_score_feature.h
+++ b/searchlib/src/vespa/searchlib/features/raw_score_feature.h
@@ -26,6 +26,7 @@ private:
const fef::FieldInfo *_field;
public:
RawScoreBlueprint() : Blueprint("rawScore"), _field(0) {}
+ ~RawScoreBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment &,
fef::IDumpFeatureVisitor &) const override {}
fef::Blueprint::UP createInstance() const override {
diff --git a/searchlib/src/vespa/searchlib/features/subqueries_feature.cpp b/searchlib/src/vespa/searchlib/features/subqueries_feature.cpp
index 66a052ee0a2..779e14c8304 100644
--- a/searchlib/src/vespa/searchlib/features/subqueries_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/subqueries_feature.cpp
@@ -44,6 +44,8 @@ SubqueriesExecutor::handle_bind_match_data(const fef::MatchData &md)
//-----------------------------------------------------------------------------
+SubqueriesBlueprint::~SubqueriesBlueprint() = default;
+
bool SubqueriesBlueprint::setup(const IIndexEnvironment &,
const ParameterList &params) {
_field = params[0].asField();
diff --git a/searchlib/src/vespa/searchlib/features/subqueries_feature.h b/searchlib/src/vespa/searchlib/features/subqueries_feature.h
index fefda9406bd..4637dfb2414 100644
--- a/searchlib/src/vespa/searchlib/features/subqueries_feature.h
+++ b/searchlib/src/vespa/searchlib/features/subqueries_feature.h
@@ -24,6 +24,7 @@ private:
const fef::FieldInfo *_field;
public:
SubqueriesBlueprint() : Blueprint("subqueries"), _field(nullptr) {}
+ ~SubqueriesBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment &, fef::IDumpFeatureVisitor &) const override {}
fef::Blueprint::UP createInstance() const override {
return Blueprint::UP(new SubqueriesBlueprint);
diff --git a/searchlib/src/vespa/searchlib/features/text_similarity_feature.cpp b/searchlib/src/vespa/searchlib/features/text_similarity_feature.cpp
index 2723469aa67..495bb766e32 100644
--- a/searchlib/src/vespa/searchlib/features/text_similarity_feature.cpp
+++ b/searchlib/src/vespa/searchlib/features/text_similarity_feature.cpp
@@ -172,6 +172,8 @@ const vespalib::string TextSimilarityBlueprint::field_coverage_output("fieldCove
TextSimilarityBlueprint::TextSimilarityBlueprint()
: Blueprint("textSimilarity"), _field_id(fef::IllegalHandle) {}
+TextSimilarityBlueprint::~TextSimilarityBlueprint() = default;
+
void
TextSimilarityBlueprint::visitDumpFeatures(const fef::IIndexEnvironment &env,
fef::IDumpFeatureVisitor &visitor) const
diff --git a/searchlib/src/vespa/searchlib/features/text_similarity_feature.h b/searchlib/src/vespa/searchlib/features/text_similarity_feature.h
index f7cd259b769..dddd8d89619 100644
--- a/searchlib/src/vespa/searchlib/features/text_similarity_feature.h
+++ b/searchlib/src/vespa/searchlib/features/text_similarity_feature.h
@@ -57,6 +57,7 @@ private:
public:
TextSimilarityBlueprint();
+ ~TextSimilarityBlueprint() override;
void visitDumpFeatures(const fef::IIndexEnvironment &env, fef::IDumpFeatureVisitor &visitor) const override;
fef::Blueprint::UP createInstance() const override;
fef::ParameterDescriptions getDescriptions() const override {
diff --git a/searchlib/src/vespa/searchlib/fef/test/labels.cpp b/searchlib/src/vespa/searchlib/fef/test/labels.cpp
index ee937600ac2..6e7c144cc7d 100644
--- a/searchlib/src/vespa/searchlib/fef/test/labels.cpp
+++ b/searchlib/src/vespa/searchlib/fef/test/labels.cpp
@@ -1,3 +1,9 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "labels.h"
+
+namespace search::fef::test {
+
+NoLabel::~NoLabel() = default;
+
+}
diff --git a/searchlib/src/vespa/searchlib/fef/test/labels.h b/searchlib/src/vespa/searchlib/fef/test/labels.h
index b76a145f922..5f27f786405 100644
--- a/searchlib/src/vespa/searchlib/fef/test/labels.h
+++ b/searchlib/src/vespa/searchlib/fef/test/labels.h
@@ -10,7 +10,8 @@ struct Labels {
virtual ~Labels() {}
};
struct NoLabel : public Labels {
- virtual void inject(Properties &) const override {}
+ virtual void inject(Properties &) const override {}
+ ~NoLabel() override;
};
struct SingleLabel : public Labels {
vespalib::string label;
diff --git a/searchlib/src/vespa/searchlib/query/tree/CMakeLists.txt b/searchlib/src/vespa/searchlib/query/tree/CMakeLists.txt
index ec9156fbb52..4fcec251caa 100644
--- a/searchlib/src/vespa/searchlib/query/tree/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/query/tree/CMakeLists.txt
@@ -5,6 +5,7 @@ vespa_add_library(searchlib_query_tree OBJECT
intermediate.cpp
intermediatenodes.cpp
querybuilder.cpp
+ simplequery.cpp
stackdumpcreator.cpp
term.cpp
location.cpp
diff --git a/searchlib/src/vespa/searchlib/query/tree/simplequery.cpp b/searchlib/src/vespa/searchlib/query/tree/simplequery.cpp
new file mode 100644
index 00000000000..cad97279b4c
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/query/tree/simplequery.cpp
@@ -0,0 +1,55 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "simplequery.h"
+
+namespace search::query {
+
+SimpleTrue::~SimpleTrue() = default;
+
+SimpleFalse::~SimpleFalse() = default;
+
+SimpleAnd::~SimpleAnd() = default;
+
+SimpleAndNot::~SimpleAndNot() = default;
+
+SimpleNear::~SimpleNear() = default;
+
+SimpleONear::~SimpleONear() = default;
+
+SimpleOr::~SimpleOr() = default;
+
+SimpleEquiv::~SimpleEquiv() = default;
+
+SimplePhrase::~SimplePhrase() = default;
+
+SimpleSameElement::~SimpleSameElement() = default;
+
+SimpleWeightedSetTerm::~SimpleWeightedSetTerm() = default;
+
+SimpleDotProduct::~SimpleDotProduct() = default;
+
+SimpleWandTerm::~SimpleWandTerm() = default;
+
+SimpleRank::~SimpleRank() = default;
+
+SimpleNumberTerm::~SimpleNumberTerm() = default;
+
+SimpleLocationTerm::~SimpleLocationTerm() = default;
+
+SimplePrefixTerm::~SimplePrefixTerm() = default;
+
+SimpleRangeTerm::~SimpleRangeTerm() = default;
+
+SimpleStringTerm::~SimpleStringTerm() = default;
+
+SimpleSubstringTerm::~SimpleSubstringTerm() = default;
+
+SimpleSuffixTerm::~SimpleSuffixTerm() = default;
+
+SimplePredicateQuery::~SimplePredicateQuery() = default;
+
+SimpleRegExpTerm::~SimpleRegExpTerm() = default;
+
+SimpleNearestNeighborTerm::~SimpleNearestNeighborTerm() = default;
+
+}
diff --git a/searchlib/src/vespa/searchlib/query/tree/simplequery.h b/searchlib/src/vespa/searchlib/query/tree/simplequery.h
index 0e52698c915..5047e072cb7 100644
--- a/searchlib/src/vespa/searchlib/query/tree/simplequery.h
+++ b/searchlib/src/vespa/searchlib/query/tree/simplequery.h
@@ -13,13 +13,30 @@
namespace search::query {
-struct SimpleTrue : TrueQueryNode {};
-struct SimpleFalse : FalseQueryNode {};
-struct SimpleAnd : And {};
-struct SimpleAndNot : AndNot {};
-struct SimpleNear : Near { SimpleNear(size_t dist) : Near(dist) {} };
-struct SimpleONear : ONear { SimpleONear(size_t dist) : ONear(dist) {} };
-struct SimpleOr : Or {};
+struct SimpleTrue : TrueQueryNode {
+ ~SimpleTrue() override;
+};
+struct SimpleFalse : FalseQueryNode {
+ ~SimpleFalse() override;
+};
+struct SimpleAnd : And {
+ ~SimpleAnd() override;
+};
+struct SimpleAndNot : AndNot {
+ ~SimpleAndNot() override;
+};
+struct SimpleNear : Near {
+ SimpleNear(size_t dist) : Near(dist) {}
+ ~SimpleNear() override;
+};
+struct SimpleONear : ONear {
+ SimpleONear(size_t dist) : ONear(dist) {}
+ ~SimpleONear() override;
+};
+struct SimpleOr : Or
+{
+ ~SimpleOr() override;
+};
struct SimpleWeakAnd : WeakAnd {
SimpleWeakAnd(uint32_t minHits, vespalib::stringref view) :
WeakAnd(minHits, view)
@@ -28,70 +45,86 @@ struct SimpleWeakAnd : WeakAnd {
struct SimpleEquiv : Equiv {
SimpleEquiv(int32_t id, Weight weight)
: Equiv(id, weight) {}
+ ~SimpleEquiv() override;
};
struct SimplePhrase : Phrase {
SimplePhrase(vespalib::stringref view, int32_t id, Weight weight)
: Phrase(view, id, weight) {}
+ ~SimplePhrase() override;
};
struct SimpleSameElement : SameElement {
SimpleSameElement(vespalib::stringref view) : SameElement(view) {}
+ ~SimpleSameElement() override;
};
struct SimpleWeightedSetTerm : WeightedSetTerm {
SimpleWeightedSetTerm(uint32_t num_terms, vespalib::stringref view, int32_t id, Weight weight)
: WeightedSetTerm(num_terms, view, id, weight) {}
+ ~SimpleWeightedSetTerm() override;
};
struct SimpleDotProduct : DotProduct {
SimpleDotProduct(uint32_t num_terms, vespalib::stringref view, int32_t id, Weight weight)
: DotProduct(num_terms, view, id, weight) {}
+ ~SimpleDotProduct() override;
};
struct SimpleWandTerm : WandTerm {
SimpleWandTerm(uint32_t num_terms, vespalib::stringref view, int32_t id, Weight weight,
uint32_t targetNumHits, int64_t scoreThreshold, double thresholdBoostFactor)
: WandTerm(num_terms, view, id, weight, targetNumHits, scoreThreshold, thresholdBoostFactor) {}
+ ~SimpleWandTerm() override;
+};
+struct SimpleRank : Rank
+{
+ ~SimpleRank() override;
};
-struct SimpleRank : Rank {};
struct SimpleNumberTerm : NumberTerm {
SimpleNumberTerm(Type term, vespalib::stringref view,
int32_t id, Weight weight)
: NumberTerm(term, view, id, weight) {
}
+ ~SimpleNumberTerm() override;
};
struct SimpleLocationTerm : LocationTerm {
SimpleLocationTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: LocationTerm(term, view, id, weight) {
}
+ ~SimpleLocationTerm() override;
};
struct SimplePrefixTerm : PrefixTerm {
SimplePrefixTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: PrefixTerm(term, view, id, weight) {
}
+ ~SimplePrefixTerm() override;
};
struct SimpleRangeTerm : RangeTerm {
SimpleRangeTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: RangeTerm(term, view, id, weight) {
}
+ ~SimpleRangeTerm() override;
};
struct SimpleStringTerm : StringTerm {
SimpleStringTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: StringTerm(term, view, id, weight) {
}
+ ~SimpleStringTerm() override;
};
struct SimpleSubstringTerm : SubstringTerm {
SimpleSubstringTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: SubstringTerm(term, view, id, weight) {
}
+ ~SimpleSubstringTerm() override;
};
struct SimpleSuffixTerm : SuffixTerm {
SimpleSuffixTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: SuffixTerm(term, view, id, weight) {
}
+ ~SimpleSuffixTerm() override;
};
struct SimplePredicateQuery : PredicateQuery {
SimplePredicateQuery(PredicateQueryTerm::UP term,
@@ -99,12 +132,14 @@ struct SimplePredicateQuery : PredicateQuery {
int32_t id, Weight weight)
: PredicateQuery(std::move(term), view, id, weight) {
}
+ ~SimplePredicateQuery() override;
};
struct SimpleRegExpTerm : RegExpTerm {
SimpleRegExpTerm(const Type &term, vespalib::stringref view,
int32_t id, Weight weight)
: RegExpTerm(term, view, id, weight) {
}
+ ~SimpleRegExpTerm() override;
};
struct SimpleNearestNeighborTerm : NearestNeighborTerm {
SimpleNearestNeighborTerm(vespalib::stringref query_tensor_name, vespalib::stringref field_name,
@@ -115,6 +150,7 @@ struct SimpleNearestNeighborTerm : NearestNeighborTerm {
target_num_hits, allow_approximate, explore_additional_hits,
distance_threshold)
{}
+ ~SimpleNearestNeighborTerm() override;
};
diff --git a/searchlib/src/vespa/searchlib/queryeval/CMakeLists.txt b/searchlib/src/vespa/searchlib/queryeval/CMakeLists.txt
index 214fb19b7ce..840f5b6b376 100644
--- a/searchlib/src/vespa/searchlib/queryeval/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/queryeval/CMakeLists.txt
@@ -40,6 +40,7 @@ vespa_add_library(searchlib_queryeval OBJECT
nearsearch.cpp
nns_index_iterator.cpp
orsearch.cpp
+ posting_info.cpp
predicate_blueprint.cpp
predicate_search.cpp
ranksearch.cpp
diff --git a/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.cpp b/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.cpp
index 997d3013971..79d78c3faab 100644
--- a/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.cpp
@@ -296,6 +296,8 @@ AndBlueprint::computeNextHitRate(const Blueprint & child, double hitRate) const
//-----------------------------------------------------------------------------
+OrBlueprint::~OrBlueprint() = default;
+
Blueprint::HitEstimate
OrBlueprint::combine(const std::vector<HitEstimate> &data) const
{
diff --git a/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.h b/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.h
index b708ae3078e..c8bd26fe4a7 100644
--- a/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.h
+++ b/searchlib/src/vespa/searchlib/queryeval/intermediate_blueprints.h
@@ -60,6 +60,7 @@ private:
class OrBlueprint : public IntermediateBlueprint
{
public:
+ ~OrBlueprint() override;
bool supports_termwise_children() const override { return true; }
HitEstimate combine(const std::vector<HitEstimate> &data) const override;
FieldSpecBaseList exposeFields() const override;
diff --git a/searchlib/src/vespa/searchlib/queryeval/posting_info.cpp b/searchlib/src/vespa/searchlib/queryeval/posting_info.cpp
new file mode 100644
index 00000000000..4b7b09b76c1
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/queryeval/posting_info.cpp
@@ -0,0 +1,9 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "posting_info.h"
+
+namespace search::queryeval {
+
+MinMaxPostingInfo::~MinMaxPostingInfo() = default;
+
+}
diff --git a/searchlib/src/vespa/searchlib/queryeval/posting_info.h b/searchlib/src/vespa/searchlib/queryeval/posting_info.h
index 27c2eae56fb..c3fa5470e48 100644
--- a/searchlib/src/vespa/searchlib/queryeval/posting_info.h
+++ b/searchlib/src/vespa/searchlib/queryeval/posting_info.h
@@ -34,6 +34,7 @@ public:
_minWeight(minWeight),
_maxWeight(maxWeight)
{}
+ ~MinMaxPostingInfo() override;
int32_t getMinWeight() const { return _minWeight; }
int32_t getMaxWeight() const { return _maxWeight; }
};
diff --git a/searchlib/src/vespa/searchlib/queryeval/test/CMakeLists.txt b/searchlib/src/vespa/searchlib/queryeval/test/CMakeLists.txt
index 925d0b9b6be..b3a19d7533e 100644
--- a/searchlib/src/vespa/searchlib/queryeval/test/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/queryeval/test/CMakeLists.txt
@@ -1,5 +1,6 @@
# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_library(searchlib_queryeval_test INTERFACE
+vespa_add_library(searchlib_queryeval_test STATIC
SOURCES
+ searchhistory.cpp
DEPENDS
)
diff --git a/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.cpp b/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.cpp
new file mode 100644
index 00000000000..700b951d8ca
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.cpp
@@ -0,0 +1,11 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "searchhistory.h"
+
+namespace search::queryeval::test {
+
+SearchHistory::Entry::Entry(const Entry&) = default;
+
+SearchHistory::Entry& SearchHistory::Entry::operator=(const Entry&) = default;
+
+}
diff --git a/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.h b/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.h
index 17e3cc49444..9b31577cd9c 100644
--- a/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.h
+++ b/searchlib/src/vespa/searchlib/queryeval/test/searchhistory.h
@@ -17,7 +17,11 @@ struct SearchHistory {
uint32_t docid;
Entry(const std::string &t, const std::string &o, uint32_t id)
: target(t), op(o), docid(id) {}
+ Entry(const Entry&);
+ Entry(Entry&&) noexcept = default;
~Entry() {}
+ Entry& operator=(const Entry&);
+ Entry& operator=(Entry&&) noexcept = default;
bool operator==(const Entry &rhs) const {
return ((target == rhs.target) &&
(op == rhs.op) &&