Skip to content

Implement endBefore for RTDB queries #2302

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

Merged
merged 13 commits into from
Jan 14, 2021
Merged

Implement endBefore for RTDB queries #2302

merged 13 commits into from
Jan 14, 2021

Conversation

jmwski
Copy link
Contributor

@jmwski jmwski commented Jan 8, 2021

go/rtdb-exclusive-query-filters

@googlebot googlebot added the cla: yes Override cla label Jan 8, 2021
@google-cla google-cla bot added the cla: yes Override cla label Jan 8, 2021
@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jan 8, 2021

Coverage Report

Affected SDKs

  • firebase-database

    SDK overall coverage changed from 50.39% (5ba8ff4) to 50.47% (5a7ebb2c) by +0.08%.

    Filename Base (5ba8ff4) Head (5a7ebb2c) Diff
    ChildChangeAccumulator.java 83.33% 96.67% +13.33%
    PushIdGenerator.java 80.43% 84.13% +3.69%
    Query.java 48.09% 46.07% -2.01%

Test Logs

Notes

HTML coverage reports can be produced locally with ./gradlew <product>:checkCoverage.
Report files are located at <product-build-dir>/reports/jacoco/.

Head commit (5a7ebb2c) is created by Prow via merging commits: 5ba8ff4 018e32d.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jan 8, 2021

Binary Size Report

Affected SDKs

  • firebase-database

    Type Base (5ba8ff4) Head (5a7ebb2c) Diff
    aar 491 kB 492 kB +376 B (+0.1%)
    apk (release) 1.09 MB 1.09 MB +400 B (+0.0%)

Test Logs

Notes

Head commit (5a7ebb2c) is created by Prow via merging commits: 5ba8ff4 018e32d.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@google-oss-bot
Copy link
Contributor

The public api surface has changed for the subproject firebase-database:
error: Added method com.google.firebase.database.Query.endBefore(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.endBefore(double,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(String,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(boolean,String) [AddedMethod]
error: Added method com.google.firebase.database.Query.startAfter(double,String) [AddedMethod]

Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly.

@jmwski
Copy link
Contributor Author

jmwski commented Jan 11, 2021

@schmidt-sebastian Ready for review.

@jmwski
Copy link
Contributor Author

jmwski commented Jan 13, 2021

@schmidt-sebastian Do you have any thoughts on whether we should merge this PR into #2277 and then merge the two to master?

Copy link
Contributor

@schmidt-sebastian schmidt-sebastian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind how you merge these PRs. It is likely a bit easier to merge this into startAfter and then merge together, especially given the CI flakes.

public void testPredecessorSpecialValue() {
assertEquals(
PushIdGenerator.predecessor(String.valueOf(MIN_PUSH_CHAR)),
String.valueOf(Integer.MAX_VALUE));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as in other PR: These arguments should be flipped.

@@ -478,6 +478,96 @@ private Query startAt(Node node, String key) {
return new Query(repo, path, newParams, orderByCalled);
}

/**
* Create a query constrained to only return child nodes with a value greater than the given
* value, using the given orderBy directive or priority as default.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just realized that all these comments say "value greater than", when it should be "value less than".

* value, using the given orderBy directive or priority as default, and additionally only child
* nodes with a key greater than or equal to the given key.
*
* @param value The priority to start at
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/value/priority

* value, using the given orderBy directive or priority as default, and additionally only child
* nodes with a key greater than or equal to the given key.
*
* @param value The priority to start at
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/value/priority

* value, using the given orderBy directive or priority as default, and additionally only child
* nodes with a key greater than or equal to the given key.
*
* @param value The priority to start at
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/value/priority

@schmidt-sebastian schmidt-sebastian removed their assignment Jan 13, 2021
@google-oss-bot
Copy link
Contributor

@IanWyszynski: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
device-check-changed 018e32d link /test device-check-changed

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@schmidt-sebastian schmidt-sebastian removed their assignment Jan 14, 2021
@jmwski jmwski merged commit 6c017d5 into jw/start-after Jan 14, 2021
@firebase firebase locked and limited conversation to collaborators Feb 13, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants