Skip to content

Does the SDK support OR query? #213

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
tran-huy-phuc opened this issue Jul 7, 2019 · 8 comments
Closed

Does the SDK support OR query? #213

tran-huy-phuc opened this issue Jul 7, 2019 · 8 comments

Comments

@tran-huy-phuc
Copy link

No description provided.

@RodrigoSMarques
Copy link
Contributor

does not support. I even started to implement, but I did not finish

@tran-huy-phuc
Copy link
Author

Hi @RodrigoSMarques
Hope you are doing well.
How is it going?
I may have some time to help on this, please let me know. Thanks!

@WahdanZ
Copy link
Contributor

WahdanZ commented Oct 14, 2019

@RodrigoSMarques it there any update regarding this one I can do some help also

@RodrigoSMarques
Copy link
Contributor

Hi @WahdanZ .
I didn't have time to go back in this feature.
If you have conditions, you can build

fischerscode added a commit to fischerscode/Parse-SDK-Flutter that referenced this issue Mar 3, 2020
First idea for parse-community#213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing
@fischerscode
Copy link
Contributor

Hi,
I am currently working on such an OR Query.
In the Android SDK, they throw an error, if one of the subquerys uses "selectKeys"/"dontSelectKeys".

Does anyone know, if the Parse-Server does not support this or if it's just missing feature in the android implementation?

phillwiggins pushed a commit that referenced this issue Mar 4, 2020
* Start adding or

First idea for #213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing

* Update parse_query.dart
@fischerscode
Copy link
Contributor

This feature got added in #317 without caring about "selectKeys"/"dontSelectKeys".

