Fix build for storage tests
This commit is contained in:
parent
3c0ae50a15
commit
2250cadd28
@ -6,11 +6,13 @@ set(storage_v2_src_files
|
|||||||
durability/serialization.cpp
|
durability/serialization.cpp
|
||||||
durability/snapshot.cpp
|
durability/snapshot.cpp
|
||||||
durability/wal.cpp
|
durability/wal.cpp
|
||||||
|
edge_accessor.cpp
|
||||||
indices.cpp
|
indices.cpp
|
||||||
inmemory/edge_accessor.cpp
|
inmemory/edge_accessor.cpp
|
||||||
inmemory/storage.cpp
|
inmemory/storage.cpp
|
||||||
inmemory/vertex_accessor.cpp
|
inmemory/vertex_accessor.cpp
|
||||||
property_store.cpp
|
property_store.cpp
|
||||||
|
storage.cpp
|
||||||
vertex_accessor.cpp)
|
vertex_accessor.cpp)
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,8 +18,7 @@ namespace memgraph::storage {
|
|||||||
|
|
||||||
std::unique_ptr<EdgeAccessor> EdgeAccessor::Create(EdgeRef edge, EdgeTypeId edge_type, Vertex *from_vertex,
|
std::unique_ptr<EdgeAccessor> EdgeAccessor::Create(EdgeRef edge, EdgeTypeId edge_type, Vertex *from_vertex,
|
||||||
Vertex *to_vertex, Transaction *transaction, Indices *indices,
|
Vertex *to_vertex, Transaction *transaction, Indices *indices,
|
||||||
Constraints *constraints, Config::Items config,
|
Constraints *constraints, Config::Items config, bool for_deleted) {
|
||||||
bool for_deleted = false) {
|
|
||||||
return std::make_unique<InMemoryEdgeAccessor>(edge, edge_type, from_vertex, to_vertex, transaction, indices,
|
return std::make_unique<InMemoryEdgeAccessor>(edge, edge_type, from_vertex, to_vertex, transaction, indices,
|
||||||
constraints, config, for_deleted);
|
constraints, config, for_deleted);
|
||||||
}
|
}
|
||||||
|
@ -71,33 +71,34 @@ std::string RegisterReplicaErrorToString(InMemoryStorage::RegisterReplicaError e
|
|||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
auto AdvanceToVisibleVertex(utils::SkipList<Vertex>::Iterator it, utils::SkipList<Vertex>::Iterator end,
|
// auto AdvanceToVisibleVertex(utils::SkipList<Vertex>::Iterator it, utils::SkipList<Vertex>::Iterator end,
|
||||||
std::unique_ptr<VertexAccessor> &vertex, Transaction *tx, View view, Indices *indices,
|
// std::unique_ptr<VertexAccessor> &vertex, Transaction *tx, View view, Indices *indices,
|
||||||
Constraints *constraints, Config::Items config) {
|
// Constraints *constraints, Config::Items config) {
|
||||||
while (it != end) {
|
// while (it != end) {
|
||||||
vertex = VertexAccessor::Create(&*it, tx, indices, constraints, config, view);
|
// vertex = VertexAccessor::Create(&*it, tx, indices, constraints, config, view);
|
||||||
if (!vertex) {
|
// if (!vertex) {
|
||||||
++it;
|
// ++it;
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
return it;
|
// return it;
|
||||||
}
|
// }
|
||||||
|
|
||||||
AllVerticesIterable::Iterator::Iterator(AllVerticesIterable *self, utils::SkipList<Vertex>::Iterator it)
|
// AllVerticesIterable::Iterator::Iterator(AllVerticesIterable *self, utils::SkipList<Vertex>::Iterator it)
|
||||||
: self_(self),
|
// : self_(self),
|
||||||
it_(AdvanceToVisibleVertex(it, self->vertices_accessor_.end(), self->vertex_, self->transaction_, self->view_,
|
// it_(AdvanceToVisibleVertex(it, self->vertices_accessor_.end(), self->vertex_, self->transaction_, self->view_,
|
||||||
self->indices_, self_->constraints_, self->config_)) {}
|
// self->indices_, self_->constraints_, self->config_)) {}
|
||||||
|
|
||||||
VertexAccessor *AllVerticesIterable::Iterator::operator*() const { return self_->vertex_.get(); }
|
// VertexAccessor *AllVerticesIterable::Iterator::operator*() const { return self_->vertex_.get(); }
|
||||||
|
|
||||||
AllVerticesIterable::Iterator &AllVerticesIterable::Iterator::operator++() {
|
// AllVerticesIterable::Iterator &AllVerticesIterable::Iterator::operator++() {
|
||||||
++it_;
|
// ++it_;
|
||||||
it_ = AdvanceToVisibleVertex(it_, self_->vertices_accessor_.end(), self_->vertex_, self_->transaction_, self_->view_,
|
// it_ = AdvanceToVisibleVertex(it_, self_->vertices_accessor_.end(), self_->vertex_, self_->transaction_,
|
||||||
self_->indices_, self_->constraints_, self_->config_);
|
// self_->view_,
|
||||||
return *this;
|
// self_->indices_, self_->constraints_, self_->config_);
|
||||||
}
|
// return *this;
|
||||||
|
// }
|
||||||
|
|
||||||
InMemoryStorage::InMemoryStorage(Config config)
|
InMemoryStorage::InMemoryStorage(Config config)
|
||||||
: indices_(&constraints_, config.items),
|
: indices_(&constraints_, config.items),
|
||||||
@ -243,8 +244,7 @@ InMemoryStorage::~InMemoryStorage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
InMemoryStorage::InMemoryAccessor::InMemoryAccessor(InMemoryStorage *storage, IsolationLevel isolation_level)
|
InMemoryStorage::InMemoryAccessor::InMemoryAccessor(InMemoryStorage *storage, IsolationLevel isolation_level)
|
||||||
: Accessor(),
|
: storage_(storage),
|
||||||
storage_(storage),
|
|
||||||
// The lock must be acquired before creating the transaction object to
|
// The lock must be acquired before creating the transaction object to
|
||||||
// prevent freshly created transactions from dangling in an active state
|
// prevent freshly created transactions from dangling in an active state
|
||||||
// during exclusive operations.
|
// during exclusive operations.
|
||||||
@ -254,8 +254,7 @@ InMemoryStorage::InMemoryAccessor::InMemoryAccessor(InMemoryStorage *storage, Is
|
|||||||
config_(storage->config_.items) {}
|
config_(storage->config_.items) {}
|
||||||
|
|
||||||
InMemoryStorage::InMemoryAccessor::InMemoryAccessor(InMemoryAccessor &&other) noexcept
|
InMemoryStorage::InMemoryAccessor::InMemoryAccessor(InMemoryAccessor &&other) noexcept
|
||||||
: Accessor(),
|
: storage_(other.storage_),
|
||||||
storage_(other.storage_),
|
|
||||||
storage_guard_(std::move(other.storage_guard_)),
|
storage_guard_(std::move(other.storage_guard_)),
|
||||||
transaction_(std::move(other.transaction_)),
|
transaction_(std::move(other.transaction_)),
|
||||||
commit_timestamp_(other.commit_timestamp_),
|
commit_timestamp_(other.commit_timestamp_),
|
||||||
|
@ -15,16 +15,30 @@
|
|||||||
|
|
||||||
namespace memgraph::storage {
|
namespace memgraph::storage {
|
||||||
|
|
||||||
|
auto AdvanceToVisibleVertex(utils::SkipList<Vertex>::Iterator it, utils::SkipList<Vertex>::Iterator end,
|
||||||
|
std::unique_ptr<VertexAccessor> &vertex, Transaction *tx, View view, Indices *indices,
|
||||||
|
Constraints *constraints, Config::Items config) {
|
||||||
|
while (it != end) {
|
||||||
|
vertex = VertexAccessor::Create(&*it, tx, indices, constraints, config, view);
|
||||||
|
if (!vertex) {
|
||||||
|
++it;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
AllVerticesIterable::Iterator::Iterator(AllVerticesIterable *self, utils::SkipList<Vertex>::Iterator it)
|
AllVerticesIterable::Iterator::Iterator(AllVerticesIterable *self, utils::SkipList<Vertex>::Iterator it)
|
||||||
: self_(self),
|
: self_(self),
|
||||||
it_(AdvanceToVisibleVertex(it, self->vertices_accessor_.end(), &self->vertex_, self->transaction_, self->view_,
|
it_(AdvanceToVisibleVertex(it, self->vertices_accessor_.end(), self->vertex_, self->transaction_, self->view_,
|
||||||
self->indices_, self_->constraints_, self->config_)) {}
|
self->indices_, self_->constraints_, self->config_)) {}
|
||||||
|
|
||||||
VertexAccessor *AllVerticesIterable::Iterator::operator*() const { return self_->vertex_.get(); }
|
VertexAccessor *AllVerticesIterable::Iterator::operator*() const { return self_->vertex_.get(); }
|
||||||
|
|
||||||
AllVerticesIterable::Iterator &AllVerticesIterable::Iterator::operator++() {
|
AllVerticesIterable::Iterator &AllVerticesIterable::Iterator::operator++() {
|
||||||
++it_;
|
++it_;
|
||||||
it_ = AdvanceToVisibleVertex(it_, self_->vertices_accessor_.end(), &self_->vertex_, self_->transaction_, self_->view_,
|
it_ = AdvanceToVisibleVertex(it_, self_->vertices_accessor_.end(), self_->vertex_, self_->transaction_, self_->view_,
|
||||||
self_->indices_, self_->constraints_, self_->config_);
|
self_->indices_, self_->constraints_, self_->config_);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
@ -136,10 +150,12 @@ VerticesIterable::Iterator::Iterator(const VerticesIterable::Iterator &other) :
|
|||||||
new (&all_it_) AllVerticesIterable::Iterator(other.all_it_);
|
new (&all_it_) AllVerticesIterable::Iterator(other.all_it_);
|
||||||
break;
|
break;
|
||||||
case Type::BY_LABEL:
|
case Type::BY_LABEL:
|
||||||
new (&by_label_it_) LabelIndex::Iterable::Iterator(other.by_label_it_);
|
MG_ASSERT(false, "Cannot copy-construct iterator of type BY_LABEL");
|
||||||
|
// new (&by_label_it_) LabelIndex::Iterable::Iterator(other.by_label_it_);
|
||||||
break;
|
break;
|
||||||
case Type::BY_LABEL_PROPERTY:
|
case Type::BY_LABEL_PROPERTY:
|
||||||
new (&by_label_property_it_) LabelPropertyIndex::Iterable::Iterator(other.by_label_property_it_);
|
MG_ASSERT(false, "Cannot copy-construct iterator of type BY_LABEL_PROPERTY");
|
||||||
|
// new (&by_label_property_it_) LabelPropertyIndex::Iterable::Iterator(std::move(other.by_label_property_it_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,10 +168,12 @@ VerticesIterable::Iterator &VerticesIterable::Iterator::operator=(const Vertices
|
|||||||
new (&all_it_) AllVerticesIterable::Iterator(other.all_it_);
|
new (&all_it_) AllVerticesIterable::Iterator(other.all_it_);
|
||||||
break;
|
break;
|
||||||
case Type::BY_LABEL:
|
case Type::BY_LABEL:
|
||||||
new (&by_label_it_) LabelIndex::Iterable::Iterator(other.by_label_it_);
|
MG_ASSERT(false, "Cannot copy-assign iterator of type BY_LABEL");
|
||||||
|
// new (&by_label_it_) LabelIndex::Iterable::Iterator(other.by_label_it_);
|
||||||
break;
|
break;
|
||||||
case Type::BY_LABEL_PROPERTY:
|
case Type::BY_LABEL_PROPERTY:
|
||||||
new (&by_label_property_it_) LabelPropertyIndex::Iterable::Iterator(other.by_label_property_it_);
|
MG_ASSERT(false, "Cannot copy-assign iterator of type BY_LABEL_PROPERTY");
|
||||||
|
// new (&by_label_property_it_) LabelPropertyIndex::Iterable::Iterator(other.by_label_property_it_);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
@ -208,7 +226,7 @@ void VerticesIterable::Iterator::Destroy() noexcept {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VertexAccessor VerticesIterable::Iterator::operator*() const {
|
VertexAccessor *VerticesIterable::Iterator::operator*() const {
|
||||||
switch (type_) {
|
switch (type_) {
|
||||||
case Type::ALL:
|
case Type::ALL:
|
||||||
return *all_it_;
|
return *all_it_;
|
||||||
|
@ -124,7 +124,7 @@ class VerticesIterable final {
|
|||||||
|
|
||||||
~Iterator();
|
~Iterator();
|
||||||
|
|
||||||
VertexAccessor operator*() const;
|
VertexAccessor *operator*() const;
|
||||||
|
|
||||||
Iterator &operator++();
|
Iterator &operator++();
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ class Accessor {
|
|||||||
// and iterators) are *invalid*. You have to get all derived objects again.
|
// and iterators) are *invalid*. You have to get all derived objects again.
|
||||||
Accessor(Accessor &&other) noexcept;
|
Accessor(Accessor &&other) noexcept;
|
||||||
|
|
||||||
virtual ~Accessor();
|
virtual ~Accessor() {}
|
||||||
|
|
||||||
/// @throw std::bad_alloc
|
/// @throw std::bad_alloc
|
||||||
virtual std::unique_ptr<VertexAccessor> CreateVertex() = 0;
|
virtual std::unique_ptr<VertexAccessor> CreateVertex() = 0;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2022 Memgraph Ltd.
|
// Copyright 2023 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@ -11,10 +11,11 @@
|
|||||||
|
|
||||||
#include "storage_test_utils.hpp"
|
#include "storage_test_utils.hpp"
|
||||||
|
|
||||||
size_t CountVertices(memgraph::storage::Storage::Accessor &storage_accessor, memgraph::storage::View view) {
|
size_t CountVertices(memgraph::storage::InMemoryStorage::InMemoryAccessor &storage_accessor,
|
||||||
|
memgraph::storage::View view) {
|
||||||
auto vertices = storage_accessor.Vertices(view);
|
auto vertices = storage_accessor.Vertices(view);
|
||||||
size_t count = 0U;
|
size_t count = 0U;
|
||||||
for (auto it = vertices.begin(); it != vertices.end(); ++it, ++count)
|
for (auto it = vertices.begin(); it != vertices.end(); ++it, ++count)
|
||||||
;
|
;
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2022 Memgraph Ltd.
|
// Copyright 2023 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@ -11,7 +11,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "storage/v2/storage.hpp"
|
#include "storage/v2/inmemory/storage.hpp"
|
||||||
#include "storage/v2/view.hpp"
|
#include "storage/v2/view.hpp"
|
||||||
|
|
||||||
size_t CountVertices(memgraph::storage::Storage::Accessor &storage_accessor, memgraph::storage::View view);
|
size_t CountVertices(memgraph::storage::InMemoryStorage::InMemoryAccessor &storage_accessor,
|
||||||
|
memgraph::storage::View view);
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user