Fix trigger with detach delete (#266)

This commit is contained in:
Antonio Andelic
2021-10-12 07:21:28 -07:00
committed by GitHub
parent 69ea410406
commit 6dc2cdfae4
2 changed files with 229 additions and 98 deletions

View File

@@ -1908,13 +1908,20 @@ bool Delete::DeleteCursor::Pull(Frame &frame, ExecutionContext &context) {
throw QueryRuntimeException("Unexpected error when deleting a node.");
}
}
if (context.trigger_context_collector &&
context.trigger_context_collector->ShouldRegisterDeletedObject<EdgeAccessor>() && res.GetValue()) {
context.trigger_context_collector->RegisterDeletedObject(res.GetValue()->first);
for (const auto &deleted_edge : res.GetValue()->second) {
context.trigger_context_collector->RegisterDeletedObject(deleted_edge);
std::invoke([&] {
if (!context.trigger_context_collector || !*res) {
return;
}
}
context.trigger_context_collector->RegisterDeletedObject((*res)->first);
if (!context.trigger_context_collector->ShouldRegisterDeletedObject<query::EdgeAccessor>()) {
return;
}
for (const auto &edge : (*res)->second) {
context.trigger_context_collector->RegisterDeletedObject(edge);
}
});
} else {
auto res = dba.RemoveVertex(&va);
if (res.HasError()) {