fix(postgrest): prevent filter query builder state leakage#1385
fix(postgrest): prevent filter query builder state leakage#1385Dodothereal wants to merge 1 commit intosupabase:mainfrom
Conversation
|
@olirice @silentworks could you please review this bugfix for #1208 when you have time? Thanks. |
📝 WalkthroughWalkthroughThe pull request implements immutability for query builder objects by introducing a Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
Comment |
Summary
not_,filter, andor_to return new builder instances with independent request statematch()chaining to work with immutable builder semanticsWhy
Issue #1208 reports that reusing a query builder leaks previous filters into later queries. This change preserves the base builder and prevents cross-call filter accumulation.
Testing
uv run --package postgrest pytest tests/_sync/test_filter_request_builder.py tests/_async/test_filter_request_builder.py tests/_sync/test_request_builder.py tests/_async/test_request_builder.py(run insrc/postgrest)uv run --package postgrest pytest tests/_sync/test_client.py tests/_async/test_client.py(run insrc/postgrest)make postgrest.mypyuv run ruff check src/postgrest/src/postgrest/base_request_builder.py src/postgrest/tests/_sync/test_filter_request_builder.py src/postgrest/tests/_async/test_filter_request_builder.pyCloses #1208
Summary by CodeRabbit
Bug Fixes
Tests