phillwiggins added a commit that referenced this issue Mar 28, 2020
* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Added an example of how to update existing object values (#309)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Added example for update existing Object values

Maybe need some correction. Thank you.

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Specifying return type of get<T> as T instead of dynamic (#310)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Specified T return type instead of dynamic for get<T> method

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Live query connection stream (#314)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* added live-query-client-event-stream

* Update parse_live_query.dart

* Cleanup

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Livequery reconnecting controller (#316)

* Fix: reconnecting

Done as in #315 (comment) described.

* Changed type of Future

Done as described in fischerscode@805e830#r37587405.

* Revert "Changed type of Future"

This reverts commit fecee76.

* adding LiveQueryReconnectingController

This is a solution for #315 (comment)

How it works:
- Only the LiveQueryReconnectingController handles reconnecting after a connection loss.
- LiveQueryReconnectingController holds informations:
  1. connection state of the device
  2. did the user disconnected from the server
  3. is currently a connection to the server estalished
- LiveQueryReconnectingController tries to reconnect after preset timespans.

* cleanup

* remove _userDisconnected from Client

This is not needed any more.
Keeping track of this information is now done by LiveQueryReconnectingController.

* subscribe(query) modified

Wait until client is connected to live-query-server.

Fixes fischerscode@d058eb0#r37612749

* Parsequery OR (#317)

* Start adding or

First idea for #213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing

* Update parse_query.dart

* Fix for Sembast-API change (#322)

See: #321 (comment)

* added QueryBuilder.copy(QueryBuilder<T> query) (#320)

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* ParseLiveList (#324)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* added ParseACL to parseEncode (#326)

As described in #325 (comment).

Should Fix #325

* ParseLiveList Performance improvement (#327)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* ParseLiveListElementSnapshot added (#329)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* Remove: RemovedItemBuilder

duplicade to ChildBuilder

* removed firstBuild

* ParseLiveListElementSnapshot added

* Clear unsaved changes (#331)

* added clearUnsavedChanges

An idea for #318

* moved clearUnsavedChanges to ParseBase

* LiveQueryController: connect at init (#332)

Should fix #330

* LiveList: fixed defaultBuilder (#333)

* Added generics to Query/LiveQuery (#336)

* LiveQuery: fixes list is null (#334)

* Fix: #341 (#342)

It seems like `subscription.on(LiveQueryEvent.update` reuses a existing object.

* Updating LiveQuery for web (#340)

* LiveQuery: fixes list is null

* Updating LiveQuery for web

parse_live_query_web was outdated compared to parse_live_query.

Note: parse_live_query was copied and fixed again for this change.

Co-authored-by: Phill Wiggins <[email protected]>

* Release/1.0.26 - Code formatting, remove lint issues

Co-authored-by: mregandla <[email protected]>
Co-authored-by: L. Rommy Arbantas <[email protected]>
Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Michal Baran <[email protected]>
Co-authored-by: Maximilian Fischer <[email protected]>
@InTheClodus
Copy link

InTheClodus commented Jun 30, 2020

     QueryBuilder query = QueryBuilder.or(ParseObject("Test"), [
        QueryBuilder(ParseObject("Test"))..whereStartsWith("order", 1),
        QueryBuilder(ParseObject("Test"))..whereStartsWith("number", 'test-1'),
      ]);

I think you should say this

fischerscode added a commit to fischerscode/Parse-SDK-Flutter that referenced this issue Sep 5, 2020
* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Added an example of how to update existing object values (parse-community#309)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Added example for update existing Object values

Maybe need some correction. Thank you.

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Specifying return type of get<T> as T instead of dynamic (parse-community#310)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Specified T return type instead of dynamic for get<T> method

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Live query connection stream (parse-community#314)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* added live-query-client-event-stream

* Update parse_live_query.dart

* Cleanup

Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Phill Wiggins <[email protected]>
Co-authored-by: mregandla <[email protected]>

* Livequery reconnecting controller (parse-community#316)

* Fix: reconnecting

Done as in parse-community#315 (comment) described.

* Changed type of Future

Done as described in 805e830#r37587405.

* Revert "Changed type of Future"

This reverts commit fecee76.

* adding LiveQueryReconnectingController

This is a solution for parse-community#315 (comment)

How it works:
- Only the LiveQueryReconnectingController handles reconnecting after a connection loss.
- LiveQueryReconnectingController holds informations:
  1. connection state of the device
  2. did the user disconnected from the server
  3. is currently a connection to the server estalished
- LiveQueryReconnectingController tries to reconnect after preset timespans.

* cleanup

* remove _userDisconnected from Client

This is not needed any more.
Keeping track of this information is now done by LiveQueryReconnectingController.

* subscribe(query) modified

Wait until client is connected to live-query-server.

Fixes d058eb0#r37612749

* Parsequery OR (parse-community#317)

* Start adding or

First idea for parse-community#213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing

* Update parse_query.dart

* Fix for Sembast-API change (parse-community#322)

See: parse-community#321 (comment)

* added QueryBuilder.copy(QueryBuilder<T> query) (parse-community#320)

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* ParseLiveList (parse-community#324)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* added ParseACL to parseEncode (parse-community#326)

As described in parse-community#325 (comment).

Should Fix parse-community#325

* ParseLiveList Performance improvement (parse-community#327)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* ParseLiveListElementSnapshot added (parse-community#329)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* Remove: RemovedItemBuilder

duplicade to ChildBuilder

* removed firstBuild

* ParseLiveListElementSnapshot added

* Clear unsaved changes (parse-community#331)

* added clearUnsavedChanges

An idea for parse-community#318

* moved clearUnsavedChanges to ParseBase

* LiveQueryController: connect at init (parse-community#332)

Should fix parse-community#330

* LiveList: fixed defaultBuilder (parse-community#333)

* Added generics to Query/LiveQuery (parse-community#336)

* LiveQuery: fixes list is null (parse-community#334)

* Fix: parse-community#341 (parse-community#342)

It seems like `subscription.on(LiveQueryEvent.update` reuses a existing object.

* Updating LiveQuery for web (parse-community#340)

* LiveQuery: fixes list is null

* Updating LiveQuery for web

parse_live_query_web was outdated compared to parse_live_query.

Note: parse_live_query was copied and fixed again for this change.

Co-authored-by: Phill Wiggins <[email protected]>

* Release/1.0.26 - Code formatting, remove lint issues

Co-authored-by: mregandla <[email protected]>
Co-authored-by: L. Rommy Arbantas <[email protected]>
Co-authored-by: James Brinkerhoff <[email protected]>
Co-authored-by: Michal Baran <[email protected]>
Co-authored-by: Maximilian Fischer <[email protected]>
@mtrezza mtrezza added type:feature New feature or improvement of existing feature and removed type:improvement labels Dec 6, 2021
@parse-github-assistant
Copy link

The label type:feature cannot be used in combination with type:improvement.

@parse-github-assistant parse-github-assistant bot removed the type:feature New feature or improvement of existing feature label Dec 6, 2021
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

No branches or pull requests

7 participants