[Feature]: Add the 'SQLITE_ENABLE_ICU' compile option to SQLite

Author: solodon4Created Aug 15, 2024Updated Aug 26, 2026
Labelssqlite

What did you do?

Any SQL query involving UPPER or LOWER on strings that are not from Latin alphabets do not work. The same queries work perfectly fine in sqlite3 I have built myself with -DSQLITE_ENABLE_ICU, which is not enabled by default.

sql
WITH Ukrainian(word) AS 
  (VALUES ('Один'),('Два'),('Три'),('Чотири'),('П''ять'))
SELECT lower(word), upper(word)
FROM Ukrainian;

What did you expect to see?

I would expect SQL queries on strings in other languages work the same way they do on Latin languages. Here is the output of sqlite3 I have built myself with -DSQLITE_ENABLE_ICU

lower(word) upper(word)
один ОДИН
два ДВА
три ТРИ
чотири ЧОТИРИ
п'ять П'ЯТЬ

What did you see instead?

Strings in Cyrillic alphabets are unaffected by UPPER and LOWER:

lower(word) upper(word)
Один Один
Два Два
Три Три
Чотири Чотири
П'ять П'ять

DB4S Version

3.12.2

What OS are you seeing the problem on?

MacOS

OS version

MacOS Sonoma 14.5 (23F79)

Relevant log output

No response

Prevention against duplicate issues

  • I have searched for similar issues

Source: sqlitebrowser/sqlitebrowser