add support for Where().isIn query#602
Conversation
|
@richard457 there's a lot of added code here that isn't relevant to the PR. Can you please remove your changes to |
|
@tshedor yes Done. |
tshedor
left a comment
There was a problem hiding this comment.
@richard457 thank you for submitting this PR. It's a huge help for me.
This feature would be useful and I'd like to get it into Brick. I've got some small pieces of feedback inline. More broadly, could you please add unit tests for query_sql_transformer and query_supabase_transformer?
packages/brick_sqlite/lib/src/helpers/query_sql_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
|
Thanks for the feedback @tshedor allow me to work on this on my earliest time. |
…d be in separate PR
is used in the _generateInList() method when the value for an IN query is either not an iterable or is an empty iterable. In SQL, an IN clause with an empty list is invalid syntax. For example, WHERE id IN () will cause an error. Logically, if you ask for "all rows where id is in []", you should get no results. To safely represent this in SQL, we use a condition that is always false: 1=0. By returning ' $matcher 1=0', the generated SQL will look like ... WHERE ... AND 1=0, which will always be false and thus return no rows Co-authored-by: Tim Shedor <tshedor@gmail.com>
..._offline_first_with_supabase_build/lib/src/offline_first_with_supabase_schema_generator.dart
Outdated
Show resolved
Hide resolved
packages/brick_offline_first_with_supabase_build/lib/src/supabase_sql_generator.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
|
@tshedor @richard457 Is there any new progress on this PR? This feature is really needed. |
|
Sorry, I got a lot, I am working on to address your comment, allow me today to send a patch. @tshedor |
|
@tshedor I uploaded changes, your review is highly needed, let me know if anything else I need to address will address it right way. |
tshedor
left a comment
There was a problem hiding this comment.
@richard457 very close now
packages/brick_offline_first_with_supabase_build/test/supabase_sql_generator_test.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
|
@tshedor I was wrong the error I was experiencing might not related, I took your suggestion thanks and sorry to take long. |
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/test/query_supabase_transformer_test.dart
Outdated
Show resolved
Hide resolved
packages/brick_supabase/test/query_supabase_transformer_test.dart
Outdated
Show resolved
Hide resolved
|
@tshedor Please let me know if there is anything for me to address. |
packages/brick_supabase/lib/src/query_supabase_transformer.dart
Outdated
Show resolved
Hide resolved
|
Committed change @tshedor :// |
|
@richard457 looks like there's just one failing test on |
|
cc @tshedor :// |
|
Can we have new version for those updated dependencies:
brick_core: ^2.0.0 # <- Need new version
brick_sqlite: ^4.1.0 # <- Need new version
brick_supabase: ^2.0.0 # <- Need new version
brick_offline_first: ^4.0.1
brick_offline_first_with_supabase: ^2.1.0 # <- This one included the updated code, but other packages are not compatible
dependency_overrides:
brick_core:
git:
url: https://github.com/GetDutchie/brick.git
ref: 01a6d98463c2be5a978259b2f3302db69664cada
path: packages/brick_core
brick_sqlite:
git:
url: https://github.com/GetDutchie/brick.git
ref: 01a6d98463c2be5a978259b2f3302db69664cada
path: packages/brick_sqlite
brick_supabase:
git:
url: https://github.com/GetDutchie/brick.git
ref: 01a6d98463c2be5a978259b2f3302db69664cada
path: packages/brick_supabaseThanks, |
Pull Request Summary
Feature: Add
isInQuery Operator toWhereOverview
This PR introduces a new
isInoperator to the Brick query system, allowing users to easily query for values that exist within a list (e.g., SQLINclause). This is useful for filtering records where a field matches any value in a provided list.Key Changes
CompareEnum:inListto represent the "IN" comparison.WhereClass:Unit Tests:
where_test.dartto verify:isInworks for integers:Where('id').isIn([1, 2, 3])isInworks for strings:Where('name').isIn(['Alice', 'Bob'])Usage Example