Commit Graph

59 Commits

Author SHA1 Message Date
Shadowghost 6978dfc294 Delete a credit once no item maps to it any more 2026-08-25 20:31:30 +02:00
Shadowghost 20b4a59281 Look up people by item via the credit map instead of a full scan 2026-08-22 11:22:31 +02:00
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 d3c7aa6bd2 Fix /Persons favourites timing out by removing the correlated favourites join 2026-08-04 00:40:53 +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 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 9aa79682ba Reduce correlated subqueries to improve performance 2026-07-23 20:50:06 +02:00
Tim Eisele 63d1af5fe7 Fix similarity (#16942)
Fix similarity
2026-05-31 17:21:15 +02:00
Bond-009 2f17516d4b Merge pull request #16856 from Shadowghost/movie-recommendations
Fix movie recommendations
2026-05-27 20:59:18 +02:00
jakobkukla 37350282cc Run tree-wide dotnet format 2026-05-21 20:48:41 +02:00
Shadowghost 97c20e6ac5 Fix movie recommendations 2026-05-15 14:37:01 +02:00
dkanada 843e0f0c84 return music artists from person endpoints 2026-05-13 09:37:18 +09:00
Shadowghost 02835c6144 Add People Deduplication 2026-05-09 11:18:05 +02:00
dkanada 3876a0ad3d fix person type exclusion in api response (#16784) 2026-05-06 17:39:45 -04:00
Shadowghost 4b8be6bc91 Fix unique people response for query if no item ID is supplied 2026-05-05 20:21:44 +02:00
Niels van Velzen dcba6c3659 Merge pull request #16616 from dkanada/fix-person-limit
fix person TotalRecordCount when limit is applied
2026-05-04 17:58:27 +02:00
dkanada ec990be12a fix person TotalRecordCount when limit is applied 2026-05-04 12:06:11 +09:00
Shadowghost e71bb7e904 Merge remote-tracking branch 'upstream/master' into perf-rebased 2026-04-19 10:23:34 +02:00
dkanada bb265cd403 add NameStartsWithOrGreater parameter to Persons endpoint 2026-04-13 13:50:04 +09:00
dkanada 22644075e7 add NameStartsWith and NameLessThan filters to Person search 2026-04-12 12:42:49 +09:00
Shadowghost 24a0df9a39 Merge remote-tracking branch 'upstream/master' into perf-rebased 2026-04-07 21:36:07 +02:00
dkanada 80df5dc984 add StartIndex and ParentId to person search 2026-04-05 15:40:18 +09:00
Shadowghost 00dd84035e Merge remote-tracking branch 'upstream/master' into perf-rebased 2026-02-07 14:06:53 +01:00
theguymadmax 4c751e0a86 Normalize names and roles 2026-02-03 17:41:01 -05:00
Shadowghost 042385599f Fix orderBy warnings 2026-02-01 12:22:27 +01:00
Shadowghost 2789532aa8 Optimize Validator and Filter Performance 2026-01-31 19:22:04 +01:00
theguymadmax 6f9c4dea6e Skip creating Person entities for Artist and AlbumArtist types 2025-10-09 11:00:36 -05:00
theguymadmax 2a54669a8a Restore NFO/import ordering by using ListOrder instead of SortOrder 2025-09-26 10:49:38 -04:00
JPVenson 54d48fa446 Fix people deduplication lookup (#14864) 2025-09-25 19:27:38 -06:00
theguymadmax 60fbd39bb9 Fix people sort order (#14852) 2025-09-24 17:37:07 -06:00
JPVenson 5a6d9180fe Add People Dedup and multiple progress fixes (#14848) 2025-09-24 15:20:30 -06:00
JPVenson 38f5f8008a Fix ordering where exists (#14843) 2025-09-23 19:51:44 -06:00
JPVenson a0b3e2b071 Optimize internal querying of UserData, other fixes (#14795) 2025-09-16 13:08:04 -06:00
JPVenson a1d72deba2 Add multiple options for internal locking (#14047) 2025-06-03 15:15:22 -06:00
JPVenson 5d65cfcd99 improved performance of save operations (#13889) 2025-04-26 09:32:12 -06:00
Cody Robibero d848faeb75 Merge pull request #13589 from JPVenson/feature/DatabaseRefactor
[Feature] Database code refactor
2025-03-25 21:34:26 -06:00
JPVenson 42bdb22bfb Fixed namespaces 2025-03-25 16:45:00 +01:00
JPVenson 160020c551 WIP fixed namespaces 2025-03-25 15:30:22 +00:00
Lampan-git 7abb94d8a2 Move mapping assignment to Map 2025-03-05 22:37:18 +01:00
Lampan-git e137a06362 Change PeopleBaseItemMap query from GroupJoin to Include 2025-03-05 16:59:49 +01:00
Lampan-git 4e3d7383f5 Change GetPeople PeopleBaseItemMap code to query 2025-03-05 16:59:31 +01:00
Lampan-git d28ee96f06 Include PeopleBaseItemMap in GetPeople 2025-02-25 18:10:50 +01:00
Tobias Kloy 83f0f3d629 Optimise string handling in PeopleRepository filtering. 2025-02-07 22:20:35 +01:00
Tobias Kloy 3a4d67319a Disable Warnings similar as in BaseItemRepository 2025-02-07 20:37:35 +01:00
tkloy24 7f41cc53ca Update Jellyfin.Server.Implementations/Item/PeopleRepository.cs
Co-authored-by: JPVenson <ger-delta-07@hotmail.de>
2025-02-07 19:46:38 +01:00
Tobias Kloy 0a4ca33d4f Fix Search results are case-sensitive for people 2025-02-07 14:38:33 +01:00
JPVenson b39553611d Applied coding style 2024-11-17 11:03:43 +00:00
JPVenson 6bcc7aa79f Updated comments/TODOs 2024-11-14 06:06:09 +00:00