Introduction | SQLite ICU MinGW Link Search Menu Expand Document

SQLite is arguably the most used database engine worldwide, characterized by especially compact size and modular design. By design, the essential functions form the engine core, with other features developed as extensions. Since extensions provide widely used functions, most of them are available as a part of source code distributions. Select extensions are also enabled in the official precompiled binaries available for various platforms.

A notable extension not included in the official SQLite binaries or documentation is ICU. It enables case insensitive string operations and case conversion for non-ASCII symbols. The official website has brief SQLite building instructions (here, here, and here) but no information on enabling the ICU extension. Since figuring out the necessary steps was not straightforward because of several obscure issues, I share and discuss scripts that automate the entire process, starting from toolchain setup.

Christian Werner’s SQLite ODBC driver does not activate the ICU extension either. Moreover, the embedded SQLite library has all extensions disabled and is outdated. The binaries include some extensions as loadable modules, but integrated extensions are more convenient. An alternative build, designed to work with the system SQLite library, did not work for me either. Thus, I decided to build the driver from the source.