Add graph.UpdateVertex func#185
Open
mdgreenfield wants to merge 1 commit intodominikbraun:mainfrom
Open
Conversation
This PR is a fix for dominikbraun#173 With this PR a Vertex can be replaced allowing callers to first retrieve an existing Vertex, make all updates, and then call the new function `graph.UpdateVertex` with the old hash and the new vertex.
5aa7072 to
1d2e084
Compare
emilykmarx
reviewed
Mar 12, 2025
| existingEdges := adjacencyMap[existingHash] | ||
|
|
||
| for _, edge := range existingEdges { | ||
| err = d.RemoveEdge(edge.Source, edge.Target) |
There was a problem hiding this comment.
For anyone who comes across this later - incoming edges (the ones in PredecessorMap()) also need to be deleted for RemoveVertex to work. Afaik the adjacencyMap only has outgoing ones
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR is a fix for #173
With this PR a Vertex can be replaced allowing callers to first retrieve an existing Vertex, make all updates, and then call the new function
graph.UpdateVertexwith the old hash and the new vertex.Note: The way the vertex is updated is inefficient and not thread safe. I think a good approach to fix this would be to actually create a non-exported
vertexnode with a data field that takes theTtype and thenUpdateVertexcould swap the data field. I think this could be introduced without any breaking changes to the API.