興味深いことに、Postgres もここで失敗します:
[2] pry(main)> DB.query_single('select lower(?)', 'ΣΠΥΡΟΣ')
=> ["σπυροσ"]
おそらく、username_lower を計算する Discourse の内部メソッドで、この特異な挙動を特別に処理するべきでしょうか?
username_lower を呼び出すすべてのメソッドを見つけ、それらを中央の関数にパイプし、この特別ケースを許可するようにします(必要に応じてここで mini_racer を使用するか、単に .lower を呼び出してその後に sub で修正することもできます)。
わかりやすくするため、元の投稿のタイトルを更新しました。