[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.
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