* Add AUTH system tx deltas * Add auth data RPC and handlers * Support multiple system deltas in a single transaction * Added e2e test * Bugfix: KVStore segfault after move --------- Co-authored-by: Gareth Lloyd <gareth.lloyd@memgraph.io>
119 lines
4.6 KiB
C++
119 lines
4.6 KiB
C++
// Copyright 2024 Memgraph Ltd.
|
|
//
|
|
// 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
|
|
// License, and you may not use this file except in compliance with the Business Source License.
|
|
//
|
|
// As of the Change Date specified in that file, in accordance with
|
|
// the Business Source License, use of this software will be governed
|
|
// by the Apache License, Version 2.0, included in the file
|
|
// licenses/APL.txt.
|
|
|
|
#include "dbms/rpc.hpp"
|
|
|
|
#include "slk/streams.hpp"
|
|
#include "storage/v2/replication/rpc.hpp"
|
|
#include "utils/enum.hpp"
|
|
#include "utils/typeinfo.hpp"
|
|
|
|
namespace memgraph {
|
|
|
|
namespace storage::replication {
|
|
|
|
void CreateDatabaseReq::Save(const CreateDatabaseReq &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self, builder);
|
|
}
|
|
void CreateDatabaseReq::Load(CreateDatabaseReq *self, memgraph::slk::Reader *reader) {
|
|
memgraph::slk::Load(self, reader);
|
|
}
|
|
void CreateDatabaseRes::Save(const CreateDatabaseRes &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self, builder);
|
|
}
|
|
void CreateDatabaseRes::Load(CreateDatabaseRes *self, memgraph::slk::Reader *reader) {
|
|
memgraph::slk::Load(self, reader);
|
|
}
|
|
void DropDatabaseReq::Save(const DropDatabaseReq &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self, builder);
|
|
}
|
|
void DropDatabaseReq::Load(DropDatabaseReq *self, memgraph::slk::Reader *reader) { memgraph::slk::Load(self, reader); }
|
|
void DropDatabaseRes::Save(const DropDatabaseRes &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self, builder);
|
|
}
|
|
void DropDatabaseRes::Load(DropDatabaseRes *self, memgraph::slk::Reader *reader) { memgraph::slk::Load(self, reader); }
|
|
|
|
const utils::TypeInfo CreateDatabaseReq::kType{utils::TypeId::REP_CREATE_DATABASE_REQ, "CreateDatabaseReq", nullptr};
|
|
|
|
const utils::TypeInfo CreateDatabaseRes::kType{utils::TypeId::REP_CREATE_DATABASE_RES, "CreateDatabaseRes", nullptr};
|
|
|
|
const utils::TypeInfo DropDatabaseReq::kType{utils::TypeId::REP_DROP_DATABASE_REQ, "DropDatabaseReq", nullptr};
|
|
|
|
const utils::TypeInfo DropDatabaseRes::kType{utils::TypeId::REP_DROP_DATABASE_RES, "DropDatabaseRes", nullptr};
|
|
|
|
} // namespace storage::replication
|
|
|
|
// Autogenerated SLK serialization code
|
|
namespace slk {
|
|
|
|
// Serialize code for CreateDatabaseReq
|
|
|
|
void Save(const memgraph::storage::replication::CreateDatabaseReq &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self.epoch_id, builder);
|
|
memgraph::slk::Save(self.expected_group_timestamp, builder);
|
|
memgraph::slk::Save(self.new_group_timestamp, builder);
|
|
memgraph::slk::Save(self.config, builder);
|
|
}
|
|
|
|
void Load(memgraph::storage::replication::CreateDatabaseReq *self, memgraph::slk::Reader *reader) {
|
|
memgraph::slk::Load(&self->epoch_id, reader);
|
|
memgraph::slk::Load(&self->expected_group_timestamp, reader);
|
|
memgraph::slk::Load(&self->new_group_timestamp, reader);
|
|
memgraph::slk::Load(&self->config, reader);
|
|
}
|
|
|
|
// Serialize code for CreateDatabaseRes
|
|
|
|
void Save(const memgraph::storage::replication::CreateDatabaseRes &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(utils::EnumToNum<uint8_t>(self.result), builder);
|
|
}
|
|
|
|
void Load(memgraph::storage::replication::CreateDatabaseRes *self, memgraph::slk::Reader *reader) {
|
|
uint8_t res = 0;
|
|
memgraph::slk::Load(&res, reader);
|
|
if (!utils::NumToEnum(res, self->result)) {
|
|
throw SlkReaderException("Unexpected result line:{}!", __LINE__);
|
|
}
|
|
}
|
|
|
|
// Serialize code for DropDatabaseReq
|
|
|
|
void Save(const memgraph::storage::replication::DropDatabaseReq &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(self.epoch_id, builder);
|
|
memgraph::slk::Save(self.expected_group_timestamp, builder);
|
|
memgraph::slk::Save(self.new_group_timestamp, builder);
|
|
memgraph::slk::Save(self.uuid, builder);
|
|
}
|
|
|
|
void Load(memgraph::storage::replication::DropDatabaseReq *self, memgraph::slk::Reader *reader) {
|
|
memgraph::slk::Load(&self->epoch_id, reader);
|
|
memgraph::slk::Load(&self->expected_group_timestamp, reader);
|
|
memgraph::slk::Load(&self->new_group_timestamp, reader);
|
|
memgraph::slk::Load(&self->uuid, reader);
|
|
}
|
|
|
|
// Serialize code for DropDatabaseRes
|
|
|
|
void Save(const memgraph::storage::replication::DropDatabaseRes &self, memgraph::slk::Builder *builder) {
|
|
memgraph::slk::Save(utils::EnumToNum<uint8_t>(self.result), builder);
|
|
}
|
|
|
|
void Load(memgraph::storage::replication::DropDatabaseRes *self, memgraph::slk::Reader *reader) {
|
|
uint8_t res = 0;
|
|
memgraph::slk::Load(&res, reader);
|
|
if (!utils::NumToEnum(res, self->result)) {
|
|
throw SlkReaderException("Unexpected result line:{}!", __LINE__);
|
|
}
|
|
}
|
|
|
|
} // namespace slk
|
|
} // namespace memgraph
|