Skip to content

Refactor query builder to remove duplicated filter logic#56

Closed
zknpr wants to merge 1 commit intomainfrom
refactor-query-builder-duplication-9019015668633560601
Closed

Refactor query builder to remove duplicated filter logic#56
zknpr wants to merge 1 commit intomainfrom
refactor-query-builder-duplication-9019015668633560601

Conversation

@zknpr
Copy link
Copy Markdown
Owner

@zknpr zknpr commented Feb 7, 2026

This PR addresses a code health issue by removing duplicated logic for building SQL filter conditions in src/core/query-builder.ts.

Changes:

  • Created a new internal helper function buildFilterConditions that handles both column-specific filters and global text search.
  • Updated buildSelectQuery and buildCountQuery to use this helper function.
  • Added a safety check if (globalFilter && searchColumns.length > 0) to the helper function. This prevents the generation of invalid SQL (WHERE ()) when a global filter is provided but the list of columns to search is empty, a bug that was present in the original buildSelectQuery implementation.
  • Updated tests/unit/query-builder.test.ts to include a test case verifying this fix, ensuring that an empty column list results in valid SQL (no WHERE clause generated for the global filter).

Verification:

  • Ran npm test tests/unit/query-builder.test.ts and confirmed all tests pass, including the new edge case coverage.

PR created automatically by Jules for task 9019015668633560601 started by @zknpr

Refactored `buildSelectQuery` and `buildCountQuery` in `src/core/query-builder.ts` to use a shared helper function `buildFilterConditions`.
This change reduces code duplication and fixes a potential bug where applying a global filter with an empty column list would generate invalid SQL (`WHERE ()`).

- Extracted filter generation logic to `buildFilterConditions`.
- Added safety check for empty columns in global filter generation.
- Updated unit tests to reflect the bug fix (safe behavior for empty columns).

Co-authored-by: zknpr <96851588+zknpr@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.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Feb 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sq-lite-explorer Ready Ready Preview, Comment Feb 7, 2026 2:14pm

@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@zknpr
Copy link
Copy Markdown
Owner Author

zknpr commented Feb 7, 2026

Merged as part of v1.3.0 release in PR #65

@zknpr zknpr closed this Feb 7, 2026
@google-labs-jules
Copy link
Copy Markdown
Contributor

Merged as part of v1.3.0 release in PR #65

Understood. Glad to see this addressed in v1.3.0 via PR #65.

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