Commit Graph

68 Commits

Author SHA1 Message Date
Shadowghost
3439d3c017 Migrate PrimaryVersionId to GUID and fix assignment 2026-02-15 23:12:52 +01:00
Shadowghost
71594b4a9a Fix multiple version resolution 2026-02-08 17:22:52 +01:00
Shadowghost
bb6c3b4eec Fix BoxSet collapse handling and deletion 2026-02-07 21:17:01 +01:00
Shadowghost
2420ece5fe Fix version resolution and scan handling 2026-02-07 19:01:37 +01:00
Shadowghost
8ddc35a1ce Optimize Indices 2026-02-07 00:57:15 +01:00
Shadowghost
2789532aa8 Optimize Validator and Filter Performance 2026-01-31 19:22:04 +01:00
Shadowghost
342846e4fc Add ImageInfo index 2026-01-18 19:48:46 +01:00
Shadowghost
99440f8432 Fix EFcore readme 2026-01-18 19:48:46 +01:00
Shadowghost
2086ac7dd2 Don't use raw SQL 2026-01-18 19:48:46 +01:00
Shadowghost
5996c4afce Complete LinkedChildren integration and batch DTO optimizations
This commit integrates remaining performance changes:

- Add batch user data fetching in DtoService to reduce N+1 queries
- Add GetNextUpEpisodesBatch in TVSeriesManager for efficient batch retrieval
- Update Video/Movie/BoxSet to use LibraryManager for alternate versions
- Transition LinkedChild to use ItemId instead of Path (obsolete Path/LibraryItemId)
- Update providers and controllers for LinkedChildren-based references
- Add NextUpEpisodeBatchResult for batched episode queries
- Integrate IDescendantQueryProvider in SqliteDatabaseProvider
2026-01-18 19:48:46 +01:00
Shadowghost
912a963a2b Add folder-aware filter extensions and descendant query provider
- Add FolderAwareFilterExtensions for LinkedChildren-based filtering
- Add IDescendantQueryProvider interface for database-specific queries
- Add MatchCriteria classes for folder filtering
- Add SqliteDescendantQueryProvider implementation
2026-01-18 19:47:02 +01:00
Shadowghost
22d8a00716 Add optimized indexes for UserData and latest items queries 2026-01-18 19:47:02 +01:00
Shadowghost
c350fd0f40 Remove ExtraIds column and use OwnerId relationship for extras
- Remove ExtraIds property from BaseItemEntity and BaseItem
- Update RefreshExtras to query via OwnerId instead of cached ExtraIds
- Update GetExtras methods to query database via OwnerIds filter
- Add OwnerIds and ExtraTypes filter support to InternalItemsQuery
- Add filter handling in BaseItemRepository for new query options
- Update HasSpecialFeature/HasTrailer filters to use Extras relationship
- Add CleanupOrphanedExtras migration routine
- Add database migration to drop ExtraIds column
2026-01-18 19:47:02 +01:00
Shadowghost
139d23ddc2 Normalize OwnerId to GUID and add performance indexes
- Change OwnerId from string to Guid for proper foreign key relationships
- Add Owner/Extras navigation properties for extras relationship
- Add indexes on OwnerId and ExtraType columns for efficient queries
- Add optimized composite indexes for latest items queries sorted by DateCreated
- Update BaseItemRepository and migration to handle new Guid type
2026-01-18 19:46:37 +01:00
Shadowghost
cc2ccd1bf3 Add LinkedChildren database table for normalized relationships
Introduces a new database table to store linked child relationships for
boxsets, playlists, and video alternate versions. This replaces the
JSON-serialized Data column approach with a proper relational structure.

- Add LinkedChildEntity and LinkedChildType enum
- Add entity configuration with proper foreign keys
- Add EF Core migration for SQLite
2026-01-18 19:46:37 +01:00
Bond_009
9e480f6efb Update to .NET 10.0 2026-01-14 18:55:47 +01:00
evanreichard
c2c4c0adbf Backport pull request #15369 from jellyfin/release-10.11.z
feat(sqlite): add timeout config

Original-merge: c2e5081d64

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-11-17 14:08:48 -05:00
evanreichard
a7d039b7c6 Backport pull request #15328 from jellyfin/release-10.11.z
Some checks failed
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
fix: in optimistic locking, key off table is locked

Original-merge: b5f0199a25

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2025-11-02 21:58:46 -05:00
theguymadmax
adfa520057 Backport pull request #15087 from jellyfin/release-10.11.z
Optimize WhereReferencedItemMultipleTypes filtering

