diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-04 14:06:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-04 14:06:52 +0100 |
commit | 5c8dd8aab763d8ea282e69456faf779e3a1fb8fe (patch) | |
tree | 09eb38f8ad732bc2784efa20229957b5d9f8c928 /searchlib/src | |
parent | 8b1e7b15e11c0422a3b93bdc04c36e6e714461e9 (diff) |
Revert "No need to specify your own namespace."
Diffstat (limited to 'searchlib/src')
8 files changed, 45 insertions, 47 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/enumcomparator.cpp b/searchlib/src/vespa/searchlib/attribute/enumcomparator.cpp index 6cb805d701b..1a1e18a6eae 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumcomparator.cpp +++ b/searchlib/src/vespa/searchlib/attribute/enumcomparator.cpp @@ -40,7 +40,7 @@ EnumStoreStringComparator::EnumStoreStringComparator(const DataStoreType& data_s } bool -EnumStoreStringComparator::less(vespalib::datastore::EntryRef lhs, vespalib::datastore::EntryRef rhs) const { +EnumStoreStringComparator::less(const vespalib::datastore::EntryRef lhs, const vespalib::datastore::EntryRef rhs) const { switch (_compare_strategy) { case CompareStrategy::UNCASED: return (use_prefix() diff --git a/searchlib/src/vespa/searchlib/attribute/enumcomparator.h b/searchlib/src/vespa/searchlib/attribute/enumcomparator.h index 59dbb3a8cc3..cfff8d286a5 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumcomparator.h +++ b/searchlib/src/vespa/searchlib/attribute/enumcomparator.h @@ -18,7 +18,7 @@ public: using ParentType = vespalib::datastore::UniqueStoreComparator<EntryT, IEnumStore::InternalIndex>; using DataStoreType = typename ParentType::DataStoreType; - explicit EnumStoreComparator(const DataStoreType& data_store) + EnumStoreComparator(const DataStoreType& data_store) : ParentType(data_store) {} @@ -34,7 +34,7 @@ public: return *this; } EnumStoreComparator<EntryT> make_for_lookup(const EntryT& lookup_value) const { - return {this->_store, lookup_value}; + return EnumStoreComparator<EntryT>(this->_store, lookup_value); } }; @@ -76,9 +76,6 @@ private: }; public: - explicit EnumStoreStringComparator(const DataStoreType& data_store) - : EnumStoreStringComparator(data_store, CompareStrategy::UNCASED_THEN_CASED) - {} EnumStoreStringComparator(const DataStoreType& data_store, bool cased) : EnumStoreStringComparator(data_store, cased ? CompareStrategy::CASED : CompareStrategy::UNCASED_THEN_CASED) {} @@ -94,15 +91,15 @@ private: EnumStoreStringComparator(const DataStoreType& data_store, CompareStrategy compare_strategy, const char* lookup_value, bool prefix); public: - bool less(vespalib::datastore::EntryRef lhs, vespalib::datastore::EntryRef rhs) const override; + bool less(const vespalib::datastore::EntryRef lhs, const vespalib::datastore::EntryRef rhs) const override; EnumStoreStringComparator make_folded() const { - return {_store, _compare_strategy == CompareStrategy::UNCASED_THEN_CASED ? CompareStrategy::UNCASED : _compare_strategy}; + return EnumStoreStringComparator(_store, _compare_strategy == CompareStrategy::UNCASED_THEN_CASED ? CompareStrategy::UNCASED : _compare_strategy); } EnumStoreStringComparator make_for_lookup(const char* lookup_value) const { - return {_store, _compare_strategy, lookup_value}; + return EnumStoreStringComparator(_store, _compare_strategy, lookup_value); } EnumStoreStringComparator make_for_prefix_lookup(const char* lookup_value) const { - return {_store, _compare_strategy, lookup_value, true}; + return EnumStoreStringComparator(_store, _compare_strategy, lookup_value, true); } private: inline bool use_prefix() const noexcept { return _prefix; } diff --git a/searchlib/src/vespa/searchlib/attribute/enumstore.h b/searchlib/src/vespa/searchlib/attribute/enumstore.h index 3489afdd3f8..d63274c95fe 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumstore.h +++ b/searchlib/src/vespa/searchlib/attribute/enumstore.h @@ -35,7 +35,7 @@ namespace search { * It has special handling of type 'const char *' for strings. */ template <class EntryT> -class EnumStoreT final : public IEnumStore { +class EnumStoreT : public IEnumStore { public: using EntryType = EntryT; static constexpr bool has_string_type = std::is_same_v<EntryType, const char *>; @@ -61,6 +61,9 @@ private: EntryType _default_value; AtomicIndex _default_value_ref; + EnumStoreT(const EnumStoreT & rhs) = delete; + EnumStoreT & operator=(const EnumStoreT & rhs) = delete; + void free_value_if_unused(Index idx, IndexList &unused) override; const vespalib::datastore::UniqueStoreEntryBase& get_entry_base(Index idx) const { @@ -73,8 +76,6 @@ private: std::unique_ptr<EntryComparator> allocate_optionally_folded_comparator(bool folded) const; ComparatorType make_optionally_folded_comparator(bool folded) const; public: - EnumStoreT(const EnumStoreT & rhs) = delete; - EnumStoreT & operator=(const EnumStoreT & rhs) = delete; EnumStoreT(bool has_postings, const search::DictionaryConfig& dict_cfg, std::shared_ptr<vespalib::alloc::MemoryAllocator> memory_allocator, EntryType default_value); EnumStoreT(bool has_postings, const search::DictionaryConfig & dict_cfg); ~EnumStoreT() override; @@ -158,7 +159,7 @@ public: IndexList _possibly_unused; public: - explicit BatchUpdater(EnumStoreType& store) + BatchUpdater(EnumStoreType& store) : _store(store), _possibly_unused() {} diff --git a/searchlib/src/vespa/searchlib/attribute/enumstore.hpp b/searchlib/src/vespa/searchlib/attribute/enumstore.hpp index 210d0e4e052..3f15f64d191 100644 --- a/searchlib/src/vespa/searchlib/attribute/enumstore.hpp +++ b/searchlib/src/vespa/searchlib/attribute/enumstore.hpp @@ -102,7 +102,7 @@ EnumStoreT<EntryT>::EnumStoreT(bool has_postings, const DictionaryConfig& dict_c template <typename EntryT> EnumStoreT<EntryT>::EnumStoreT(bool has_postings, const DictionaryConfig& dict_cfg) - : EnumStoreT(has_postings, dict_cfg, {}, attribute::getUndefined<EntryType>()) + : EnumStoreT<EntryT>(has_postings, dict_cfg, {}, attribute::getUndefined<EntryType>()) { } @@ -270,7 +270,7 @@ EnumStoreT<EntryT>::consider_compact_values(const CompactionStrategy& compaction if (!_store.get_data_store().has_held_buffers() && _compaction_spec.get_values().compact()) { return compact_worst_values(_compaction_spec.get_values(), compaction_strategy); } - return {}; + return std::unique_ptr<IEnumStore::EnumIndexRemapper>(); } template <typename EntryT> diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp index cb196e9a54e..57513586908 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp @@ -234,8 +234,9 @@ ReferenceAttribute::onLoad(vespalib::Executor *) setCreateSerialNum(attrReader.getCreateSerialNum()); assert(attrReader.getEnumerated()); assert(!attrReader.hasIdx()); + size_t numDocs(0); uint64_t numValues = attrReader.getEnumCount(); - size_t numDocs = numValues; + numDocs = numValues; auto udatBuffer = attribute::LoadUtils::loadUDAT(*this); const GenericHeader &header = udatBuffer->getHeader(); uint32_t uniqueValueCount = extractUniqueValueCount(header); diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.h b/searchlib/src/vespa/searchlib/attribute/reference_attribute.h index 7b36f975c7e..e2c2db319d0 100644 --- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.h +++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.h @@ -33,12 +33,11 @@ public: using ReferenceStore = vespalib::datastore::UniqueStore<Reference>; using ReferenceStoreIndices = vespalib::RcuVectorBase<AtomicEntryRef>; // Class used to map from target lid to source lids - using ReverseMapping = vespalib::btree::BTreeStore<uint32_t, - vespalib::btree::BTreeNoLeafData, - vespalib::btree::NoAggregated, - std::less<uint32_t>, - vespalib::btree::BTreeDefaultTraits, - vespalib::btree::NoAggrCalc>; + using ReverseMapping = vespalib::btree::BTreeStore<uint32_t, vespalib::btree::BTreeNoLeafData, + vespalib::btree::NoAggregated, + std::less<uint32_t>, + vespalib::btree::BTreeDefaultTraits, + vespalib::btree::NoAggrCalc>; using TargetLids = ReferenceMappings::TargetLids; // Class used to map from target lid to source lids using ReverseMappingRefs = ReferenceMappings::ReverseMappingRefs; diff --git a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp index d1a2c26a75d..845622a68a6 100644 --- a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp +++ b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp @@ -3,33 +3,13 @@ #include "stackdumpiterator.h" #include <vespa/vespalib/util/compress.h> #include <vespa/vespalib/objects/nbo.h> +#include <cassert> +#include <charconv> using search::query::PredicateQueryTerm; namespace search { -namespace { - -uint64_t -readUint64(const char *&p) -{ - uint64_t value; - memcpy(&value, p, sizeof(value)); - p += sizeof(value); - return vespalib::nbo::n2h(value); -} - -double -read_double(const char *&p) -{ - double value; - memcpy(&value, p, sizeof(value)); - p += sizeof(value); - return vespalib::nbo::n2h(value); -} - -} - SimpleQueryStackDumpIterator::SimpleQueryStackDumpIterator(vespalib::stringref buf) : _buf(buf.begin()), _bufEnd(buf.end()), @@ -66,6 +46,24 @@ SimpleQueryStackDumpIterator::read_stringref(const char *&p) } uint64_t +SimpleQueryStackDumpIterator::readUint64(const char *&p) +{ + uint64_t value; + memcpy(&value, p, sizeof(value)); + p += sizeof(value); + return vespalib::nbo::n2h(value); +} + +double +SimpleQueryStackDumpIterator::read_double(const char *&p) +{ + double value; + memcpy(&value, p, sizeof(value)); + p += sizeof(value); + return vespalib::nbo::n2h(value); +} + +uint64_t SimpleQueryStackDumpIterator::readCompressedPositiveInt(const char *&p) { uint64_t tmp; diff --git a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.h b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.h index dece4ecc0b6..2f862de46fe 100644 --- a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.h +++ b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.h @@ -48,6 +48,8 @@ private: query::PredicateQueryTerm::UP _predicate_query_term; VESPA_DLL_LOCAL vespalib::stringref read_stringref(const char *&p); + VESPA_DLL_LOCAL uint64_t readUint64(const char *&p); + VESPA_DLL_LOCAL double read_double(const char *&p); VESPA_DLL_LOCAL uint64_t readCompressedPositiveInt(const char *&p); VESPA_DLL_LOCAL bool readPredicate(const char *&p); VESPA_DLL_LOCAL bool readNN(const char *&p); @@ -58,12 +60,12 @@ public: /** * Make an iterator on a buffer. To get the first item, next must be called. */ - explicit SimpleQueryStackDumpIterator(vespalib::stringref buf); + SimpleQueryStackDumpIterator(vespalib::stringref buf); SimpleQueryStackDumpIterator(const SimpleQueryStackDumpIterator &) = delete; SimpleQueryStackDumpIterator& operator=(const SimpleQueryStackDumpIterator &) = delete; ~SimpleQueryStackDumpIterator(); - vespalib::stringref getStack() const noexcept { return vespalib::stringref(_buf, _bufEnd - _buf); } + vespalib::stringref getStack() const { return vespalib::stringref(_buf, _bufEnd - _buf); } size_t getPosition() const { return _currPos; } /** |