You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Typed (*Conn) / (*Stmt) methods that bind SQLite C-API surface beyond the database/sql contract. These complement the SQL-feature matrix in coverage-sql.md (which is scoped to SQL clauses / PRAGMAs) and the SESSION matrix in coverage-session.md. All are thin binds over already-compiled symbols.
Beyond CreateModule / CreateEponymousModule / CreateModuleSplit / DeclareVTab, the advanced hooks a Go-implemented module can use:
Symbol
C symbol
What it does
Test
(*Conn).OverloadFunction
sqlite3_overload_function
declare a stub function so a module's xFindFunction can give a name (e.g. MATCH) a table-specific meaning; the name is then accepted at prepare time
TestOverloadFunction
VTabFunctionFinder (optional VTab interface)
xFindFunction
a module overrides a SQL function applied to its columns — return a Go scalar impl + an op (0 = plain override; ≥150 = an indexable-constraint operator like MATCH). Registered ids are cached per (name, nArg) and freed on disconnect
called from BestIndex, reports how much the query relaxes row ordering/duplication so the module can skip work (grouped / distinct / unordered)
TestVTabDistinct
⚠ vtab_rhs_value (constraint RHS at plan time) is ready to add on the same bestIndexRawCtx plumbing; the vtab_in batch-IN family and vtab_nochange need a vtab-API extension (raw values inside Filter/Column) — tracked in .plans/plan-gosqlite-feature-backlog.md.
registers a Go FTS5Tokenizer (the SELECT fts5(?1) / bind_pointer handshake gets the api); reference it as tokenize='name'. Per-connection. No other pure-Go driver exposes this.
All per-connection callbacks (WAL hook, progress handler, busy handler, rtree geometry/query, collation-needed, FTS5 tokenizer factory) are stored in process-global registries keyed by c.db / a minted id and drained in (*conn).dropHookHandlers on Close — see hooks.go.
Last reviewed against the transpiled SQLite conn-method surface on 2026-06-13.