An album artist upstream does not resolve is still named #71
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
An album artist upstream does not resolve is still named here.
/Items?Recursive=true— 125 items, all of one album and its tracks:AlbumArtists/ArtistItems[][{"Id":"15beaa1f…","Name":"MØL"}]Upstream resolves an album artist name to a
MusicArtistrow and sends the paironly where one answers; a name it cannot resolve is dropped rather than sent with
an id. The name here is
MØL, whose folder is spelledM├ШLon disk — the samerow #59 named as a sort-name outlier, and one of the two artist rows that fold
together.
So this is the resolution failing to match, not the field being wrong: we find a
row upstream does not.
The last of the differences in that listing, alongside #72, #73 and #74.
Fixed. Upstream lowercases the name twice, differently, and that asymmetry
is the whole bug.
LinkedChildrenService.FindArtists(LinkedChildrenService.cs:63):ToLowerInvariant()runs in C# over every script;e.Name.ToLower()istranslated to SQLite's
lower(), which touches ASCII only. So a stored namecarrying an uppercase letter outside ASCII is reachable by nothing. And the
match is on the spelled
Name, not on the foldedCleanNamethis port joinedon. A name that reaches no row is dropped rather than sent with an id.
All 125 items were that, in three groups:
Fall Out Boy/Fall Out Boyfall out boyScooter & Harris & Ford/Scooter, Harris & Fordscooter harris fordMØL×2mol[]—lower('MØL')ismØlOf 201 distinct referenced artist names in the library, exactly one is
unresolvable under upstream's rule, so it does not over-reach.
GenreItemsandStudioskeep the old derivation: upstream computes those idsfrom the name rather than looking a row up.
A page's names are resolved in one query, so there is no per-item lookup.
AlbumArtistsArtistItems