# Vendored SQLite - Version: **3.53.2** (`SQLITE_VERSION` in `sqlite3.h`) - Source: - Zip sha256: `8a310d0a16c7a90cacd4c884e70faa51c902afed2a89f63aaa0126ab83558a32` - Files kept: `sqlite3.c`, `sqlite3.h` (the amalgamation; `shell.c` and `sqlite3ext.h` dropped — no shell, no loadable extensions) - License: public domain () The amalgamation is part of the program, not the build system: `src/db/sqlite.sx` declares it as a named `#import c` unit carrying the pinned compile options (`SQLITE_DQS=0`, `SQLITE_THREADSAFE=0`, `SQLITE_DEFAULT_MEMSTATUS=0`, `SQLITE_OMIT_DEPRECATED`, `SQLITE_OMIT_SHARED_CACHE`, `SQLITE_LIKE_DOESNT_MATCH_BLOBS`, `SQLITE_ENABLE_COLUMN_METADATA`, `-O2`), and every `#foreign sqlib` binding resolves against that unit. sx compiles the unit through its content-addressed object cache (`.sx-cache/`), so the 250k-line source builds once per checkout — `sx build` links the objects into the binary, `sx run` loads them as a PRIORITY symbol-search target ahead of the process images, which is why the OS libsqlite3 (a different version, loaded into the compiler process by CoreServices) can never shadow this copy. `tests/sqlite_smoke.sx` asserts `sqlite3_libversion()` equals the version above, so any fallback fails loudly in both modes. ## Bound surface `src/db/sqlite.sx` maps the full practical C API (~100 functions): connection lifecycle + open_v2 flags, errors (extended codes included), statements with the complete bind/column families, parameter and column introspection (built with `SQLITE_ENABLE_COLUMN_METADATA`), incremental blob I/O, the online backup API, serialize/deserialize, and the library utilities. Not bound, by design: callback-taking APIs (hooks, UDFs, collations, authorizers — they need C→sx callbacks), the `sqlite3_value_*` family (UDF-coupled), varargs configuration, UTF-16 variants, and subsystems this build omits (mutex/VFS under `SQLITE_THREADSAFE=0`, sessions/snapshots/vtabs, deprecated API). To upgrade: replace `sqlite3.c`/`sqlite3.h` with a newer amalgamation, update this file and the version constant in `tests/sqlite_smoke.sx`, and run `make clean test` (the object cache keys on the source bytes, so the new amalgamation recompiles automatically).