diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-07-28 10:40:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-28 10:40:36 +0800 |
commit | fbfca70e193c80417ea7a5ab3d92cd44c60507f4 (patch) | |
tree | 577cfc65f8b698cf9fd06c594347f5b9217953e5 | |
parent | 61e51083f405836b0daaebe9606a7c052f6d63ff (diff) | |
parent | 8d391112a29c147941ea392dc550b9ff7841419b (diff) |
Merge pull request #27913 from vespa-engine/balder/add-noexcept
Add noexcept
9 files changed, 101 insertions, 139 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp index 661da4273f8..f1fffc69938 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp @@ -19,22 +19,23 @@ using search::fef::MatchDataDetails; using search::fef::MatchDataLayout; using search::fef::TermFieldHandle; using search::query::Node; -using search::query::TemplateTermVisitor; -using search::query::Weight; -using search::queryeval::OrSearch; -using search::queryeval::SearchIterator; -using std::map; -using std::vector; using vespalib::string; using vespalib::Issue; namespace proton::matching { -ProtonTermData::ProtonTermData() = default; -ProtonTermData::ProtonTermData(const ProtonTermData &) = default; -ProtonTermData & ProtonTermData::operator = (const ProtonTermData &) = default; +ProtonTermData::ProtonTermData() noexcept = default; ProtonTermData::~ProtonTermData() = default; +namespace { + +bool +is_attribute(FieldType type) noexcept { + return (type == FieldType::ATTRIBUTE) || (type == FieldType::HIDDEN_ATTRIBUTE); +} + +} + void ProtonTermData::propagate_document_frequency(uint32_t matching_doc_count, uint32_t total_doc_count) { @@ -44,10 +45,8 @@ ProtonTermData::propagate_document_frequency(uint32_t matching_doc_count, uint32 } void -ProtonTermData::resolve(const ViewResolver &resolver, - const IIndexEnvironment &idxEnv, - const string &view, - bool forceFilter) +ProtonTermData::resolve(const ViewResolver &resolver, const IIndexEnvironment &idxEnv, + const string &view, bool forceFilter) { std::vector<string> fields; resolver.resolve(((view == "") ? "default" : view), fields); @@ -55,12 +54,11 @@ ProtonTermData::resolve(const ViewResolver &resolver, _fields.reserve(fields.size()); for (size_t i = 0; i < fields.size(); ++i) { const FieldInfo *info = idxEnv.getFieldByName(fields[i]); - if (info != 0) { + if (info != nullptr) { _fields.emplace_back(fields[i], info->id()); - _fields.back().attribute_field = - (info->type() == FieldType::ATTRIBUTE) || - (info->type() == FieldType::HIDDEN_ATTRIBUTE); - _fields.back().filter_field = forceFilter ? true : info->isFilter(); + FieldEntry & field = _fields.back(); + field.attribute_field = is_attribute(info->type()); + field.filter_field = forceFilter || info->isFilter(); } else { LOG(debug, "ignoring undefined field: '%s'", fields[i].c_str()); } @@ -72,16 +70,16 @@ ProtonTermData::resolveFromChildren(const std::vector<Node *> &subterms) { for (size_t i = 0; i < subterms.size(); ++i) { const ProtonTermData *child = termDataFromNode(*subterms[i]); - if (child == 0) { + if (child == nullptr) { Issue::report("child of equiv is not a term"); continue; } for (size_t j = 0; j < child->numFields(); ++j) { - FieldSpec subSpec = child->field(j).fieldSpec(); - if (lookupField(subSpec.getFieldId()) == 0) { + const FieldEntry & subSpec = child->field(j); + if (lookupField(subSpec.getFieldId()) == nullptr) { // this must happen before handles are reserved LOG_ASSERT(subSpec.getHandle() == search::fef::IllegalHandle); - _fields.emplace_back(subSpec.getName(), subSpec.getFieldId()); + _fields.emplace_back(subSpec.field_name, subSpec.getFieldId()); } } } diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h index 0e01884d504..cc09d4e9e7d 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h +++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h @@ -30,13 +30,13 @@ public: bool attribute_field; bool filter_field; - FieldEntry(const vespalib::string &name, uint32_t fieldId) + FieldEntry(const vespalib::string &name, uint32_t fieldId) noexcept : SimpleTermFieldData(fieldId), field_name(name), attribute_field(false), filter_field(false) {} - [[nodiscard]] FieldSpec fieldSpec() const { + [[nodiscard]] FieldSpec fieldSpec() const noexcept { return {field_name, getFieldId(), getHandle(), filter_field}; } using SimpleTermFieldData::getHandle; @@ -55,11 +55,9 @@ protected: bool forceFilter); public: - ProtonTermData(); - ProtonTermData(const ProtonTermData &); - ProtonTermData & operator = (const ProtonTermData &); - ProtonTermData(ProtonTermData &&) = default; - ProtonTermData & operator = (ProtonTermData &&) = default; + ProtonTermData() noexcept; + ProtonTermData(const ProtonTermData &) = delete; + ProtonTermData & operator = (const ProtonTermData &) = delete; ~ProtonTermData() override; void resolveFromChildren(const std::vector<search::query::Node *> &children); void allocateTerms(search::fef::MatchDataLayout &mdl); diff --git a/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp b/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp index 73b17c5e6ea..b3ccfd26569 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp @@ -31,8 +31,7 @@ ViewResolver::createFromSchema(const search::index::Schema &schema) { ViewResolver resolver; for (uint32_t i = 0; i < schema.getNumFieldSets(); ++i) { - const search::index::Schema::FieldSet - &f = schema.getFieldSet(i); + const search::index::Schema::FieldSet &f = schema.getFieldSet(i); const vespalib::string &view = f.getName(); const std::vector<vespalib::string> &fields = f.getFields(); for (uint32_t j = 0; j < fields.size(); ++j) { diff --git a/searchlib/src/vespa/searchcommon/common/schema.cpp b/searchlib/src/vespa/searchcommon/common/schema.cpp index 7a3e15dbd6d..41a1803408f 100644 --- a/searchlib/src/vespa/searchcommon/common/schema.cpp +++ b/searchlib/src/vespa/searchcommon/common/schema.cpp @@ -57,7 +57,7 @@ struct FieldName { template <typename T> uint32_t -getFieldId(vespalib::stringref name, const T &map) +getFieldId(vespalib::stringref name, const T &map) noexcept { auto it = map.find(name); return (it != map.end()) ? it->second : Schema::UNKNOWN_FIELD_ID; @@ -111,7 +111,7 @@ Schema::Field::write(vespalib::asciistream & os, vespalib::stringref prefix) con } bool -Schema::Field::operator==(const Field &rhs) const +Schema::Field::operator==(const Field &rhs) const noexcept { return _name == rhs._name && _dataType == rhs._dataType && @@ -120,7 +120,7 @@ Schema::Field::operator==(const Field &rhs) const } bool -Schema::Field::operator!=(const Field &rhs) const +Schema::Field::operator!=(const Field &rhs) const noexcept { return !((*this) == rhs); } @@ -166,7 +166,7 @@ Schema::IndexField::write(vespalib::asciistream & os, vespalib::stringref prefix } bool -Schema::IndexField::operator==(const IndexField &rhs) const +Schema::IndexField::operator==(const IndexField &rhs) const noexcept { return Field::operator==(rhs) && _avgElemLen == rhs._avgElemLen && @@ -174,7 +174,7 @@ Schema::IndexField::operator==(const IndexField &rhs) const } bool -Schema::IndexField::operator!=(const IndexField &rhs) const +Schema::IndexField::operator!=(const IndexField &rhs) const noexcept { return Field::operator!=(rhs) || _avgElemLen != rhs._avgElemLen || @@ -197,14 +197,14 @@ Schema::FieldSet & Schema::FieldSet::operator = (const FieldSet &) = default; Schema::FieldSet::~FieldSet() = default; bool -Schema::FieldSet::operator==(const FieldSet &rhs) const +Schema::FieldSet::operator==(const FieldSet &rhs) const noexcept { return _name == rhs._name && _fields == rhs._fields; } bool -Schema::FieldSet::operator!=(const FieldSet &rhs) const +Schema::FieldSet::operator!=(const FieldSet &rhs) const noexcept { return _name != rhs._name || _fields != rhs._fields; @@ -364,31 +364,31 @@ Schema::addFieldSet(const FieldSet &fieldSet) } uint32_t -Schema::getIndexFieldId(vespalib::stringref name) const +Schema::getIndexFieldId(vespalib::stringref name) const noexcept { return getFieldId(name, _indexIds); } uint32_t -Schema::getAttributeFieldId(vespalib::stringref name) const +Schema::getAttributeFieldId(vespalib::stringref name) const noexcept { return getFieldId(name, _attributeIds); } uint32_t -Schema::getFieldSetId(vespalib::stringref name) const +Schema::getFieldSetId(vespalib::stringref name) const noexcept { return getFieldId(name, _fieldSetIds); } bool -Schema::isIndexField(vespalib::stringref name) const +Schema::isIndexField(vespalib::stringref name) const noexcept { return _indexIds.find(name) != _indexIds.end(); } bool -Schema::isAttributeField(vespalib::stringref name) const +Schema::isAttributeField(vespalib::stringref name) const noexcept { return _attributeIds.find(name) != _attributeIds.end(); } @@ -516,7 +516,7 @@ Schema::set_difference(const Schema &lhs, const Schema &rhs) } bool -Schema::operator==(const Schema &rhs) const +Schema::operator==(const Schema &rhs) const noexcept { return _indexFields == rhs._indexFields && _attributeFields == rhs._attributeFields && @@ -525,7 +525,7 @@ Schema::operator==(const Schema &rhs) const } bool -Schema::operator!=(const Schema &rhs) const +Schema::operator!=(const Schema &rhs) const noexcept { return _indexFields != rhs._indexFields || _attributeFields != rhs._attributeFields || @@ -534,7 +534,7 @@ Schema::operator!=(const Schema &rhs) const } bool -Schema::empty() const +Schema::empty() const noexcept { return _indexFields.empty() && _attributeFields.empty() && diff --git a/searchlib/src/vespa/searchcommon/common/schema.h b/searchlib/src/vespa/searchcommon/common/schema.h index 2e9edaa702e..a2eb1dacd65 100644 --- a/searchlib/src/vespa/searchcommon/common/schema.h +++ b/searchlib/src/vespa/searchcommon/common/schema.h @@ -50,22 +50,20 @@ public: virtual ~Field(); - virtual void - write(vespalib::asciistream & os, - vespalib::stringref prefix) const; + virtual void write(vespalib::asciistream & os, vespalib::stringref prefix) const; - const vespalib::string &getName() const { return _name; } - DataType getDataType() const { return _dataType; } - CollectionType getCollectionType() const { return _collectionType; } - const vespalib::string& get_tensor_spec() const { return _tensor_spec; } + const vespalib::string &getName() const noexcept { return _name; } + DataType getDataType() const noexcept { return _dataType; } + CollectionType getCollectionType() const noexcept { return _collectionType; } + const vespalib::string& get_tensor_spec() const noexcept { return _tensor_spec; } - bool matchingTypes(const Field &rhs) const { + bool matchingTypes(const Field &rhs) const noexcept { return getDataType() == rhs.getDataType() && getCollectionType() == rhs.getCollectionType(); } - bool operator==(const Field &rhs) const; - bool operator!=(const Field &rhs) const; + bool operator==(const Field &rhs) const noexcept; + bool operator!=(const Field &rhs) const noexcept; }; @@ -91,8 +89,8 @@ public: **/ explicit IndexField(const config::StringVector &lines); - IndexField &setAvgElemLen(uint32_t avgElemLen) { _avgElemLen = avgElemLen; return *this; } - IndexField &set_interleaved_features(bool value) { + IndexField &setAvgElemLen(uint32_t avgElemLen) noexcept { _avgElemLen = avgElemLen; return *this; } + IndexField &set_interleaved_features(bool value) noexcept { _interleaved_features = value; return *this; } @@ -100,11 +98,11 @@ public: void write(vespalib::asciistream &os, vespalib::stringref prefix) const override; - uint32_t getAvgElemLen() const { return _avgElemLen; } - bool use_interleaved_features() const { return _interleaved_features; } + uint32_t getAvgElemLen() const noexcept { return _avgElemLen; } + bool use_interleaved_features() const noexcept { return _interleaved_features; } - bool operator==(const IndexField &rhs) const; - bool operator!=(const IndexField &rhs) const; + bool operator==(const IndexField &rhs) const noexcept; + bool operator!=(const IndexField &rhs) const noexcept; }; using AttributeField = Field; @@ -120,7 +118,7 @@ public: std::vector<vespalib::string> _fields; public: - explicit FieldSet(vespalib::stringref n) : _name(n), _fields() {} + explicit FieldSet(vespalib::stringref n) noexcept : _name(n), _fields() {} FieldSet(const FieldSet &); FieldSet & operator =(const FieldSet &); FieldSet(FieldSet &&) noexcept = default; @@ -138,13 +136,11 @@ public: return *this; } - const vespalib::string &getName() const { return _name; } - const std::vector<vespalib::string> &getFields() const { - return _fields; - } + const vespalib::string &getName() const noexcept { return _name; } + const std::vector<vespalib::string> &getFields() const noexcept { return _fields; } - bool operator==(const FieldSet &rhs) const; - bool operator!=(const FieldSet &rhs) const; + bool operator==(const FieldSet &rhs) const noexcept; + bool operator!=(const FieldSet &rhs) const noexcept; }; static const uint32_t UNKNOWN_FIELD_ID; @@ -179,8 +175,7 @@ public: * @param fileName the name of the file. * @return true if the schema could be loaded. **/ - bool - loadFromFile(const vespalib::string & fileName); + bool loadFromFile(const vespalib::string & fileName); /** * Save this schema to the file with the given name. @@ -188,8 +183,7 @@ public: * @param fileName the name of the file. * @return true if the schema could be saved. **/ - bool - saveToFile(const vespalib::string & fileName) const; + bool saveToFile(const vespalib::string & fileName) const; vespalib::string toString() const; @@ -198,28 +192,24 @@ public: * * @param field the field to add **/ - Schema & - addIndexField(const IndexField &field); + Schema & addIndexField(const IndexField &field); // Only used by tests. - Schema & - addUriIndexFields(const IndexField &field); + Schema & addUriIndexFields(const IndexField &field); /** * Add an attribute field to this schema * * @param field the field to add **/ - Schema & - addAttributeField(const AttributeField &field); + Schema & addAttributeField(const AttributeField &field); /** * Add a field set to this schema. * * @param collection the field set to add. **/ - Schema & - addFieldSet(const FieldSet &collection); + Schema & addFieldSet(const FieldSet &collection); Schema &addImportedAttributeField(const ImportedAttributeField &field); @@ -228,23 +218,23 @@ public: * * @return number of fields **/ - uint32_t getNumIndexFields() const { return _indexFields.size(); } + uint32_t getNumIndexFields() const noexcept { return _indexFields.size(); } /** * Obtain the number of attribute fields in this schema. * * @return number of fields **/ - uint32_t getNumAttributeFields() const { return _attributeFields.size(); } + uint32_t getNumAttributeFields() const noexcept { return _attributeFields.size(); } /** * Obtain the number of field sets in this schema. * * @return number of field sets. **/ - uint32_t getNumFieldSets() const { return _fieldSets.size(); } + uint32_t getNumFieldSets() const noexcept { return _fieldSets.size(); } - size_t getNumImportedAttributeFields() const { return _importedAttributeFields.size(); } + size_t getNumImportedAttributeFields() const noexcept { return _importedAttributeFields.size(); } /** * Get information about a specific index field using the given fieldId. @@ -252,18 +242,12 @@ public: * @return the field * @param idx an index in the range [0, size - 1]. **/ - const IndexField & - getIndexField(uint32_t fieldId) const - { - return _indexFields[fieldId]; - } + const IndexField & getIndexField(uint32_t fieldId) const noexcept { return _indexFields[fieldId]; } /** * Returns const view of the index fields. */ - const std::vector<IndexField> &getIndexFields() const { - return _indexFields; - } + const std::vector<IndexField> &getIndexFields() const noexcept { return _indexFields; } /** * Get the field id for the index field with the given name. @@ -271,7 +255,7 @@ public: * @return the field id or UNKNOWN_FIELD_ID if not found. * @param name the name of the field. **/ - uint32_t getIndexFieldId(vespalib::stringref name) const; + uint32_t getIndexFieldId(vespalib::stringref name) const noexcept; /** * Check if a field is an index @@ -279,7 +263,7 @@ public: * @return true if field is an index field. * @param name the name of the field. **/ - bool isIndexField(vespalib::stringref name) const; + bool isIndexField(vespalib::stringref name) const noexcept; /** * Check if a field is a attribute field @@ -287,7 +271,7 @@ public: * @return true if field is an attribute field. * @param name the name of the field. **/ - bool isAttributeField(vespalib::stringref name) const; + bool isAttributeField(vespalib::stringref name) const noexcept; /** * Get information about a specific attribute field using the given fieldId. @@ -295,18 +279,12 @@ public: * @return the field * @param idx an index in the range [0, size - 1]. **/ - const AttributeField & - getAttributeField(uint32_t fieldId) const - { - return _attributeFields[fieldId]; - } + const AttributeField & getAttributeField(uint32_t fieldId) const noexcept { return _attributeFields[fieldId]; } /** * Returns const view of the attribute fields. */ - const std::vector<AttributeField> &getAttributeFields() const { - return _attributeFields; - } + const std::vector<AttributeField> &getAttributeFields() const noexcept { return _attributeFields; } /** * Get the field id for the attribute field with the given name. @@ -314,7 +292,7 @@ public: * @return the field id or UNKNOWN_FIELD_ID if not found. * @param name the name of the field. **/ - uint32_t getAttributeFieldId(vespalib::stringref name) const; + uint32_t getAttributeFieldId(vespalib::stringref name) const noexcept; /** * Get information about a specific field set @@ -322,11 +300,7 @@ public: * @return the field set. * @param idx an index in the range [0, size - 1]. **/ - const FieldSet & - getFieldSet(uint32_t idx) const - { - return _fieldSets[idx]; - } + const FieldSet & getFieldSet(uint32_t idx) const noexcept { return _fieldSets[idx]; } /** * Get the field id for the field set with the given name. @@ -334,10 +308,9 @@ public: * @return the field id or UNKNOWN_FIELD_ID if not found. * @param name the name of the field set. **/ - uint32_t - getFieldSetId(vespalib::stringref name) const; + uint32_t getFieldSetId(vespalib::stringref name) const noexcept; - const std::vector<ImportedAttributeField> &getImportedAttributeFields() const { + const std::vector<ImportedAttributeField> &getImportedAttributeFields() const noexcept { return _importedAttributeFields; } @@ -348,10 +321,10 @@ public: static Schema::UP make_union(const Schema &lhs, const Schema &rhs); static Schema::UP set_difference(const Schema &lhs, const Schema &rhs); - bool operator==(const Schema &rhs) const; - bool operator!=(const Schema &rhs) const; + bool operator==(const Schema &rhs) const noexcept ; + bool operator!=(const Schema &rhs) const noexcept; - bool empty() const; + bool empty() const noexcept; }; } diff --git a/searchlib/src/vespa/searchlib/fef/itermfielddata.h b/searchlib/src/vespa/searchlib/fef/itermfielddata.h index 88fa8c5f781..ca31851e161 100644 --- a/searchlib/src/vespa/searchlib/fef/itermfielddata.h +++ b/searchlib/src/vespa/searchlib/fef/itermfielddata.h @@ -17,7 +17,7 @@ namespace search::fef { class ITermFieldData { public: - ITermFieldData(uint32_t fieldId) + ITermFieldData(uint32_t fieldId) noexcept : _fieldId(fieldId), _matching_doc_count(0), _total_doc_count(1) @@ -27,17 +27,17 @@ public: * * @return field id **/ - uint32_t getFieldId() const { return _fieldId; } + uint32_t getFieldId() const noexcept { return _fieldId; } /** * Returns the number of documents matching this term. */ - uint32_t get_matching_doc_count() const { return _matching_doc_count; } + uint32_t get_matching_doc_count() const noexcept { return _matching_doc_count; } /** * Returns the total number of documents in the corpus. */ - uint32_t get_total_doc_count() const { return _total_doc_count; } + uint32_t get_total_doc_count() const noexcept { return _total_doc_count; } /** * Obtain the document frequency. This is a value between 0 and 1 @@ -45,14 +45,14 @@ public: * * @return document frequency **/ - double getDocFreq() const { + double getDocFreq() const noexcept { return (double)get_matching_doc_count() / (double)get_total_doc_count(); } /** * Sets the document frequency. **/ - ITermFieldData &setDocFreq(uint32_t matching_doc_count, uint32_t total_doc_count) { + ITermFieldData &setDocFreq(uint32_t matching_doc_count, uint32_t total_doc_count) noexcept { _matching_doc_count = matching_doc_count; _total_doc_count = total_doc_count; return *this; @@ -64,7 +64,7 @@ public: * * @return match handle (or IllegalHandle) **/ - TermFieldHandle getHandle() const { + TermFieldHandle getHandle() const noexcept { return getHandle(MatchDataDetails::Normal); } diff --git a/searchlib/src/vespa/searchlib/fef/simpletermfielddata.cpp b/searchlib/src/vespa/searchlib/fef/simpletermfielddata.cpp index 78378343b10..e1b4a3d732e 100644 --- a/searchlib/src/vespa/searchlib/fef/simpletermfielddata.cpp +++ b/searchlib/src/vespa/searchlib/fef/simpletermfielddata.cpp @@ -4,16 +4,4 @@ namespace search::fef { -SimpleTermFieldData::SimpleTermFieldData(uint32_t fieldId) - : ITermFieldData(fieldId), - _handle(IllegalHandle) -{ -} - -SimpleTermFieldData::SimpleTermFieldData(const ITermFieldData &rhs) - : ITermFieldData(rhs), - _handle(rhs.getHandle()) -{ -} - } diff --git a/searchlib/src/vespa/searchlib/fef/simpletermfielddata.h b/searchlib/src/vespa/searchlib/fef/simpletermfielddata.h index 7a70d484ff3..ec4abb53549 100644 --- a/searchlib/src/vespa/searchlib/fef/simpletermfielddata.h +++ b/searchlib/src/vespa/searchlib/fef/simpletermfielddata.h @@ -21,14 +21,20 @@ public: /** * Side-cast copy constructor. **/ - SimpleTermFieldData(const ITermFieldData &rhs); + SimpleTermFieldData(const ITermFieldData &rhs) noexcept + : ITermFieldData(rhs), + _handle(rhs.getHandle()) + {} /** * Create a new instance for the given field. * * @param fieldId the field being searched **/ - SimpleTermFieldData(uint32_t fieldId); + SimpleTermFieldData(uint32_t fieldId) noexcept + : ITermFieldData(fieldId), + _handle(IllegalHandle) + {} using ITermFieldData::getHandle; @@ -40,7 +46,7 @@ public: /** * Sets the match handle for this field. **/ - SimpleTermFieldData &setHandle(TermFieldHandle handle) { + SimpleTermFieldData &setHandle(TermFieldHandle handle) noexcept { _handle = handle; return *this; } diff --git a/searchlib/src/vespa/searchlib/fef/test/queryenvironmentbuilder.cpp b/searchlib/src/vespa/searchlib/fef/test/queryenvironmentbuilder.cpp index da72374e7e3..fc85473a1b0 100644 --- a/searchlib/src/vespa/searchlib/fef/test/queryenvironmentbuilder.cpp +++ b/searchlib/src/vespa/searchlib/fef/test/queryenvironmentbuilder.cpp @@ -11,7 +11,7 @@ QueryEnvironmentBuilder::QueryEnvironmentBuilder(QueryEnvironment &env, { } -QueryEnvironmentBuilder::~QueryEnvironmentBuilder() { } +QueryEnvironmentBuilder::~QueryEnvironmentBuilder() = default; SimpleTermData & QueryEnvironmentBuilder::addAllFields() |