Fix duplicate videos in feed group "All" #9230
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is it?
Description of the changes in your PR
In #8621 I deduplicated the queries to get feed info, but I made a mistake regarding the "All" group. The LEFT JOIN of the subscription table with the feed groups table rightfully generates multiple results for each subscription (since it is a join), but, for user-created groups, all results except for at most one are, in the end, filtered out by the first condition in the WHERE, because a subscription can appear in a group at most once. When the query was used for the "All" group, though, the first condition in the WHERE would not do anything (the reasoning behind this was to allow subscriptions independently of groups), causing duplicate subscription results to be generated (i.e. one per group the subscription belonged to). This PR fixes the problem by just making the condition on the LEFT JOIN stricter: since when we are selecting all subscriptions we don't need data about groups, the LEFT JOIN now always fails since the condition in the ON would evaluate to false when groupId=all. Therefore, since we are using a left join, it is ok for the groups table columns to not exist, and hence exactly one result gets generated.
Fixes the following issue(s)
APK testing
The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.
Due diligence