From 928f1fcfa2ba14b89e31f68b4e19e506edde894c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 16 Oct 2025 20:01:50 +0000 Subject: [PATCH] Fix FalkorDB edge creation: Add missing UUID fields and change MATCH to MERGE Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com> --- graphiti_core/edges.py | 2 ++ graphiti_core/models/edges/edge_db_queries.py | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/graphiti_core/edges.py b/graphiti_core/edges.py index 82066e73..a3822594 100644 --- a/graphiti_core/edges.py +++ b/graphiti_core/edges.py @@ -286,6 +286,8 @@ class EntityEdge(Edge): edge_data: dict[str, Any] = { 'source_uuid': self.source_node_uuid, 'target_uuid': self.target_node_uuid, + 'source_node_uuid': self.source_node_uuid, + 'target_node_uuid': self.target_node_uuid, 'uuid': self.uuid, 'name': self.name, 'group_id': self.group_id, diff --git a/graphiti_core/models/edges/edge_db_queries.py b/graphiti_core/models/edges/edge_db_queries.py index ef4578e2..3c266177 100644 --- a/graphiti_core/models/edges/edge_db_queries.py +++ b/graphiti_core/models/edges/edge_db_queries.py @@ -64,8 +64,8 @@ def get_entity_edge_save_query(provider: GraphProvider, has_aoss: bool = False) match provider: case GraphProvider.FALKORDB: return """ - MATCH (source:Entity {uuid: $edge_data.source_uuid}) - MATCH (target:Entity {uuid: $edge_data.target_uuid}) + MERGE (source:Entity {uuid: $edge_data.source_uuid}) + MERGE (target:Entity {uuid: $edge_data.target_uuid}) MERGE (source)-[e:RELATES_TO {uuid: $edge_data.uuid}]->(target) SET e = $edge_data SET e.fact_embedding = vecf32($edge_data.fact_embedding) @@ -126,10 +126,10 @@ def get_entity_edge_save_bulk_query(provider: GraphProvider, has_aoss: bool = Fa case GraphProvider.FALKORDB: return """ UNWIND $entity_edges AS edge - MATCH (source:Entity {uuid: edge.source_node_uuid}) - MATCH (target:Entity {uuid: edge.target_node_uuid}) + MERGE (source:Entity {uuid: edge.source_node_uuid}) + MERGE (target:Entity {uuid: edge.target_node_uuid}) MERGE (source)-[r:RELATES_TO {uuid: edge.uuid}]->(target) - SET r = {uuid: edge.uuid, name: edge.name, group_id: edge.group_id, fact: edge.fact, episodes: edge.episodes, + SET r = {uuid: edge.uuid, source_node_uuid: edge.source_node_uuid, target_node_uuid: edge.target_node_uuid, name: edge.name, group_id: edge.group_id, fact: edge.fact, episodes: edge.episodes, created_at: edge.created_at, expired_at: edge.expired_at, valid_at: edge.valid_at, invalid_at: edge.invalid_at, fact_embedding: vecf32(edge.fact_embedding)} WITH r, edge RETURN edge.uuid AS uuid