Fix communication and memgraph
This commit is contained in:
parent
8629ee5ebc
commit
14ddd7254d
@ -71,7 +71,7 @@ query::v2::TypedValue ToTypedValue(const Value &value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
storage::v3::Result<communication::bolt::Vertex> ToBoltVertex(
|
storage::v3::ShardResult<communication::bolt::Vertex> ToBoltVertex(
|
||||||
const query::v2::accessors::VertexAccessor &vertex, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const query::v2::accessors::VertexAccessor &vertex, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View /*view*/) {
|
storage::v3::View /*view*/) {
|
||||||
auto id = communication::bolt::Id::FromUint(0);
|
auto id = communication::bolt::Id::FromUint(0);
|
||||||
@ -91,7 +91,7 @@ storage::v3::Result<communication::bolt::Vertex> ToBoltVertex(
|
|||||||
return communication::bolt::Vertex{id, new_labels, new_properties};
|
return communication::bolt::Vertex{id, new_labels, new_properties};
|
||||||
}
|
}
|
||||||
|
|
||||||
storage::v3::Result<communication::bolt::Edge> ToBoltEdge(
|
storage::v3::ShardResult<communication::bolt::Edge> ToBoltEdge(
|
||||||
const query::v2::accessors::EdgeAccessor &edge, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const query::v2::accessors::EdgeAccessor &edge, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View /*view*/) {
|
storage::v3::View /*view*/) {
|
||||||
// TODO(jbajic) Fix bolt communication
|
// TODO(jbajic) Fix bolt communication
|
||||||
@ -108,16 +108,16 @@ storage::v3::Result<communication::bolt::Edge> ToBoltEdge(
|
|||||||
return communication::bolt::Edge{id, from, to, type, new_properties};
|
return communication::bolt::Edge{id, from, to, type, new_properties};
|
||||||
}
|
}
|
||||||
|
|
||||||
storage::v3::Result<communication::bolt::Path> ToBoltPath(
|
storage::v3::ShardResult<communication::bolt::Path> ToBoltPath(
|
||||||
const query::v2::accessors::Path & /*edge*/, const msgs::ShardRequestManagerInterface * /*shard_request_manager*/,
|
const query::v2::accessors::Path & /*edge*/, const msgs::ShardRequestManagerInterface * /*shard_request_manager*/,
|
||||||
storage::v3::View /*view*/) {
|
storage::v3::View /*view*/) {
|
||||||
// TODO(jbajic) Fix bolt communication
|
// TODO(jbajic) Fix bolt communication
|
||||||
return {storage::v3::Error::DELETED_OBJECT};
|
return {SHARD_ERROR(storage::v3::ErrorCode::DELETED_OBJECT)};
|
||||||
}
|
}
|
||||||
|
|
||||||
storage::v3::Result<Value> ToBoltValue(const query::v2::TypedValue &value,
|
storage::v3::ShardResult<Value> ToBoltValue(const query::v2::TypedValue &value,
|
||||||
const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View view) {
|
storage::v3::View view) {
|
||||||
switch (value.type()) {
|
switch (value.type()) {
|
||||||
case query::v2::TypedValue::Type::Null:
|
case query::v2::TypedValue::Type::Null:
|
||||||
return Value();
|
return Value();
|
||||||
|
@ -35,7 +35,7 @@ namespace memgraph::glue::v2 {
|
|||||||
/// @param storage::v3::View for deciding which vertex attributes are visible.
|
/// @param storage::v3::View for deciding which vertex attributes are visible.
|
||||||
///
|
///
|
||||||
/// @throw std::bad_alloc
|
/// @throw std::bad_alloc
|
||||||
storage::v3::Result<communication::bolt::Vertex> ToBoltVertex(
|
storage::v3::ShardResult<communication::bolt::Vertex> ToBoltVertex(
|
||||||
const storage::v3::VertexAccessor &vertex, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const storage::v3::VertexAccessor &vertex, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View view);
|
storage::v3::View view);
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ storage::v3::Result<communication::bolt::Vertex> ToBoltVertex(
|
|||||||
/// @param storage::v3::View for deciding which edge attributes are visible.
|
/// @param storage::v3::View for deciding which edge attributes are visible.
|
||||||
///
|
///
|
||||||
/// @throw std::bad_alloc
|
/// @throw std::bad_alloc
|
||||||
storage::v3::Result<communication::bolt::Edge> ToBoltEdge(
|
storage::v3::ShardResult<communication::bolt::Edge> ToBoltEdge(
|
||||||
const storage::v3::EdgeAccessor &edge, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const storage::v3::EdgeAccessor &edge, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View view);
|
storage::v3::View view);
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ storage::v3::Result<communication::bolt::Edge> ToBoltEdge(
|
|||||||
/// @param storage::v3::View for ToBoltVertex and ToBoltEdge.
|
/// @param storage::v3::View for ToBoltVertex and ToBoltEdge.
|
||||||
///
|
///
|
||||||
/// @throw std::bad_alloc
|
/// @throw std::bad_alloc
|
||||||
storage::v3::Result<communication::bolt::Path> ToBoltPath(
|
storage::v3::ShardResult<communication::bolt::Path> ToBoltPath(
|
||||||
const query::v2::accessors::Path &path, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const query::v2::accessors::Path &path, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View view);
|
storage::v3::View view);
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ storage::v3::Result<communication::bolt::Path> ToBoltPath(
|
|||||||
/// @param storage::v3::View for ToBoltVertex and ToBoltEdge.
|
/// @param storage::v3::View for ToBoltVertex and ToBoltEdge.
|
||||||
///
|
///
|
||||||
/// @throw std::bad_alloc
|
/// @throw std::bad_alloc
|
||||||
storage::v3::Result<communication::bolt::Value> ToBoltValue(
|
storage::v3::ShardResult<communication::bolt::Value> ToBoltValue(
|
||||||
const query::v2::TypedValue &value, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
const query::v2::TypedValue &value, const msgs::ShardRequestManagerInterface *shard_request_manager,
|
||||||
storage::v3::View view);
|
storage::v3::View view);
|
||||||
|
|
||||||
|
@ -483,13 +483,19 @@ class BoltSession final : public memgraph::communication::bolt::Session<memgraph
|
|||||||
auto maybe_value = memgraph::glue::v2::ToBoltValue(kv.second, interpreter_.GetShardRequestManager(),
|
auto maybe_value = memgraph::glue::v2::ToBoltValue(kv.second, interpreter_.GetShardRequestManager(),
|
||||||
memgraph::storage::v3::View::NEW);
|
memgraph::storage::v3::View::NEW);
|
||||||
if (maybe_value.HasError()) {
|
if (maybe_value.HasError()) {
|
||||||
switch (maybe_value.GetError()) {
|
switch (maybe_value.GetError().code) {
|
||||||
case memgraph::storage::v3::Error::DELETED_OBJECT:
|
case memgraph::storage::v3::ErrorCode::DELETED_OBJECT:
|
||||||
case memgraph::storage::v3::Error::SERIALIZATION_ERROR:
|
case memgraph::storage::v3::ErrorCode::SERIALIZATION_ERROR:
|
||||||
case memgraph::storage::v3::Error::VERTEX_HAS_EDGES:
|
case memgraph::storage::v3::ErrorCode::VERTEX_HAS_EDGES:
|
||||||
case memgraph::storage::v3::Error::PROPERTIES_DISABLED:
|
case memgraph::storage::v3::ErrorCode::PROPERTIES_DISABLED:
|
||||||
case memgraph::storage::v3::Error::NONEXISTENT_OBJECT:
|
case memgraph::storage::v3::ErrorCode::NONEXISTENT_OBJECT:
|
||||||
case memgraph::storage::v3::Error::VERTEX_ALREADY_INSERTED:
|
case memgraph::storage::v3::ErrorCode::VERTEX_ALREADY_INSERTED:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_NO_SCHEMA_DEFINED_FOR_LABEL:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_PROPERTY_WRONG_TYPE:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_UPDATE_PRIMARY_KEY:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_UPDATE_PRIMARY_LABEL:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_SECONDARY_LABEL_IS_PRIMARY:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_PRIMARY_PROPERTIES_UNDEFINED:
|
||||||
throw memgraph::communication::bolt::ClientError("Unexpected storage error when streaming summary.");
|
throw memgraph::communication::bolt::ClientError("Unexpected storage error when streaming summary.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -516,15 +522,21 @@ class BoltSession final : public memgraph::communication::bolt::Session<memgraph
|
|||||||
for (const auto &v : values) {
|
for (const auto &v : values) {
|
||||||
auto maybe_value = memgraph::glue::v2::ToBoltValue(v, shard_request_manager_, memgraph::storage::v3::View::NEW);
|
auto maybe_value = memgraph::glue::v2::ToBoltValue(v, shard_request_manager_, memgraph::storage::v3::View::NEW);
|
||||||
if (maybe_value.HasError()) {
|
if (maybe_value.HasError()) {
|
||||||
switch (maybe_value.GetError()) {
|
switch (maybe_value.GetError().code) {
|
||||||
case memgraph::storage::v3::Error::DELETED_OBJECT:
|
case memgraph::storage::v3::ErrorCode::DELETED_OBJECT:
|
||||||
throw memgraph::communication::bolt::ClientError("Returning a deleted object as a result.");
|
throw memgraph::communication::bolt::ClientError("Returning a deleted object as a result.");
|
||||||
case memgraph::storage::v3::Error::NONEXISTENT_OBJECT:
|
case memgraph::storage::v3::ErrorCode::NONEXISTENT_OBJECT:
|
||||||
throw memgraph::communication::bolt::ClientError("Returning a nonexistent object as a result.");
|
throw memgraph::communication::bolt::ClientError("Returning a nonexistent object as a result.");
|
||||||
case memgraph::storage::v3::Error::VERTEX_HAS_EDGES:
|
case memgraph::storage::v3::ErrorCode::VERTEX_HAS_EDGES:
|
||||||
case memgraph::storage::v3::Error::SERIALIZATION_ERROR:
|
case memgraph::storage::v3::ErrorCode::SERIALIZATION_ERROR:
|
||||||
case memgraph::storage::v3::Error::PROPERTIES_DISABLED:
|
case memgraph::storage::v3::ErrorCode::PROPERTIES_DISABLED:
|
||||||
case memgraph::storage::v3::Error::VERTEX_ALREADY_INSERTED:
|
case memgraph::storage::v3::ErrorCode::VERTEX_ALREADY_INSERTED:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_NO_SCHEMA_DEFINED_FOR_LABEL:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_PROPERTY_WRONG_TYPE:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_UPDATE_PRIMARY_KEY:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_UPDATE_PRIMARY_LABEL:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_SECONDARY_LABEL_IS_PRIMARY:
|
||||||
|
case memgraph::storage::v3::ErrorCode::SCHEMA_VERTEX_PRIMARY_PROPERTIES_UNDEFINED:
|
||||||
throw memgraph::communication::bolt::ClientError("Unexpected storage error when streaming results.");
|
throw memgraph::communication::bolt::ClientError("Unexpected storage error when streaming results.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user