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
Fixes #141 (hopefully)
This PR replaces the slow database queries that are currently used for mentions.
This is currently a full table scan as the result of a query that checks for every name if it is a prefix of the possible mention string. It will be replaced by a cached tree-based longest prefix match.
This is also a full table scan, just like all other search queries (yes, really), due to the use of
LIKE '%?%'to find matches. Postgres does not seem to have any index that could handle that well, so it will be replaced by a full-text search index. This will probably also allow for more fuzzy matches.Checklist
ESLint is happy about the added code
All tests pass (I have checked)
This PR is concerned with a new feature or a bug fix on the backend, and
This PR is concerned with changes on the frontend, and