Repository navigation
perf(graph): search shortest paths from both ends - #54
Merged
Merged
Conversation
Resolve #17 with complete-layer bidirectional search for single-target CSR queries, preserving all shortest paths and duplicate edges. Keep shared forward search for multiple targets. Developed by David Hughes with assistance from Codex.
Deploying lance-csr with
|
| Latest commit: |
48a054c
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://15336ac3.lance-csr.pages.dev |
| Branch Preview URL: | https://fix-bidirectional-shortest-p.lance-csr.pages.dev |
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.
Why
#37 was merged into its intermediate base branch (
codex/issue-11-bounded-csr) instead ofmain, so its change never reachedmain. Merging that branch now conflicts incsr_expand.rs, because it also carries an older copy of #31's first commit, whichmainalready has in squashed form.What changed
This cherry-picks only #37's own commit onto
main, keeping its original author. It contains no other changes.When one source has exactly one target and reverse adjacency exists, shortest-path search now runs from both ends. It always expands the smaller frontier and stitches the two predecessor graphs together where they meet. All shortest paths and parallel edges are kept.
shortestPathmay return a different path of the same length than before, which Cypher allows and the docs already mention.Validation
main.cargo fmt --check,cargo clippy --workspace --all-targets -- -D warningsandcargo test --workspacepass (600 tests, including perf(graph): search shortest paths from both ends #37's tests that compare against the forward search on every directed three-node graph).python/:make install,make test(383 passed) andmake lintpass.🤖 Generated with Claude Code