aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2026-05-03 13:26:30 +0200
committerShadowghost <Ghost_of_Stone@web.de>2026-05-03 13:26:30 +0200
commit00b08c0b32b3c8fa36330d72e4a25c7b157de4e3 (patch)
treee8e0ddd86abc0d3f4867a0e05d77f7d9b4664861 /Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs
parent0183127d2a92d5de4bf6a4abb69a926ab02ad8d0 (diff)
Omit BoxSet related materialization
Diffstat (limited to 'Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs')
-rw-r--r--Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs17
1 files changed, 7 insertions, 10 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs
index 9a57691fbd..0abe981af8 100644
--- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs
+++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs
@@ -471,16 +471,13 @@ public sealed partial class BaseItemRepository
.Select(g => g.Key)
: Enumerable.Empty<Guid>().AsQueryable();
- // BoxSet: played = all children played
- IEnumerable<Guid> playedBoxSetIds = [];
- if (hasBoxSet)
- {
- var boxSetIds = baseQuery.Where(e => e.Type == boxSetTypeName).Select(e => e.Id).ToList();
- var playedCounts = GetPlayedAndTotalCountBatch(boxSetIds, filter.User!);
- playedBoxSetIds = playedCounts
- .Where(kvp => kvp.Value.Total > 0 && kvp.Value.Played == kvp.Value.Total)
- .Select(kvp => kvp.Key);
- }
+ // BoxSet: played = all children played.
+ IQueryable<Guid> playedBoxSetIds = hasBoxSet
+ ? GetFullyPlayedFolderIdsQuery(
+ context,
+ baseQuery.Where(e => e.Type == boxSetTypeName).Select(e => e.Id),
+ filter.User!)
+ : Enumerable.Empty<Guid>().AsQueryable();
// Non-folder items: check UserData directly
var playedItemIds = context.UserData