Add Relationship::RemoveProperty to C++ query module API (#1156)

This commit is contained in:
imilinovic 2023-08-24 12:14:00 +02:00 committed by GitHub
parent 60e167d676
commit a426ef9cc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -780,6 +780,9 @@ class Relationship {
/// @brief Sets the chosen property to the given value.
void SetProperty(std::string property, Value value);
/// @brief Removes the chosen property.
void RemoveProperty(std::string property);
/// @brief Retrieves the value of the chosen property.
Value GetProperty(const std::string &property) const;
@ -2726,6 +2729,8 @@ inline void Relationship::SetProperty(std::string property, Value value) {
mgp::edge_set_property(ptr_, property.data(), value.ptr());
}
inline void Relationship::RemoveProperty(std::string property) { SetProperty(property, Value()); }
inline Value Relationship::GetProperty(const std::string &property) const {
mgp_value *edge_prop = mgp::MemHandlerCallback(edge_get_property, ptr_, property.data());
return Value(steal, edge_prop);

View File

@ -575,6 +575,22 @@ TYPED_TEST(CppApiTestFixture, TestNodeRemoveProperty) {
ASSERT_EQ(node.Properties().size(), 0);
}
TYPED_TEST(CppApiTestFixture, TestRelationshipRemoveProperty) {
mgp_graph raw_graph = this->CreateGraph(memgraph::storage::View::NEW);
auto graph = mgp::Graph(&raw_graph);
auto node_1 = graph.CreateNode();
auto node_2 = graph.CreateNode();
auto relationship = graph.CreateRelationship(node_1, node_2, "Relationship");
int64_t int_1{0};
mgp::Value value{int_1};
relationship.SetProperty("property", value);
ASSERT_EQ(relationship.Properties().size(), 1);
relationship.RemoveProperty("property");
ASSERT_EQ(relationship.Properties().size(), 0);
}
TYPED_TEST(CppApiTestFixture, TestValuePrint) {
std::string string_1{"abc"};
int64_t int_1{4};