summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java2
-rw-r--r--persistence/src/tests/dummyimpl/dummypersistence_test.cpp16
-rw-r--r--persistence/src/tests/spi/clusterstatetest.cpp8
-rw-r--r--persistence/src/vespa/persistence/conformancetest/conformancetest.cpp44
-rw-r--r--persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp2
-rw-r--r--persistence/src/vespa/persistence/spi/docentry.cpp36
-rw-r--r--persistence/src/vespa/persistence/spi/docentry.h24
-rw-r--r--persistence/src/vespa/persistence/spi/test.cpp6
-rw-r--r--searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp18
-rw-r--r--searchcore/src/vespa/searchcore/proton/persistenceengine/document_iterator.cpp6
-rw-r--r--storage/src/tests/persistence/splitbitdetectortest.cpp14
-rw-r--r--storage/src/tests/persistence/testandsettest.cpp8
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.cpp21
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.h3
-rw-r--r--storage/src/vespa/storage/visiting/reindexing_visitor.cpp2
-rw-r--r--streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp6
17 files changed, 104 insertions, 114 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
index dc49d5859c8..c14f391d1f9 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/OffsetContinuation.java
@@ -37,7 +37,7 @@ class OffsetContinuation extends EncodableContinuation {
return offset;
}
- public int getFlags() {
+ public int getMetaEnum() {
return flags;
}
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
index 7242e5ba054..32120cb9ed8 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/OffsetContinuationTestCase.java
@@ -33,7 +33,7 @@ public class OffsetContinuationTestCase {
assertEquals(ResultId.valueOf(5), cnt.getResultId());
assertEquals(6, cnt.getTag());
assertEquals(7, cnt.getOffset());
- assertEquals(8, cnt.getFlags());
+ assertEquals(8, cnt.getMetaEnum());
for (int i = 0; i < 30; ++i) {
cnt = new OffsetContinuation(ResultId.valueOf(1), 2, 3, (1 << i) + (1 << i + 1));
diff --git a/persistence/src/tests/dummyimpl/dummypersistence_test.cpp b/persistence/src/tests/dummyimpl/dummypersistence_test.cpp
index 2c245f377e1..3fa1a8a9b8d 100644
--- a/persistence/src/tests/dummyimpl/dummypersistence_test.cpp
+++ b/persistence/src/tests/dummyimpl/dummypersistence_test.cpp
@@ -19,14 +19,14 @@ namespace {
struct Fixture {
BucketContent content;
- void insert(DocumentId id, Timestamp timestamp, DocumentMetaFlags meta_flags) {
+ void insert(DocumentId id, Timestamp timestamp, DocumentMetaEnum meta_flags) {
content.insert(DocEntry::create(timestamp, meta_flags, id));
}
Fixture() {
- insert(DocumentId("id:ns:type::test:3"), Timestamp(3), DocumentMetaFlags::NONE);
- insert(DocumentId("id:ns:type::test:1"), Timestamp(1), DocumentMetaFlags::NONE);
- insert(DocumentId("id:ns:type::test:2"), Timestamp(2), DocumentMetaFlags::NONE);
+ insert(DocumentId("id:ns:type::test:3"), Timestamp(3), DocumentMetaEnum::NONE);
+ insert(DocumentId("id:ns:type::test:1"), Timestamp(1), DocumentMetaEnum::NONE);
+ insert(DocumentId("id:ns:type::test:2"), Timestamp(2), DocumentMetaEnum::NONE);
}
};
@@ -63,13 +63,13 @@ TEST_F("require that BucketContent can provide bucket info", Fixture) {
uint32_t lastChecksum = 0;
EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum());
lastChecksum = f.content.getBucketInfo().getChecksum();
- f.insert(DocumentId("id:ns:type::test:3"), Timestamp(4), DocumentMetaFlags::NONE);
+ f.insert(DocumentId("id:ns:type::test:3"), Timestamp(4), DocumentMetaEnum::NONE);
EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum());
lastChecksum = f.content.getBucketInfo().getChecksum();
- f.insert(DocumentId("id:ns:type::test:2"), Timestamp(5), DocumentMetaFlags::REMOVE_ENTRY);
+ f.insert(DocumentId("id:ns:type::test:2"), Timestamp(5), DocumentMetaEnum::REMOVE_ENTRY);
EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum());
- f.insert(DocumentId("id:ns:type::test:1"), Timestamp(6), DocumentMetaFlags::REMOVE_ENTRY);
- f.insert(DocumentId("id:ns:type::test:3"), Timestamp(7), DocumentMetaFlags::REMOVE_ENTRY);
+ f.insert(DocumentId("id:ns:type::test:1"), Timestamp(6), DocumentMetaEnum::REMOVE_ENTRY);
+ f.insert(DocumentId("id:ns:type::test:3"), Timestamp(7), DocumentMetaEnum::REMOVE_ENTRY);
EXPECT_EQUAL(0u, f.content.getBucketInfo().getChecksum());
}
diff --git a/persistence/src/tests/spi/clusterstatetest.cpp b/persistence/src/tests/spi/clusterstatetest.cpp
index c6c523c202d..2186d408791 100644
--- a/persistence/src/tests/spi/clusterstatetest.cpp
+++ b/persistence/src/tests/spi/clusterstatetest.cpp
@@ -267,7 +267,7 @@ TEST(DocEntryTest, test_basics) {
}
TEST(DocEntryTest, test_meta_only) {
- DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaFlags::NONE);
+ DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaEnum::NONE);
EXPECT_EQ(9, e->getTimestamp());
EXPECT_FALSE(e->isRemove());
EXPECT_EQ(24, e->getSize());
@@ -276,13 +276,13 @@ TEST(DocEntryTest, test_meta_only) {
EXPECT_EQ("", e->getDocumentType());
EXPECT_EQ(GlobalId(), e->getGid());
- DocEntry::UP r = DocEntry::create(Timestamp(666), DocumentMetaFlags::REMOVE_ENTRY);
+ DocEntry::UP r = DocEntry::create(Timestamp(666), DocumentMetaEnum::REMOVE_ENTRY);
EXPECT_EQ(666, r->getTimestamp());
EXPECT_TRUE(r->isRemove());
}
TEST(DocEntryTest, test_docid_only) {
- DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaFlags::NONE, DocumentId("id:test:test::1"));
+ DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaEnum::NONE, DocumentId("id:test:test::1"));
EXPECT_EQ(9, e->getTimestamp());
EXPECT_FALSE(e->isRemove());
EXPECT_EQ(16, e->getSize());
@@ -293,7 +293,7 @@ TEST(DocEntryTest, test_docid_only) {
}
TEST(DocEntryTest, test_doctype_and_gid) {
- DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaFlags::NONE, "doc_type", GlobalId::parse("gid(0xc4cef118f9f9649222750be2)"));
+ DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaEnum::NONE, "doc_type", GlobalId::parse("gid(0xc4cef118f9f9649222750be2)"));
EXPECT_EQ(9, e->getTimestamp());
EXPECT_FALSE(e->isRemove());
EXPECT_EQ(20, e->getSize());
diff --git a/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp b/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
index 84494c312b6..6afdd142457 100644
--- a/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
+++ b/persistence/src/vespa/persistence/conformancetest/conformancetest.cpp
@@ -31,11 +31,12 @@ using storage::spi::test::cloneDocEntry;
namespace storage::spi {
using PersistenceProviderUP = std::unique_ptr<PersistenceProvider>;
+using DocEntryList = std::vector<DocEntry::UP>;
namespace {
-std::unique_ptr<PersistenceProvider> getSpi(ConformanceTest::PersistenceFactory &factory,
- const document::TestDocMan &testDocMan) {
+std::unique_ptr<PersistenceProvider>
+getSpi(ConformanceTest::PersistenceFactory &factory, const document::TestDocMan &testDocMan) {
PersistenceProviderUP result(factory.getPersistenceImplementation(
testDocMan.getTypeRepoSP(), *testDocMan.getTypeConfig()));
EXPECT_TRUE(!result->initialize().hasError());
@@ -125,7 +126,7 @@ struct DocAndTimestamp
*/
struct Chunk
{
- std::vector<DocEntry::UP> _entries;
+ DocEntryList _entries;
};
struct DocEntryIndirectTimestampComparator
@@ -168,7 +169,7 @@ doIterate(PersistenceProvider& spi,
}
size_t
-getRemoveEntryCount(const std::vector<spi::DocEntry::UP>& entries)
+getRemoveEntryCount(const DocEntryList& entries)
{
size_t ret = 0;
for (size_t i = 0; i < entries.size(); ++i) {
@@ -179,10 +180,10 @@ getRemoveEntryCount(const std::vector<spi::DocEntry::UP>& entries)
return ret;
}
-std::vector<DocEntry::UP>
+DocEntryList
getEntriesFromChunks(const std::vector<Chunk>& chunks)
{
- std::vector<spi::DocEntry::UP> ret;
+ DocEntryList ret;
for (size_t chunk = 0; chunk < chunks.size(); ++chunk) {
for (size_t i = 0; i < chunks[chunk]._entries.size(); ++i) {
ret.push_back(cloneDocEntry(*chunks[chunk]._entries[i]));
@@ -195,12 +196,12 @@ getEntriesFromChunks(const std::vector<Chunk>& chunks)
}
-std::vector<DocEntry::UP>
+DocEntryList
iterateBucket(PersistenceProvider& spi,
const Bucket& bucket,
IncludedVersions versions)
{
- std::vector<DocEntry::UP> ret;
+ DocEntryList ret;
DocumentSelection docSel("");
Selection sel(docSel);
@@ -219,7 +220,7 @@ iterateBucket(PersistenceProvider& spi,
spi.iterate(iter.getIteratorId(),
std::numeric_limits<int64_t>().max(), context);
if (result.getErrorCode() != Result::ErrorType::NONE) {
- return std::vector<DocEntry::UP>();
+ return DocEntryList();
}
auto list = result.steal_entries();
std::move(list.begin(), list.end(), std::back_inserter(ret));
@@ -240,7 +241,7 @@ verifyDocs(const std::vector<DocAndTimestamp>& wanted,
const std::vector<Chunk>& chunks,
const std::set<string>& removes = std::set<string>())
{
- std::vector<DocEntry::UP> retrieved = getEntriesFromChunks(chunks);
+ DocEntryList retrieved = getEntriesFromChunks(chunks);
size_t removeCount = getRemoveEntryCount(retrieved);
// Ensure that we've got the correct number of puts and removes
EXPECT_EQ(removes.size(), removeCount);
@@ -696,8 +697,7 @@ TEST_F(ConformanceTest, testPutDuplicate)
EXPECT_EQ(1, (int)info.getDocumentCount());
EXPECT_EQ(checksum, info.getChecksum());
}
- std::vector<DocEntry::UP> entries(
- iterateBucket(*spi, bucket, ALL_VERSIONS));
+ DocEntryList entries = iterateBucket(*spi, bucket, ALL_VERSIONS);
EXPECT_EQ(size_t(1), entries.size());
}
@@ -721,8 +721,7 @@ TEST_F(ConformanceTest, testRemove)
EXPECT_EQ(1, (int)info.getDocumentCount());
EXPECT_TRUE(info.getChecksum() != 0);
- std::vector<DocEntry::UP> entries(
- iterateBucket(*spi, bucket, NEWEST_DOCUMENT_ONLY));
+ DocEntryList entries = iterateBucket(*spi, bucket, NEWEST_DOCUMENT_ONLY);
EXPECT_EQ(size_t(1), entries.size());
}
@@ -740,15 +739,11 @@ TEST_F(ConformanceTest, testRemove)
EXPECT_EQ(true, result2.wasFound());
}
{
- std::vector<DocEntry::UP> entries(iterateBucket(*spi,
- bucket,
- NEWEST_DOCUMENT_ONLY));
+ DocEntryList entries = iterateBucket(*spi, bucket,NEWEST_DOCUMENT_ONLY);
EXPECT_EQ(size_t(0), entries.size());
}
{
- std::vector<DocEntry::UP> entries(iterateBucket(*spi,
- bucket,
- NEWEST_DOCUMENT_OR_REMOVE));
+ DocEntryList entries = iterateBucket(*spi, bucket,NEWEST_DOCUMENT_OR_REMOVE);
EXPECT_EQ(size_t(1), entries.size());
}
@@ -861,8 +856,7 @@ TEST_F(ConformanceTest, testRemoveMerge)
// Remove entry should exist afterwards
{
- std::vector<DocEntry::UP> entries(iterateBucket(
- *spi, bucket, ALL_VERSIONS));
+ DocEntryList entries = iterateBucket(*spi, bucket, ALL_VERSIONS);
EXPECT_EQ(size_t(2), entries.size());
// Timestamp-sorted by iterateBucket
EXPECT_EQ(removeId, *entries.back()->getDocumentId());
@@ -888,7 +882,7 @@ TEST_F(ConformanceTest, testRemoveMerge)
}
// Must have new remove. We don't check for the presence of the old remove.
{
- std::vector<DocEntry::UP> entries(iterateBucket(*spi, bucket, ALL_VERSIONS));
+ DocEntryList entries = iterateBucket(*spi, bucket, ALL_VERSIONS);
EXPECT_TRUE(entries.size() >= 2);
EXPECT_EQ(removeId, *entries.back()->getDocumentId());
EXPECT_EQ(Timestamp(11), entries.back()->getTimestamp());
@@ -914,7 +908,7 @@ TEST_F(ConformanceTest, testRemoveMerge)
}
// Must have newest remove. We don't check for the presence of the old remove.
{
- std::vector<DocEntry::UP> entries(iterateBucket(*spi, bucket, ALL_VERSIONS));
+ DocEntryList entries = iterateBucket(*spi, bucket, ALL_VERSIONS);
EXPECT_TRUE(entries.size() >= 2);
EXPECT_EQ(removeId, *entries.back()->getDocumentId());
EXPECT_EQ(Timestamp(11), entries.back()->getTimestamp());
@@ -1350,7 +1344,7 @@ TEST_F(ConformanceTest, testIterateRemoves)
CreateIteratorResult iter(createIterator(*spi, b, sel, NEWEST_DOCUMENT_OR_REMOVE));
std::vector<Chunk> chunks = doIterate(*spi, iter.getIteratorId(), 4_Ki);
- std::vector<DocEntry::UP> entries = getEntriesFromChunks(chunks);
+ DocEntryList entries = getEntriesFromChunks(chunks);
EXPECT_EQ(docs.size(), entries.size());
verifyDocs(nonRemovedDocs, chunks, removedDocs);
diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
index 30d5061d37e..d947ca51f49 100644
--- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
+++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp
@@ -493,7 +493,7 @@ DummyPersistence::removeAsync(const Bucket& b, std::vector<TimeStampAndDocumentI
}
DocEntry::SP entry((*bc)->getEntry(id));
numRemoves += (entry.get() && !entry->isRemove()) ? 1 : 0;
- auto remEntry = DocEntry::create(t, DocumentMetaFlags::REMOVE_ENTRY, id);
+ auto remEntry = DocEntry::create(t, DocumentMetaEnum::REMOVE_ENTRY, id);
if ((*bc)->hasTimestamp(t)) {
(*bc)->eraseEntry(t);
diff --git a/persistence/src/vespa/persistence/spi/docentry.cpp b/persistence/src/vespa/persistence/spi/docentry.cpp
index 43a7e519b53..f0329e8cc5e 100644
--- a/persistence/src/vespa/persistence/spi/docentry.cpp
+++ b/persistence/src/vespa/persistence/spi/docentry.cpp
@@ -11,7 +11,7 @@ namespace {
class DocEntryWithId final : public DocEntry {
public:
- DocEntryWithId(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId);
+ DocEntryWithId(Timestamp t, DocumentMetaEnum metaEnum, const DocumentId &docId);
~DocEntryWithId();
vespalib::string toString() const override;
const DocumentId* getDocumentId() const override { return & _documentId; }
@@ -23,7 +23,7 @@ private:
class DocEntryWithTypeAndGid final : public DocEntry {
public:
- DocEntryWithTypeAndGid(Timestamp t, DocumentMetaFlags metaFlags, vespalib::stringref docType, GlobalId gid);
+ DocEntryWithTypeAndGid(Timestamp t, DocumentMetaEnum metaEnum, vespalib::stringref docType, GlobalId gid);
~DocEntryWithTypeAndGid();
vespalib::string toString() const override;
vespalib::stringref getDocumentType() const override { return _type; }
@@ -56,22 +56,22 @@ private:
};
DocEntryWithDoc::DocEntryWithDoc(Timestamp t, DocumentUP doc)
- : DocEntry(t, DocumentMetaFlags::NONE, doc->serialize().size()),
+ : DocEntry(t, DocumentMetaEnum::NONE, doc->serialize().size()),
_document(std::move(doc))
{ }
DocEntryWithDoc::DocEntryWithDoc(Timestamp t, DocumentUP doc, size_t serializedDocumentSize)
- : DocEntry(t, DocumentMetaFlags::NONE, serializedDocumentSize),
+ : DocEntry(t, DocumentMetaEnum::NONE, serializedDocumentSize),
_document(std::move(doc))
{ }
-DocEntryWithId::DocEntryWithId(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId& docId)
- : DocEntry(t, metaFlags, docId.getSerializedSize()),
+DocEntryWithId::DocEntryWithId(Timestamp t, DocumentMetaEnum metaEnum, const DocumentId& docId)
+ : DocEntry(t, metaEnum, docId.getSerializedSize()),
_documentId(docId)
{ }
-DocEntryWithTypeAndGid::DocEntryWithTypeAndGid(Timestamp t, DocumentMetaFlags metaFlags, vespalib::stringref docType, GlobalId gid)
- : DocEntry(t, metaFlags, docType.size() + sizeof(gid)),
+DocEntryWithTypeAndGid::DocEntryWithTypeAndGid(Timestamp t, DocumentMetaEnum metaEnum, vespalib::stringref docType, GlobalId gid)
+ : DocEntry(t, metaEnum, docType.size() + sizeof(gid)),
_type(docType),
_gid(gid)
{ }
@@ -84,7 +84,7 @@ vespalib::string
DocEntryWithId::toString() const
{
std::ostringstream out;
- out << "DocEntry(" << getTimestamp() << ", " << int(getFlags()) << ", " << _documentId << ")";
+ out << "DocEntry(" << getTimestamp() << ", " << int(getMetaEnum()) << ", " << _documentId << ")";
return out.str();
}
@@ -92,7 +92,7 @@ vespalib::string
DocEntryWithTypeAndGid::toString() const
{
std::ostringstream out;
- out << "DocEntry(" << getTimestamp() << ", " << int(getFlags()) << ", " << _type << ", " << _gid << ")";
+ out << "DocEntry(" << getTimestamp() << ", " << int(getMetaEnum()) << ", " << _type << ", " << _gid << ")";
return out.str();
}
@@ -100,7 +100,7 @@ vespalib::string
DocEntryWithDoc::toString() const
{
std::ostringstream out;
- out << "DocEntry(" << getTimestamp() << ", " << int(getFlags()) << ", ";
+ out << "DocEntry(" << getTimestamp() << ", " << int(getMetaEnum()) << ", ";
if (_document.get()) {
out << "Doc(" << _document->getId() << ")";
} else {
@@ -113,16 +113,16 @@ DocEntryWithDoc::toString() const
}
DocEntry::UP
-DocEntry::create(Timestamp t, DocumentMetaFlags metaFlags) {
- return UP(new DocEntry(t, metaFlags));
+DocEntry::create(Timestamp t, DocumentMetaEnum metaEnum) {
+ return UP(new DocEntry(t, metaEnum));
}
DocEntry::UP
-DocEntry::create(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId) {
- return std::make_unique<DocEntryWithId>(t, metaFlags, docId);
+DocEntry::create(Timestamp t, DocumentMetaEnum metaEnum, const DocumentId &docId) {
+ return std::make_unique<DocEntryWithId>(t, metaEnum, docId);
}
DocEntry::UP
-DocEntry::create(Timestamp t, DocumentMetaFlags metaFlags, vespalib::stringref docType, GlobalId gid) {
- return std::make_unique<DocEntryWithTypeAndGid>(t, metaFlags, docType, gid);
+DocEntry::create(Timestamp t, DocumentMetaEnum metaEnum, vespalib::stringref docType, GlobalId gid) {
+ return std::make_unique<DocEntryWithTypeAndGid>(t, metaEnum, docType, gid);
}
DocEntry::UP
DocEntry::create(Timestamp t, DocumentUP doc) {
@@ -144,7 +144,7 @@ vespalib::string
DocEntry::toString() const
{
std::ostringstream out;
- out << "DocEntry(" << _timestamp << ", " << int(_metaFlags) << ", metadata only)";
+ out << "DocEntry(" << _timestamp << ", " << int(_metaEnum) << ", metadata only)";
return out.str();
}
diff --git a/persistence/src/vespa/persistence/spi/docentry.h b/persistence/src/vespa/persistence/spi/docentry.h
index d263527dff6..9ad06b41e90 100644
--- a/persistence/src/vespa/persistence/spi/docentry.h
+++ b/persistence/src/vespa/persistence/spi/docentry.h
@@ -18,7 +18,7 @@
namespace storage::spi {
-enum class DocumentMetaFlags {
+enum class DocumentMetaEnum {
NONE = 0x0,
REMOVE_ENTRY = 0x1
};
@@ -34,9 +34,9 @@ public:
DocEntry(DocEntry &&) = delete;
DocEntry & operator=(DocEntry &&) = delete;
virtual ~DocEntry();
- bool isRemove() const { return (_metaFlags == DocumentMetaFlags::REMOVE_ENTRY); }
+ bool isRemove() const { return (_metaEnum == DocumentMetaEnum::REMOVE_ENTRY); }
Timestamp getTimestamp() const { return _timestamp; }
- DocumentMetaFlags getFlags() const { return _metaFlags; }
+ DocumentMetaEnum getMetaEnum() const { return _metaEnum; }
/**
* If entry contains a document, returns its serialized size.
* If entry contains a document id, returns the serialized size of
@@ -51,22 +51,22 @@ public:
virtual vespalib::stringref getDocumentType() const { return vespalib::stringref(); }
virtual GlobalId getGid() const { return GlobalId(); }
virtual DocumentUP releaseDocument();
- static UP create(Timestamp t, DocumentMetaFlags metaFlags);
- static UP create(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId);
- static UP create(Timestamp t, DocumentMetaFlags metaFlags, vespalib::stringref docType, GlobalId gid);
+ static UP create(Timestamp t, DocumentMetaEnum metaEnum);
+ static UP create(Timestamp t, DocumentMetaEnum metaEnum, const DocumentId &docId);
+ static UP create(Timestamp t, DocumentMetaEnum metaEnum, vespalib::stringref docType, GlobalId gid);
static UP create(Timestamp t, DocumentUP doc);
static UP create(Timestamp t, DocumentUP doc, SizeType serializedDocumentSize);
protected:
- DocEntry(Timestamp t, DocumentMetaFlags metaFlags, SizeType size)
+ DocEntry(Timestamp t, DocumentMetaEnum metaEnum, SizeType size)
: _timestamp(t),
- _metaFlags(metaFlags),
+ _metaEnum(metaEnum),
_size(size)
{}
private:
- DocEntry(Timestamp t, DocumentMetaFlags metaFlags) : DocEntry(t, metaFlags, sizeof(DocEntry)) { }
- Timestamp _timestamp;
- DocumentMetaFlags _metaFlags;
- SizeType _size;
+ DocEntry(Timestamp t, DocumentMetaEnum metaEnum) : DocEntry(t, metaEnum, sizeof(DocEntry)) { }
+ Timestamp _timestamp;
+ DocumentMetaEnum _metaEnum;
+ SizeType _size;
};
std::ostream & operator << (std::ostream & os, const DocEntry & r);
diff --git a/persistence/src/vespa/persistence/spi/test.cpp b/persistence/src/vespa/persistence/spi/test.cpp
index f6ad2dd3b49..58a8ce3fe52 100644
--- a/persistence/src/vespa/persistence/spi/test.cpp
+++ b/persistence/src/vespa/persistence/spi/test.cpp
@@ -23,9 +23,9 @@ cloneDocEntry(const DocEntry & e) {
if (e.getDocument()) {
ret = DocEntry::create(e.getTimestamp(), std::make_unique<Document>(*e.getDocument()), e.getSize());
} else if (e.getDocumentId()) {
- ret = DocEntry::create(e.getTimestamp(), e.getFlags(), *e.getDocumentId());
+ ret = DocEntry::create(e.getTimestamp(), e.getMetaEnum(), *e.getDocumentId());
} else {
- ret = DocEntry::create(e.getTimestamp(), e.getFlags());
+ ret = DocEntry::create(e.getTimestamp(), e.getMetaEnum());
}
return ret;
}
@@ -33,7 +33,7 @@ cloneDocEntry(const DocEntry & e) {
bool
equal(const DocEntry & a, const DocEntry & b) {
if (a.getTimestamp() != b.getTimestamp()) return false;
- if (a.getFlags() != b.getFlags()) return false;
+ if (a.getMetaEnum() != b.getMetaEnum()) return false;
if (a.getSize() != b.getSize()) return false;
if (a.getDocument()) {
diff --git a/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp b/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp
index 3d4d20bbe9c..82eac88a53e 100644
--- a/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp
+++ b/searchcore/src/tests/proton/document_iterator/document_iterator_test.cpp
@@ -48,7 +48,7 @@ using storage::spi::IncludedVersions;
using storage::spi::IterateResult;
using storage::spi::Selection;
using storage::spi::Timestamp;
-using storage::spi::DocumentMetaFlags;
+using storage::spi::DocumentMetaEnum;
using storage::spi::test::makeSpiBucket;
using storage::spi::test::equal;
@@ -384,7 +384,7 @@ void checkDoc(const IDocumentRetriever &dr, const std::string &id,
EXPECT_TRUE(DocumentId(id) == doc->getId());
}
-void checkEntry(const IterateResult &res, size_t idx, const Timestamp &timestamp, DocumentMetaFlags flags)
+void checkEntry(const IterateResult &res, size_t idx, const Timestamp &timestamp, DocumentMetaEnum flags)
{
ASSERT_LESS(idx, res.getEntries().size());
auto expect = DocEntry::create(timestamp, flags);
@@ -395,7 +395,7 @@ void checkEntry(const IterateResult &res, size_t idx, const Timestamp &timestamp
void checkEntry(const IterateResult &res, size_t idx, const DocumentId &id, const Timestamp &timestamp)
{
ASSERT_LESS(idx, res.getEntries().size());
- auto expect = DocEntry::create(timestamp, DocumentMetaFlags::REMOVE_ENTRY, id);
+ auto expect = DocEntry::create(timestamp, DocumentMetaEnum::REMOVE_ENTRY, id);
EXPECT_TRUE(equal(*expect, *res.getEntries()[idx]));
EXPECT_EQUAL(getSize(id), res.getEntries()[idx]->getSize());
EXPECT_GREATER(getSize(id), 0u);
@@ -606,9 +606,9 @@ TEST("require that using an empty field set returns meta-data only") {
IterateResult res = itr.iterate(largeNum);
EXPECT_TRUE(res.isCompleted());
EXPECT_EQUAL(3u, res.getEntries().size());
- TEST_DO(checkEntry(res, 0, Timestamp(2), DocumentMetaFlags::NONE));
- TEST_DO(checkEntry(res, 1, Timestamp(3), DocumentMetaFlags::NONE));
- TEST_DO(checkEntry(res, 2, Timestamp(4), DocumentMetaFlags::REMOVE_ENTRY));
+ TEST_DO(checkEntry(res, 0, Timestamp(2), DocumentMetaEnum::NONE));
+ TEST_DO(checkEntry(res, 1, Timestamp(3), DocumentMetaEnum::NONE));
+ TEST_DO(checkEntry(res, 2, Timestamp(4), DocumentMetaEnum::REMOVE_ENTRY));
}
TEST("require that entries in other buckets are skipped") {
@@ -651,12 +651,12 @@ TEST("require that maxBytes splits iteration results for meta-data only iteratio
IterateResult res1 = itr.iterate(2 * sizeof(DocEntry));
EXPECT_TRUE(!res1.isCompleted());
EXPECT_EQUAL(2u, res1.getEntries().size());
- TEST_DO(checkEntry(res1, 0, Timestamp(2), DocumentMetaFlags::NONE));
- TEST_DO(checkEntry(res1, 1, Timestamp(3), DocumentMetaFlags::REMOVE_ENTRY));
+ TEST_DO(checkEntry(res1, 0, Timestamp(2), DocumentMetaEnum::NONE));
+ TEST_DO(checkEntry(res1, 1, Timestamp(3), DocumentMetaEnum::REMOVE_ENTRY));
IterateResult res2 = itr.iterate(largeNum);
EXPECT_TRUE(res2.isCompleted());
- TEST_DO(checkEntry(res2, 0, Timestamp(4), DocumentMetaFlags::NONE));
+ TEST_DO(checkEntry(res2, 0, Timestamp(4), DocumentMetaEnum::NONE));
IterateResult res3 = itr.iterate(largeNum);
EXPECT_TRUE(res3.isCompleted());
diff --git a/searchcore/src/vespa/searchcore/proton/persistenceengine/document_iterator.cpp b/searchcore/src/vespa/searchcore/proton/persistenceengine/document_iterator.cpp
index a798b2c2f93..278b0c68dab 100644
--- a/searchcore/src/vespa/searchcore/proton/persistenceengine/document_iterator.cpp
+++ b/searchcore/src/vespa/searchcore/proton/persistenceengine/document_iterator.cpp
@@ -18,7 +18,7 @@ using storage::spi::DocEntry;
using storage::spi::Timestamp;
using document::Document;
using document::DocumentId;
-using storage::spi::DocumentMetaFlags;
+using storage::spi::DocumentMetaEnum;
namespace proton {
@@ -26,14 +26,14 @@ namespace {
std::unique_ptr<DocEntry>
createDocEntry(Timestamp timestamp, bool removed) {
- return DocEntry::create(timestamp, removed ? DocumentMetaFlags::REMOVE_ENTRY : DocumentMetaFlags::NONE);
+ return DocEntry::create(timestamp, removed ? DocumentMetaEnum::REMOVE_ENTRY : DocumentMetaEnum::NONE);
}
std::unique_ptr<DocEntry>
createDocEntry(Timestamp timestamp, bool removed, Document::UP doc, ssize_t defaultSerializedSize) {
if (doc) {
if (removed) {
- return DocEntry::create(timestamp, DocumentMetaFlags::REMOVE_ENTRY, doc->getId());
+ return DocEntry::create(timestamp, DocumentMetaEnum::REMOVE_ENTRY, doc->getId());
} else {
ssize_t serializedSize = defaultSerializedSize >= 0 ? defaultSerializedSize : doc->serialize().size();
return DocEntry::create(timestamp, std::move(doc), serializedSize);
diff --git a/storage/src/tests/persistence/splitbitdetectortest.cpp b/storage/src/tests/persistence/splitbitdetectortest.cpp
index d4e84836a5a..5c4dc85e825 100644
--- a/storage/src/tests/persistence/splitbitdetectortest.cpp
+++ b/storage/src/tests/persistence/splitbitdetectortest.cpp
@@ -15,6 +15,8 @@ using namespace ::testing;
namespace storage {
+using DocEntryList = std::vector<spi::DocEntry::UP>;
+
struct SplitBitDetectorTest : Test {
document::TestDocMan testDocMan;
spi::dummy::DummyPersistence provider;
@@ -33,7 +35,7 @@ struct SplitBitDetectorTest : Test {
};
TEST_F(SplitBitDetectorTest, two_users) {
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t i = 0; i < 5; ++i) {
document::Document::SP doc(
testDocMan.createRandomDocumentAtLocation(1, i, 1, 1));
@@ -54,7 +56,7 @@ TEST_F(SplitBitDetectorTest, two_users) {
}
TEST_F(SplitBitDetectorTest, single_user) {
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t i = 0; i < 10; ++i) {
document::Document::SP doc(
testDocMan.createRandomDocumentAtLocation(1, i, 1, 1));
@@ -71,7 +73,7 @@ TEST_F(SplitBitDetectorTest, single_user) {
TEST_F(SplitBitDetectorTest, max_bits) {
int minContentSize = 1, maxContentSize = 1;
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t seed = 0; seed < 10; ++seed) {
int location = 1;
document::Document::SP doc(testDocMan.createRandomDocumentAtLocation(
@@ -92,7 +94,7 @@ TEST_F(SplitBitDetectorTest, max_bits_one_below_max) {
provider.createBucket(my_bucket, context);
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t seed = 0; seed < 10; ++seed) {
int location = 1 | (seed % 2 == 0 ? 0x8000 : 0);
document::Document::SP doc(testDocMan.createRandomDocumentAtLocation(
@@ -114,7 +116,7 @@ TEST_F(SplitBitDetectorTest, max_bits_one_below_max) {
}
TEST_F(SplitBitDetectorTest, unsplittable) {
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t i = 0; i < 10; ++i) {
document::Document::SP doc(
@@ -130,7 +132,7 @@ TEST_F(SplitBitDetectorTest, unsplittable) {
}
TEST_F(SplitBitDetectorTest, unsplittable_min_count) {
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
for (uint32_t i = 0; i < 10; ++i) {
document::Document::SP doc(
diff --git a/storage/src/tests/persistence/testandsettest.cpp b/storage/src/tests/persistence/testandsettest.cpp
index f6e48d6c325..8cf89b55ad0 100644
--- a/storage/src/tests/persistence/testandsettest.cpp
+++ b/storage/src/tests/persistence/testandsettest.cpp
@@ -74,7 +74,7 @@ struct TestAndSetTest : PersistenceTestUtils {
static std::string expectedDocEntryString(
api::Timestamp timestamp,
const document::DocumentId & testDocId,
- spi::DocumentMetaFlags removeFlag = spi::DocumentMetaFlags::NONE);
+ spi::DocumentMetaEnum removeFlag = spi::DocumentMetaEnum::NONE);
};
TEST_F(TestAndSetTest, conditional_put_not_executed_on_condition_mismatch) {
@@ -151,7 +151,7 @@ TEST_F(TestAndSetTest, conditional_remove_executed_on_condition_match) {
ASSERT_EQ(fetchResult(asyncHandler->handleRemove(*remove, createTracker(remove, BUCKET))).getResult(), api::ReturnCode::Result::OK);
EXPECT_EQ(expectedDocEntryString(timestampOne, testDocId) +
- expectedDocEntryString(timestampTwo, testDocId, spi::DocumentMetaFlags::REMOVE_ENTRY),
+ expectedDocEntryString(timestampTwo, testDocId, spi::DocumentMetaEnum::REMOVE_ENTRY),
dumpBucket(BUCKET_ID));
}
@@ -292,12 +292,12 @@ void TestAndSetTest::assertTestDocumentFoundAndMatchesContent(const document::Fi
std::string TestAndSetTest::expectedDocEntryString(
api::Timestamp timestamp,
const document::DocumentId & docId,
- spi::DocumentMetaFlags removeFlag)
+ spi::DocumentMetaEnum removeFlag)
{
std::stringstream ss;
ss << "DocEntry(" << timestamp << ", " << int(removeFlag) << ", ";
- if (removeFlag == spi::DocumentMetaFlags::REMOVE_ENTRY) {
+ if (removeFlag == spi::DocumentMetaEnum::REMOVE_ENTRY) {
ss << docId << ")\n";
} else {
ss << "Doc(" << docId << "))\n";
diff --git a/storage/src/vespa/storage/persistence/mergehandler.cpp b/storage/src/vespa/storage/persistence/mergehandler.cpp
index aff6332439b..b9739fcf734 100644
--- a/storage/src/vespa/storage/persistence/mergehandler.cpp
+++ b/storage/src/vespa/storage/persistence/mergehandler.cpp
@@ -130,11 +130,8 @@ void update_op_metrics(FileStorThreadMetrics& metrics, const api::StorageReply &
} // anonymous namespace
void
-MergeHandler::populateMetaData(
- const spi::Bucket& bucket,
- Timestamp maxTimestamp,
- std::vector<spi::DocEntry::UP>& entries,
- spi::Context& context) const
+MergeHandler::populateMetaData(const spi::Bucket& bucket, Timestamp maxTimestamp,
+ DocEntryList& entries, spi::Context& context) const
{
spi::DocumentSelection docSel("");
@@ -150,9 +147,7 @@ MergeHandler::populateMetaData(
if (createIterResult.getErrorCode() != spi::Result::ErrorType::NONE) {
std::ostringstream ss;
ss << "Failed to create iterator for "
- << bucket
- << ": "
- << createIterResult.getErrorMessage();
+ << bucket << ": " << createIterResult.getErrorMessage();
throw std::runtime_error(ss.str());
}
spi::IteratorId iteratorId(createIterResult.getIteratorId());
@@ -163,9 +158,7 @@ MergeHandler::populateMetaData(
if (result.getErrorCode() != spi::Result::ErrorType::NONE) {
std::ostringstream ss;
ss << "Failed to iterate for "
- << bucket
- << ": "
- << result.getErrorMessage();
+ << bucket << ": " << result.getErrorMessage();
throw std::runtime_error(ss.str());
}
auto list = result.steal_entries();
@@ -241,7 +234,7 @@ MergeHandler::buildBucketInfoList(
}
}
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
populateMetaData(bucket, maxTimestamp, entries, context);
for (const auto& entry : entries) {
@@ -402,7 +395,7 @@ MergeHandler::fetchLocalData(
IteratorGuard iteratorGuard(_spi, iteratorId, context);
// Fetch all entries
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
entries.reserve(slots.size());
bool fetchedAllLocalData = false;
bool chunkLimitReached = false;
@@ -557,7 +550,7 @@ MergeHandler::applyDiffLocally(
uint32_t notNeededByteCount = 0;
async_results->mark_stale_bucket_info();
- std::vector<spi::DocEntry::UP> entries;
+ DocEntryList entries;
populateMetaData(bucket, MAX_TIMESTAMP, entries, context);
const document::DocumentTypeRepo & repo = _env.getDocumentTypeRepo();
diff --git a/storage/src/vespa/storage/persistence/mergehandler.h b/storage/src/vespa/storage/persistence/mergehandler.h
index 0f427c11eec..f52fe63bc2b 100644
--- a/storage/src/vespa/storage/persistence/mergehandler.h
+++ b/storage/src/vespa/storage/persistence/mergehandler.h
@@ -81,6 +81,7 @@ public:
void configure(bool async_apply_bucket_diff) noexcept;
private:
+ using DocEntryList = std::vector<std::unique_ptr<spi::DocEntry>>;
const framework::Clock &_clock;
const ClusterContext &_cluster_context;
PersistenceUtil &_env;
@@ -116,7 +117,7 @@ private:
*/
void populateMetaData(const spi::Bucket&,
Timestamp maxTimestamp,
- std::vector<std::unique_ptr<spi::DocEntry>> & entries,
+ DocEntryList & entries,
spi::Context& context) const;
Document::UP deserializeDiffDocument(
diff --git a/storage/src/vespa/storage/visiting/reindexing_visitor.cpp b/storage/src/vespa/storage/visiting/reindexing_visitor.cpp
index c33ea24ed99..0b08c52bdc4 100644
--- a/storage/src/vespa/storage/visiting/reindexing_visitor.cpp
+++ b/storage/src/vespa/storage/visiting/reindexing_visitor.cpp
@@ -16,7 +16,7 @@ ReindexingVisitor::ReindexingVisitor(StorageComponent& component)
}
void ReindexingVisitor::handleDocuments(const document::BucketId& ,
- std::vector<spi::DocEntry::UP>& entries,
+ DocEntryList & entries,
HitCounter& hitCounter)
{
auto lock_token = make_lock_access_token();
diff --git a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
index d36819f1536..a936146fd26 100644
--- a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
+++ b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
@@ -55,11 +55,11 @@ SearchVisitorTest::SearchVisitorTest() :
SearchVisitorTest::~SearchVisitorTest() = default;
-std::vector<spi::DocEntry::UP>
+Visitor::DocEntryList
createDocuments(const vespalib::string & dir)
{
(void) dir;
- std::vector<spi::DocEntry::UP> documents;
+ Visitor::DocEntryList documents;
spi::Timestamp ts;
auto e = spi::DocEntry::create(ts, std::make_unique<Document>());
documents.push_back(std::move(e));
@@ -73,7 +73,7 @@ SearchVisitorTest::testCreateSearchVisitor(const vespalib::string & dir, const v
VisitorFactory & factory(sFactory);
std::unique_ptr<Visitor> sv(static_cast<SearchVisitor *>(factory.makeVisitor(*_component, _env, params)));
document::BucketId bucketId;
- std::vector<spi::DocEntry::UP> documents(createDocuments(dir));
+ Visitor::DocEntryList documents(createDocuments(dir));
Visitor::HitCounter hitCounter;
sv->handleDocuments(bucketId, documents, hitCounter);
}