diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-03-21 12:47:03 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-03-21 12:47:03 +0100 |
commit | daf205c77495d7020d30eea00777e1784ebd952a (patch) | |
tree | 4cb676d3c05337b523ae7b0dabbd87523189b2c8 /searchlib/src | |
parent | 76514eafee98e8f5a8294ee5c56a75205e5b6e6a (diff) |
Remove unused member functions for save and load from direct attributes
(used by streaming search).
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/attrvector.cpp | 105 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/attrvector.h | 3 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/attrvector.hpp | 73 |
3 files changed, 0 insertions, 181 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp index 4a0bdafae8f..74c41501333 100644 --- a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp @@ -70,34 +70,6 @@ StringDirectAttribute::findFoldedEnums(const char *key) const return result; } -void StringDirectAttribute::onSave(IAttributeSaveTarget & saveTarget) -{ - assert(!saveTarget.getEnumerated()); - using Buffer = IAttributeSaveTarget::Buffer; - if ( hasEnum() ) { - uint32_t sz(getMaxValueCount()); - Buffer dat(saveTarget.datWriter().allocBuf(sz*getNumDocs()*11)); - const char * * v = new const char *[sz]; - for(size_t i(0), m(getNumDocs()); i < m; i++) { - for(size_t j(0), k(static_cast<const AttributeVector &>(*this).get(i, v, sz)); j < k; j++) { - dat->writeBytes(v[j], strlen(v[j]) + 1); - } - } - delete [] v; - } else if ( ! _buffer.empty() ) { - Buffer dat(saveTarget.datWriter().allocBuf(_buffer.size())); - dat->writeBytes(&_buffer[0], _buffer.size()); - saveTarget.datWriter().writeBuf(std::move(dat)); - } - - if (hasMultiValue()) { - Buffer buf(saveTarget.idxWriter().allocBuf(sizeof(uint32_t) * - _idx.size())); - buf->writeBytes(&_idx[0], sizeof(uint32_t) * _idx.size()); - saveTarget.idxWriter().writeBuf(std::move(buf)); - } -} - class stringComp { public: stringComp(const char * buffer) : _buffer(buffer) { } @@ -115,83 +87,6 @@ void addString(const char * v, StringAttribute::OffsetVector & offsets, std::vec buffer.push_back('\0'); } -bool StringDirectAttribute::onLoad(vespalib::Executor *) -{ - { - std::vector<char> empty; - std::vector<uint32_t> empty1; - std::vector<uint32_t> empty2; - OffsetVector empty3; - std::swap(empty, _buffer); - std::swap(empty2, _idx); - std::swap(empty3, _offsets); - setNumDocs(0); - setCommittedDocIdLimit(0); - } - - auto tmpBuffer = attribute::LoadUtils::loadDAT(*this); - bool rc(tmpBuffer.get()); - if (rc) { - if ( ! tmpBuffer->empty()) { - OffsetVector tmpOffsets; - tmpOffsets.reserve(countZero(tmpBuffer->c_str(), tmpBuffer->size()) + 1); - generateOffsets(tmpBuffer->c_str(), tmpBuffer->size(), tmpOffsets); - - if ( hasEnum() ) { - std::sort(tmpOffsets.begin(), tmpOffsets.end(), stringComp(tmpBuffer->c_str())); - _offsets.clear(); - _buffer.clear(); - if (!tmpOffsets.empty()) { - const char * prev(tmpBuffer->c_str() + tmpOffsets[0]); - addString(prev, _offsets, _buffer); - for(OffsetVector::const_iterator it(tmpOffsets.begin()+1), mt(tmpOffsets.end()); it != mt; it++) { - if (strcmp(tmpBuffer->c_str() + *it, prev) != 0) { - prev = tmpBuffer->c_str() + *it; - addString(prev, _offsets, _buffer); - } - } - } - setEnumMax(_offsets.size()); - generateOffsets(tmpBuffer->c_str(), tmpBuffer->size(), tmpOffsets); - } else { - _buffer.clear(); - _buffer.reserve(tmpBuffer->size()); - for (size_t i=0; i < tmpBuffer->size(); i++) { - _buffer.push_back(tmpBuffer->c_str()[i]); - } - std::swap(tmpOffsets, _offsets); - } - } - - if (hasMultiValue()) { - auto tmpIdx = attribute::LoadUtils::loadIDX(*this); - size_t tmpIdxLen(tmpIdx->size(sizeof(uint32_t))); - _idx.clear(); - _idx.reserve(tmpIdxLen); - uint32_t prev(0); - const uint32_t * idxPtr(static_cast<const uint32_t *>(tmpIdx->buffer())); - for (size_t i=0; i < tmpIdxLen; i++) { - checkSetMaxValueCount(idxPtr[i] - prev); - prev = idxPtr[i]; - _idx.push_back(prev); - } - rc = tmpIdx.get(); - tmpIdx.reset(); - } - uint32_t numDocs(hasMultiValue() ? (_idx.size()-1) : _offsets.size()); - setNumDocs(numDocs); - setCommittedDocIdLimit(numDocs); - } - - // update statistics - uint64_t numValues = _offsets.size(); - uint64_t numUniqueValues = _offsets.size(); - uint64_t allocated = _buffer.size() * sizeof(char) + _offsets.size() * sizeof(uint32_t) + - + _idx.size() * sizeof(uint32_t); - this->updateStatistics(numValues, numUniqueValues, allocated, allocated, 0, 0); - return rc; -} - void StringDirectAttribute::onCommit() { LOG_ABORT("should not be reached"); diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.h b/searchlib/src/vespa/searchlib/attribute/attrvector.h index 0b71bdbcbcf..3c96c8e3158 100644 --- a/searchlib/src/vespa/searchlib/attribute/attrvector.h +++ b/searchlib/src/vespa/searchlib/attribute/attrvector.h @@ -32,7 +32,6 @@ private: using EnumHandle = typename B::EnumHandle; NumericDirectAttribute(const NumericDirectAttribute &); NumericDirectAttribute & operator=(const NumericDirectAttribute &); - bool onLoad(vespalib::Executor *executor) override; typename B::BaseType getFromEnum(EnumHandle e) const override { return _data[e]; } protected: using BaseType = typename B::BaseType; @@ -136,8 +135,6 @@ class StringDirectAttribute : public StringAttribute private: StringDirectAttribute(const StringDirectAttribute &); StringDirectAttribute & operator=(const StringDirectAttribute &); - void onSave(IAttributeSaveTarget & saveTarget) override; - bool onLoad(vespalib::Executor *executor) override; const char * getFromEnum(EnumHandle e) const override { return &_buffer[e]; } const char * getStringFromEnum(EnumHandle e) const override { return &_buffer[e]; } std::unique_ptr<attribute::SearchContext> getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.hpp b/searchlib/src/vespa/searchlib/attribute/attrvector.hpp index f398fe0b46b..d4e524d904f 100644 --- a/searchlib/src/vespa/searchlib/attribute/attrvector.hpp +++ b/searchlib/src/vespa/searchlib/attribute/attrvector.hpp @@ -21,79 +21,6 @@ template <typename B> NumericDirectAttribute<B>::~NumericDirectAttribute() = default; template <typename B> -bool NumericDirectAttribute<B>::onLoad(vespalib::Executor *) -{ - auto dataBuffer = attribute::LoadUtils::loadDAT(*this); - bool rc(dataBuffer.get()); - if (rc) { - const BaseType * tmpData(static_cast <const BaseType *>(dataBuffer->buffer())); - size_t tmpDataLen(dataBuffer->size(sizeof(BaseType))); - if (this->hasEnum() ) { - std::vector<BaseType> tmp; - tmp.reserve(tmpDataLen); - for(size_t i(0); i < tmpDataLen; i++) { - tmp.push_back(tmpData[i]); - } - std::sort(tmp.begin(), tmp.end()); - _data.clear(); - if (!tmp.empty()) { - BaseType prev = tmp[0]; - _data.push_back(prev); - for(typename std::vector<BaseType>::const_iterator it(tmp.begin()+1), mt(tmp.end()); it != mt; it++) { - if (*it != prev) { - prev = *it; - _data.push_back(prev); - } - } - } - this->setEnumMax(_data.size()); - } else { - _data.clear(); - _data.reserve(tmpDataLen); - for (size_t i=0; i < tmpDataLen; i++) { - _data.push_back(tmpData[i]); - } - } - dataBuffer.reset(); - if (this->hasMultiValue()) { - auto idxBuffer = attribute::LoadUtils::loadIDX(*this); - rc = idxBuffer.get(); - if (rc) { - const uint32_t * tmpIdx(static_cast<const uint32_t *>(idxBuffer->buffer())); - size_t tmpIdxLen(idxBuffer->size(sizeof(uint32_t))); - _idx.clear(); - _idx.reserve(tmpIdxLen); - uint32_t prev(0); - for (size_t i=0; i < tmpIdxLen; i++) { - this->checkSetMaxValueCount(tmpIdx[i] - prev); - prev = tmpIdx[i]; - _idx.push_back(prev); - } - } - } - } - if (rc) { - uint32_t numDocs(this->hasMultiValue() ? (_idx.size() - 1) : _data.size()); - this->setNumDocs(numDocs); - this->setCommittedDocIdLimit(numDocs); - } else { - std::vector<BaseType> emptyData; - std::vector<uint32_t> empty1; - std::vector<uint32_t> empty2; - std::swap(emptyData, _data); - std::swap(empty2, _idx); - } - - // update statistics - uint64_t numValues = _data.size(); - uint64_t numUniqueValues = _data.size(); - uint64_t allocated = _data.size() * sizeof(BaseType) + _idx.size() * sizeof(uint32_t); - this->updateStatistics(numValues, numUniqueValues, allocated, allocated, 0, 0); - - return rc; -} - -template <typename B> bool NumericDirectAttribute<B>::findEnum(typename B::BaseType key, EnumHandle & e) const { if (_data.empty()) { |