hmm yea that's questionable documentation The Sqlite compilation for D1 is part of the open source

hmm yea that's questionable documentation

The Sqlite compilation for D1 is part of the open source workerd but hard to read: https://github.com/cloudflare/workerd/blob/4c42a4a9d3390c88e9bd977091c9d3395a6cd665/build/BUILD.sqlite3#L13

More simply, there's an specific allowlist of functions you're allowed to use with D1:
https://github.com/cloudflare/workerd/blob/4c42a4a9d3390c88e9bd977091c9d3395a6cd665/src/workerd/util/sqlite.c%2B%2B#L269
Json and fts5 are the only ones allowed for extensions/not base (and I've used both before, they def work).
They also only allow specific Virtual Tables for fts5 and fts5vocab: https://github.com/cloudflare/workerd/blob/4c42a4a9d3390c88e9bd977091c9d3395a6cd665/src/workerd/util/sqlite.c%2B%2B#L1155 so anything that depends on Virtual Tables (like zipfiles, csv, etc) will def not work
Was this page helpful?