Omit Core Features

In addition to all the other build directives, SQLite has a fair number of SQLITE_OMIT_* compile-time directives. These are designed to remove core features from the build in an effort to make the core database library as small and compact as possible. For example, SQLITE_OMIT_ANALYZE eliminates all code support for the ANALYZE command (and subsequent query optimizations), while SQLITE_OMIT_VIRTUALTABLE eliminates the entire virtual table facility.

In general, these directives should only be of interest to embedded systems developers that are counting every byte. Along with any relevant omit flags, you should make sure the compiler is set to build with any “optimize for size” type features enabled.

In order to use most of these omit directives, you need to be building SQLite from the development sources found in the source control tree. Most omit directives won’t work correctly when applied to a source distribution or to the pre-built amalgamation. Also be aware that these compile-time directives are not officially supported, in the sense that they are not part of the official testing chain. For any given version of SQLite, there may be both compile problems and runtime issues if arbitrary sets of omit flags are enabled. Use (and test) at your own risk.

For a full list of the omit compiler directives, see the SQLite website (http://sqlite.org/compile.html#omitfeatures).

Get Using SQLite now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.