Eén record, één albumrij #79

Merged
roelof merged 1 commit from apostrof-splitst-albums into main 2026-08-06 17:29:19 +02:00
Owner

Closes #77

Het probleem in één regel: citext is hoofdletterongevoelig en zegt niets over leestekens, dus Kill 'Em All uit de tags en Kill ’Em All uit MusicBrainz zijn twee rijen. Dertig platen stonden zo gesplitst.

Twee helften

Vanaf nu wordt een titel rechtgezet op de twee grenzen die ertoe doen: waar de albumrij gezocht en gemaakt wordt (AddTrack, UpdateTrackInfo) en waar de tag geschreven wordt (SaveTrackInfo, SaveAlbum, SaveListTrack). Eén helper, AlbumTitle.Straighten.

Wat er al stond wordt samengevoegd door MergeSpelledAlbums, de vierde reparatie van de scan — vóór de wandeling, en in één query per groep in plaats van een ronde per track. De oudste rij blijft staan, want zijn id is degene die iets buiten deze tabel het waarschijnlijkst gezien heeft, en hij neemt de rechte spelling mee, de tracks van de anderen, en een id of jaar dat hij zelf miste.

Alleen apostrofs, nooit diacrieten

Dezelfde lijn die Typed al trekt, en hier in de gegevens zichtbaar: vouw je accenten mee, dan komt Genesis op Génesis te staan — twee verschillende platen. Over de dertig apostrofparen zit geen enkel twijfelgeval.

Nagelopen

voor   Kill 'Em All   jaar 1983, geen id,     2 tracks
       Kill ’Em All   geen jaar, id abc-123,  1 track
       Genesis / Génesis, elk 1 track

na     Kill 'Em All   jaar 1983, id abc-123,  3 tracks
       Genesis en Génesis onaangeroerd

tracks 5 voor, 5 na

De overlevende rij pakte dus het jaar van de een én het id van de ander op, en er ging geen track verloren. Genesis/Génesis bleven met rust.

En de andere helft: een nieuwe track die met de typografische spelling binnenkomt landt op de bestaande rechte rij in plaats van een tweede te maken, waarna een volgende samenvoegronde niets meer vindt.

Bij het draaien

De reparatie raakt de database, niet de bestanden — de tags houden hun eigen spelling tot iets ze toch herschrijft, en dat hoeft niet: de rij is waar het om gaat. Op jouw bibliotheek verwacht ik dertig rijen opgeslokt, met de tracks die eronder hingen verhuisd.

Closes #77 Het probleem in één regel: `citext` is hoofdletterongevoelig en zegt niets over leestekens, dus `Kill 'Em All` uit de tags en `Kill ’Em All` uit MusicBrainz zijn twee rijen. **Dertig platen** stonden zo gesplitst. ## Twee helften **Vanaf nu** wordt een titel rechtgezet op de twee grenzen die ertoe doen: waar de albumrij gezocht en gemaakt wordt (`AddTrack`, `UpdateTrackInfo`) en waar de tag geschreven wordt (`SaveTrackInfo`, `SaveAlbum`, `SaveListTrack`). Eén helper, `AlbumTitle.Straighten`. **Wat er al stond** wordt samengevoegd door `MergeSpelledAlbums`, de vierde reparatie van de scan — vóór de wandeling, en in één query per groep in plaats van een ronde per track. De **oudste** rij blijft staan, want zijn id is degene die iets buiten deze tabel het waarschijnlijkst gezien heeft, en hij neemt de rechte spelling mee, de tracks van de anderen, en een id of jaar dat hij zelf miste. ## Alleen apostrofs, nooit diacrieten Dezelfde lijn die `Typed` al trekt, en hier in de gegevens zichtbaar: vouw je accenten mee, dan komt `Genesis` op `Génesis` te staan — twee verschillende platen. Over de dertig apostrofparen zit geen enkel twijfelgeval. ## Nagelopen ``` voor Kill 'Em All jaar 1983, geen id, 2 tracks Kill ’Em All geen jaar, id abc-123, 1 track Genesis / Génesis, elk 1 track na Kill 'Em All jaar 1983, id abc-123, 3 tracks Genesis en Génesis onaangeroerd tracks 5 voor, 5 na ``` De overlevende rij pakte dus het jaar van de een én het id van de ander op, en er ging geen track verloren. `Genesis`/`Génesis` bleven met rust. En de andere helft: een nieuwe track die met de typografische spelling binnenkomt landt op de bestaande rechte rij in plaats van een tweede te maken, waarna een volgende samenvoegronde niets meer vindt. ## Bij het draaien De reparatie raakt de database, niet de bestanden — de tags houden hun eigen spelling tot iets ze toch herschrijft, en dat hoeft niet: de rij is waar het om gaat. Op jouw bibliotheek verwacht ik dertig rijen opgeslokt, met de tracks die eronder hingen verhuisd.
MusicBrainz schrijft de typografische apostrof en een mp3-tag vrijwel nooit:
Kill 'Em All naast Kill ’Em All, Cosmo's Factory naast Cosmo’s Factory. De
kolommen zijn citext, wat hoofdletterongevoelig is en niets zegt over
leestekens, dus dat zijn twee rijen. Over de live bibliotheek geteld: dertig
platen die zo gesplitst stonden, met hun tracks over de twee helften verdeeld.

Wat dat kost is meer dan een dubbele regel in een albumlijst. De albumreparatie
kan geen hoes lenen van de ene helft naar de andere en betaalt fanart.tv voor
een plaatje dat al in huis was; FindKnownAlbum — deze bibliotheek vóór
MusicBrainz — mist om dezelfde reden.

Vanaf nu wordt een titel rechtgezet op de twee grenzen die ertoe doen: waar de
albumrij gezocht en gemaakt wordt, en waar de tag geschreven wordt. Wat er al
stond wordt samengevoegd door MergeSpelledAlbums, de vierde reparatie van de
scan, vóór de wandeling en in één query in plaats van een ronde per track. De
oudste rij van een groep blijft staan — zijn id is degene die iets buiten deze
tabel het waarschijnlijkst gezien heeft — en neemt de rechte spelling mee, de
tracks van de anderen, en een id of jaar dat hij zelf miste.

Alleen apostrofs, nooit diacrieten. Dat is dezelfde lijn die Typed al trekt, en
hier is hij in de gegevens te zien: vouw je accenten mee, dan komt Genesis op
Génesis te staan en dat zijn twee verschillende platen. Over de dertig
apostrofparen zit geen enkel twijfelgeval.

Nagelopen tegen een wegwerpdatabase:

  voor   Kill 'Em All   jaar 1983, geen id, 2 tracks
         Kill ’Em All   geen jaar, id abc-123, 1 track
         Genesis / Génesis, elk 1 track
  na     Kill 'Em All   jaar 1983, id abc-123, 3 tracks
         Genesis en Génesis onaangeroerd
  tracks 5 voor, 5 na

En de andere helft: een nieuwe track die met de typografische spelling
binnenkomt landt op de bestaande rechte rij in plaats van een tweede te maken,
waarna een volgende samenvoegronde niets meer vindt.

Closes #77

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
roelof merged commit 92fe40862a into main 2026-08-06 17:29:19 +02:00
roelof deleted branch apostrof-splitst-albums 2026-08-06 17:29:19 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KavalirOS/RockHeaven!79
No description provided.