community: Apache AGE wrapper. Ensure Node Uniqueness by ID. #28759
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
The Apache AGE graph integration incorrectly handled node merging, allowing duplicate nodes with different IDs but the same type and other properties. Unlike Neo4j, Memgraph, Kuzu, and Gremlin, it did not use the node ID as the primary identifier for merging.
This inconsistency caused data integrity issues and unexpected behavior when users expected updates to specific nodes by ID.
Solution:
This PR modifies the
node_insert_query
toMERGE
nodes based on label and ID only and updates properties withSET
, aligning the behavior with other graph database integrations. The_format_properties
method was also modified to handle id overrides.Impact:
This fix ensures data integrity by preventing duplicate nodes, and provides a consistent behavior across graph database integrations.