Refactor query builder to remove duplicated filter logic#56
Refactor query builder to remove duplicated filter logic#56
Conversation
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>
|
👋 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Merged as part of v1.3.0 release in PR #65 |
This PR addresses a code health issue by removing duplicated logic for building SQL filter conditions in
src/core/query-builder.ts.Changes:
buildFilterConditionsthat handles both column-specific filters and global text search.buildSelectQueryandbuildCountQueryto use this helper function.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 originalbuildSelectQueryimplementation.tests/unit/query-builder.test.tsto 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:
npm test tests/unit/query-builder.test.tsand confirmed all tests pass, including the new edge case coverage.PR created automatically by Jules for task 9019015668633560601 started by @zknpr