Original-merge: a5bc4524d8

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-10-27 15:43:10 -04:00
theguymadmax
794e1361d7 Fix contributing artist query (#14991) 2025-10-13 09:09:09 -06:00
Niels van Velzen
3fc71293b4 Fix AddProperParentChildRelationBaseItemWithCascade migration deleting all items 2025-09-28 13:14:10 +02:00
JPVenson
54d48fa446 Fix people deduplication lookup (#14864)
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
2025-09-25 19:27:38 -06:00
JPVenson
1736a566cc Fixes FK on unconnected base items (#14863) 2025-09-25 19:27:17 -06:00
JPVenson
5a6d9180fe Add People Dedup and multiple progress fixes (#14848) 2025-09-24 15:20:30 -06:00
JPVenson
a0b3e2b071 Optimize internal querying of UserData, other fixes (#14795) 2025-09-16 13:08:04 -06:00
JPVenson
24410d8a2e Reenable common PRAGMA setters (#14791) 2025-09-14 11:24:35 -06:00
JPVenson
f0e60a7ff3 Improve optimistic locking behavior (#14779) 2025-09-12 13:57:40 -06:00
JPVenson
a99e67544a Reenable pooling (#14778) 2025-09-12 13:57:33 -06:00
evan314159
0a2cf69a55 Additional debug logging for SQLite connections (#14753)
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
2025-09-07 14:40:27 -06:00
JPVenson
57d077d08e Supress transaction (#14514) 2025-07-22 17:09:31 -06:00
JPVenson
310a54f090 Allow loading of Database options for DB provider (#14466) 2025-07-14 18:39:43 -06:00
JPVenson
c51f3a3342 Use IDatabaseCreator instead of relying on History repository (#14465) 2025-07-14 18:36:36 -06:00
Tim Eisele
c6e568692e Fix modification checks and make sure to use UTC (#14347)
Some checks are pending
OpenAPI / OpenAPI - HEAD (push) Waiting to run
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-26 17:50:37 -06:00
JPVenson
1c4c9cf733 Fix UserData cleanup task and queries (#14280) 2025-06-11 17:30:57 -06:00
JPVenson
d3ad2aec60 Feature/persistent watch data (#14262) 2025-06-09 17:14:27 -06:00
JPVenson
916e897ed2 Allow custom plugin provided database providers to be loaded (#14171)
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-03 16:53:37 -06:00
JPVenson
d5672ce407 Add declarative backups for migrations (#14135) 2025-06-03 16:49:41 -06:00
JPVenson
a1d72deba2 Add multiple options for internal locking (#14047) 2025-06-03 15:15:22 -06:00
JPVenson
9456d7168f Add partition helper (#14039) 2025-06-03 15:15:04 -06:00
JPVenson
fe2596dc0e Add Full system backup feature (#13945) 2025-05-18 18:39:04 -06:00
Joshua M. Boniface
055d466d16 Merge pull request #14016 from crobibero/upd-projects
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
Add new nuget packages to abi diff
2025-04-27 21:16:20 -04:00
JPVenson
e66c76fc34 Unified migration handling (#13950) 2025-04-27 18:18:08 -06:00
Cody Robibero
e57a95e9cd Add required nuget properties 2025-04-27 18:11:22 -06:00
JPVenson
1c4b5199b8 Fix ItemValue query (#13939)
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-26 19:10:54 -06:00
Tim Eisele
9092130350 Optimize migrations (#13855) 2025-04-26 09:36:17 -06:00
Fernando Fernández
c4cb41f3b2 Temporarily ignore NonTransactionalMigrationOperation warnings (#13972)
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-23 21:31:03 -06:00
JPVenson
04ca27ad07 Fix backup not written to correct directory (#13853)
* Fix backup not written to correct directory

* Improve restore handling and only restore on actual error

* Fix first failed migration not causing a rollback
2025-04-07 08:59:00 -06:00
Tim Eisele
de3d1445c0 Fix ancestors (#13827) 2025-04-05 10:49:29 -06:00
Tim Eisele
0e7ae0e9a4 Fix indices and update of ItemValues (#13843)
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-05 09:57:58 -06:00
Tim Eisele
596b635511 Cleanup extracted files (#13760)
* Cleanup extracted files

* Pagination and fixes

* Add migration for attachments to MigrateLibraryDb

* Unify attachment handling

* Don't extract again if files were already extracted

* Fix MKS attachment extraction

* Always run full extraction on mks

* Don't try to extract mjpeg streams as attachments

* Fallback to check if attachments were extracted to cache folder

* Fixup
2025-04-03 09:17:14 -06:00