aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-03-21 12:47:03 +0100
committerTor Egge <Tor.Egge@online.no>2023-03-21 12:47:03 +0100
commitdaf205c77495d7020d30eea00777e1784ebd952a (patch)
tree4cb676d3c05337b523ae7b0dabbd87523189b2c8
parent76514eafee98e8f5a8294ee5c56a75205e5b6e6a (diff)
Remove unused member functions for save and load from direct attributes
(used by streaming search).
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.cpp105
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.hpp73
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()) {