Skip to content

⚡ Bolt: Optimize get_discovered_files query - #92

Open
jspann21 wants to merge 1 commit into
mainfrom
bolt-optimize-get-discovered-files-3302304283058640519
Open

⚡ Bolt: Optimize get_discovered_files query#92
jspann21 wants to merge 1 commit into
mainfrom
bolt-optimize-get-discovered-files-3302304283058640519

Conversation

@jspann21

@jspann21 jspann21 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

💡 What: Refactored the get_discovered_files SQLite query to use a Common Table Expression (CTE) for pagination.

🎯 Why: The original query performed a LEFT JOIN on enrichment_jobs and library_folders for all rows matching the WHERE clause before applying the LIMIT and OFFSET. This caused the database engine to do unnecessary work for rows that would eventually be discarded by pagination, causing an N+1 performance bottleneck.

📊 Impact: This change improves the performance of the get_discovered_files query, particularly when there is a large number of unresolved files, by deferring expensive joins until after the limit is applied. This reduces database CPU usage and memory consumption.

🔬 Measurement:

  1. Run cargo test --manifest-path src-tauri/Cargo.toml to verify there are no SQL syntax regressions.
  2. In the app, navigate to the "Unresolved Files" section with a large dataset and observe faster loading times for the grid/list.

PR created automatically by Jules for task 3302304283058640519 started by @jspann21

Refactored `get_discovered_files` to use a Common Table Expression (CTE) for applying limit and offset on the base table `files` before performing expensive left joins with `enrichment_jobs` and `library_folders`.

Co-authored-by: jspann21 <179991454+jspann21@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant