navidrome/persistence
Deluan b0cb40b029 feat: add custom NATURALSORT collation for natural number ordering
Register a custom SQLite collation function (NATURALSORT) that compares
strings using natural sort ordering, where embedded numeric sequences are
compared as numbers rather than lexicographically. This fixes the issue
where albums like "Bravo Hits 1-132" sort as 1, 10, 100... instead of
1, 2, 3... 10, 11...

Closes navidrome/navidrome#4891
2026-02-17 09:00:15 -05:00
..
album_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
album_repository_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
artist_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
artist_repository_test.go fix(db): Include items with no annotation for starred=false, handle has_rating=false (#4921) 2026-01-21 13:45:17 -05:00
collation_test.go feat: add custom NATURALSORT collation for natural number ordering 2026-02-17 09:00:15 -05:00
export_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
folder_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
folder_repository_test.go feat(scanner): implement selective folder scanning and file system watcher improvements (#4674) 2025-11-14 22:15:43 -05:00
genre_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
genre_repository_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
helpers.go feat: add custom NATURALSORT collation for natural number ordering 2026-02-17 09:00:15 -05:00
helpers_test.go feat: add custom NATURALSORT collation for natural number ordering 2026-02-17 09:00:15 -05:00
library_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
library_repository_test.go feat(scanner): implement selective folder scanning and file system watcher improvements (#4674) 2025-11-14 22:15:43 -05:00
mediafile_repository.go fix(scanner): preserve created_at when moving songs between libraries (#5055) 2026-02-17 08:37:05 -05:00
mediafile_repository_test.go fix(scanner): preserve created_at when moving songs between libraries (#5055) 2026-02-17 08:37:05 -05:00
persistence.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
persistence_suite_test.go feat(subsonic): Add avgRating from subsonic spec (#4900) 2026-01-18 17:42:42 -05:00
persistence_test.go fix(server): play queue should not return empty entries for deleted tracks 2024-09-20 11:22:37 -04:00
player_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
player_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
playlist_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
playlist_repository_test.go feat(subsonic): add OS readonly and validUntil properties in playlists (#4993) 2026-02-06 19:35:54 -05:00
playlist_track_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
playqueue_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
playqueue_repository_test.go fix(server): ensure single record per user by reusing existing playqueue ID 2025-06-11 17:26:13 -04:00
plugin_cleanup.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
plugin_cleanup_test.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
plugin_repository.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
plugin_repository_test.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
property_repository.go Replace beego/orm with dbx (#2693) 2023-12-09 13:52:17 -05:00
property_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
radio_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
radio_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
scrobble_buffer_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
scrobble_buffer_repository_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
scrobble_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
scrobble_repository_test.go feat(server): track scrobble/linstens history (#4770) 2025-12-06 11:07:18 -05:00
share_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
share_repository_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
sql_annotations.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
sql_annotations_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
sql_base_repository.go feat: add custom NATURALSORT collation for natural number ordering 2026-02-17 09:00:15 -05:00
sql_base_repository_test.go fix(server): headless library access improvements (#4362) 2025-07-20 15:58:21 -04:00
sql_bookmarks.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
sql_bookmarks_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
sql_participations.go fix(scanner): remove stale role associations when artist role changes. Fix #4242 2025-12-16 06:38:50 -05:00
sql_restful.go feat: MBID search functionality for albums, artists and songs (#4286) 2025-06-30 17:11:54 -04:00
sql_restful_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
sql_search.go fix(server): optimize search3 performance with multi-library (#4382) 2025-07-25 18:53:40 -04:00
sql_search_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
sql_tags.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
tag_library_filtering_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
tag_repository.go feat(scanner): improve error messages for cleanup operations in annotations, bookmarks, and tags 2025-11-20 09:27:42 -05:00
tag_repository_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
transcoding_repository.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
transcoding_repository_test.go fix(transcoding): restrict transcoding operations to admin users (#4096) 2025-05-21 22:19:23 -04:00
user_props_repository.go Replace beego/orm with dbx (#2693) 2023-12-09 13:52:17 -05:00
user_repository.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00
user_repository_test.go fix: qualify user id filter to avoid ambiguous column (#4511) 2025-11-06 14:54:01 -05:00