Interessanterweise schlägt auch Postgres hier fehl:
[2] pry(main)> DB.query_single('select lower(?)', 'ΣΠΥΡΟΣ')
=> ["σπυροσ"]
Vielleicht sollten wir diesen Kuriosität einfach in unserer internen Discourse-Methode, die die Berechnung von username_lower übernimmt, als Sonderfall behandeln?
Finde alle Methoden, die username_lower aufrufen, leite sie an eine zentrale Funktion weiter und ermögliche dann diesen Sonderfall (ich schätze, wir könnten hier einen mini_racer-Aufruf verwenden oder einfach .lower aufrufen und es danach mit einem sub-Aufruf korrigieren).
Ich habe den Titel des ursprünglichen Beitrags hier aktualisiert, um ihn klarer zu machen.