fix: ensure path prefix search respects directory boundaries#27
Open
fix: ensure path prefix search respects directory boundaries#27
Conversation
Added a trailing slash to the SQL LIKE pattern to prevent partial directory matching (e.g., 'proj' matching 'project'). Added a regression test.
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.
Description
This PR fixes a bug where the path prefix search in
search_similaruses a SQL LIKE pattern without directory boundaries. This caused partial matches where searching for a directory (e.g.,/home/user/proj) would also match sibling directories starting with the same prefix (e.g.,/home/user/project).Fix
The fix ensures that the LIKE pattern includes a trailing directory separator if one is not already present.
path LIKE '/home/user/proj%'(matches.../project)path LIKE '/home/user/proj/%'(matches only insideproj)Verification
Added a regression test
test_path_prefix_search_bug_reproductioninsrc/core/db.rswhich asserts that searching for a prefix does not return files from sibling directories sharing that prefix.Ran
cargo testand verified that the new test passes and no existing tests are broken.