brandon
d6da6906a4
Batch people lookups when building item DTOs
...
GetBaseItemDtos already batch fetches user data, child counts, played counts
and artists before its per item loop, but AttachPeople still ran one GetPeople
query per item. Rendering a page of items (for example a large playlist) fired
one extra query per row.
Add GetPeopleByItems to IPeopleRepository, which reads every requested item in a
single query over the people mapping table and returns full PersonInfo (role,
type and sort order) grouped by item id. GetBaseItemDtos prefetches this once
when the People field is requested and passes it into AttachPeople, which reads
from the batch instead of querying per item. The single item GetBaseItemDto path
keeps its existing per item behaviour when no batch is supplied.
Adds a DtoService test asserting people resolve from the batch and the per item
GetPeople is never called.
2026-08-07 11:59:17 -04:00
Shadowghost
61e75599b3
Project the lowered person credit values once when updating people
2026-08-05 13:21:57 +02:00
Shadowghost
b2485af6e9
Merge remote-tracking branch 'upstream/master' into fix-byname-queries
...
# Conflicts:
# Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
2026-08-05 12:15:30 +02:00
Shadowghost
d3c7aa6bd2
Fix /Persons favourites timing out by removing the correlated favourites join
2026-08-04 00:40:53 +02:00
Shadowghost
55518c06ee
Only treat series and seasons as resumable folders
2026-08-03 09:01:55 +02:00
Shadowghost
8044534774
Merge remote-tracking branch 'upstream/master' into fix-byname-queries
2026-08-02 22:12:57 +02:00
Cody Robibero
24022092ad
Merge pull request #17456 from Shadowghost/fix-extras
...
Fix extras naming and version assignment
2026-08-02 14:25:00 -04:00
Cody Robibero
d669994bf0
Merge pull request #17503 from theguymadmax/fix-sortby-name
...
Use CleanName when sorting by name
2026-08-02 14:24:28 -04:00
Cody Robibero
45b8f6c4c8
Merge pull request #17486 from Shadowghost/fix-adjacent
...
Fix AdjacentTo being ignored on non-recursive item queries
2026-08-02 14:24:13 -04:00
Cody Robibero
044f651299
Merge pull request #17482 from Shadowghost/fix-stale-versions
...
Fix video version links being read from stale serialised item data instead of the LinkedChildren table
2026-08-02 14:24:05 -04:00
Shadowghost
705368ee49
Merge remote-tracking branch 'upstream/master' into fix-byname-queries
...
# Conflicts:
# src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/JellyfinDbModelSnapshot.cs
2026-08-01 21:41:16 +02:00
Shadowghost
cbc2c7c323
Preserve multiple roles per person type instead of deduping credits by name and type
2026-08-01 20:35:27 +02:00
Shadowghost
b94ba9d409
Merge remote-tracking branch 'upstream/master' into tmdb-missing-episodes
...
# Conflicts:
# Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs
2026-08-01 14:25:20 +02:00
Cody Robibero
030031dcff
Merge pull request #17463 from Shadowghost/fix-unplayed-filter
...
Fix (Un)Played filter correctness and performance
2026-08-01 08:07:05 -04:00
Cody Robibero
341c19bace
Merge pull request #17460 from Shadowghost/fix-user-items
...
Queue person metadata refresh instead of blocking the item request and fix ItemCounts
2026-08-01 08:06:46 -04:00
Cody Robibero
e816870f67
Merge pull request #17416 from Shadowghost/enable-duplicate-playlist-children
...
Allow duplicate LinkedChildren for Playlists
2026-08-01 08:06:02 -04:00
theguymadmax
f28acc7fa1
Use CleanName when sorting by name
2026-07-31 00:34:43 -04:00
Shadowghost
e123a13e38
Apply the by-name access exemption in the search candidate query
2026-07-30 09:53:44 +02:00
Shadowghost
8293eb26b9
Fix playlist entries being lost on migration and library scans
2026-07-29 14:40:49 +02:00
Shadowghost
d8fc0a9914
Fix AdjacentTo being ignored on non-recursive item queries
2026-07-29 13:13:44 +02:00
Shadowghost
1f4f4acb46
Fixup
2026-07-29 09:39:04 +02:00
Shadowghost
d64e18b69a
Fix more filter cases
2026-07-29 09:35:20 +02:00
Shadowghost
7a4271c85f
Fix video version links being read from stale serialised item data instead of the LinkedChildren table
2026-07-29 07:31:27 +02:00
Shadowghost
a94588497c
Fix Folder access filtering
2026-07-28 23:13:10 +02:00
Shadowghost
9a258c089d
Restrict people, genres, studios and artists to names backed by an item the user can access
2026-07-28 21:28:56 +02:00
Shadowghost
5f5c71ab75
Make the /Persons de-duplication use an index instead of grouping the table
2026-07-28 20:18:02 +02:00
Shadowghost
eed664b7d3
Fix played/unplayed filter for empty Series and BoxSets
2026-07-28 12:43:12 +02:00
Shadowghost
046225654a
Queue person metadata refresh instead of blocking the item request and fix ItemCounts
2026-07-27 23:09:30 +02:00
Shadowghost
79a55327dc
Fix extras naming and version assignment
2026-07-27 12:12:17 +02:00
Shadowghost
f3a1d56c56
Use DistinctBy where possible
2026-07-26 09:56:49 +02:00
Shadowghost
766be1e8bb
Fix favorite filter performance
2026-07-25 19:09:39 +02:00
Shadowghost
f2f66606d7
Fix DatePlayed sorting performance
2026-07-25 19:09:39 +02:00
Shadowghost
9aa79682ba
Reduce correlated subqueries to improve performance
2026-07-23 20:50:06 +02:00
Shadowghost
dc300fae53
Allow duplicate LinkedChildren for Playlists
2026-07-23 13:41:51 +02:00
Cody Robibero
526f4051e9
Merge pull request #16980 from TheMelmacian/feature/library_specific_language_filter_values
...
Improve language filters to only fetch language codes that match the requested items/libraries (follow up to #9787 )
2026-07-21 20:43:31 -04:00
TheMelmacian
b317af0d30
fix: remove obsolete code
2026-07-21 22:20:07 +02:00
Cody Robibero
65836cc844
Merge pull request #17160 from 854562/truncate-language-strings
...
Truncate ISO-639-2 language display names at first delimiter
2026-07-21 11:22:32 -04:00
Cody Robibero
bdf263d867
Merge pull request #17377 from mbastian77/fix/person-visibility-allowed-tags
...
Exempt people from the allowed tags visibility check
2026-07-20 21:26:06 -04:00
854562
2cd2f36fe4
Extract truncation logic to helper and add tests
2026-07-20 22:00:10 +02:00
mbastian77
5a9fb80239
Exempt people from the allowed tags visibility check
2026-07-18 14:07:52 +02:00
Shadowghost
d894a98b79
Fix tie-breaker performance
2026-07-16 14:20:42 +02:00
Cody Robibero
6e728b009f
Merge pull request #17044 from Shadowghost/version-model-and-handling
...
Fixes for multi version handling
2026-07-05 16:21:02 -04:00
Shadowghost
38f1d9749e
Fix review comments
2026-07-02 08:49:11 +02:00
Shadowghost
2fcf4084f8
Add TMDb missing episode provider
2026-06-25 19:10:38 +02:00
854562
c632417dda
Fix SonarCloud warnings
2026-06-23 18:32:47 +02:00
854562
94d5326411
Truncate ISO-639-2 language display names at first delimiter
...
Prevents raw ISO-639-2 values (e.g. "Greek, Modern (1453-)" from cluttering the audio and subtitle display names by truncating them at the first comma or semicolon ("Greek"). Applies to MediaStreamRepository and ProbeResultNormalizer.
2026-06-22 20:25:13 +02:00
Joshua M. Boniface
069eb40ebf
Fix too many SQL variables in DeleteItem for large batch deletes
...
The FixIncorrectOwnerIdRelationships migration deletes all duplicate
items in a single DeleteItemsUnsafeFast -> DeleteItem(ids) call. Inside
DeleteItem, the owned-extras lookup used a raw HashSet.Contains, which EF
inlines as one SQL variable per id and overflows SQLite's variable limit
on large libraries. Use WhereOneOrMany so the id set is bound as a single
json_each parameter, like the rest of the method, making bulk deletes
work for unlimited library sizes.
2026-06-21 23:03:45 -04:00
Shadowghost
0fb042b740
Surface the played version for resume
2026-06-19 21:51:57 +02:00
Matt Teahan
5df25cf688
Apply ParentId.Value suggestion
...
Co-authored-by: Bond-009 <bond.009@outlook.com >
2026-06-13 21:04:33 +01:00
Matt
23f8ec93ab
Fix AlbumIds filtering by Name instead of by Id
2026-06-12 21:31:38 +01:00