[API reference](https://evolu.dev/docs/api-reference) › [@evolu/sqlite-wasm](https://evolu.dev/docs/api-reference/sqlite-wasm) › [c-api](https://evolu.dev/docs/api-reference/sqlite-wasm/c-api) › sqlite3\_vtab\_config

```ts
function sqlite3_vtab_config(
  deps: SqliteWasmDep,
): (db: SqliteDbPtr, op: SqliteVtabConfigOp, value: number) => SqliteResultCode;
```

Defined in: [packages/sqlite-wasm/src/CApi.ts:3384](https://github.com/evoluhq/evolu/blob/bc4578a260dd15d5bbf94b83765ca05984d194cb/packages/sqlite-wasm/src/CApi.ts#L3384)

Sets an option of the virtual table whose xCreate or xConnect method is
running, the only place it may be called.

- SQLITE_VTAB_CONSTRAINT_SUPPORT with a non-zero value declares that xUpdate
  returns SQLITE_CONSTRAINT only before changing anything, so SQLite can
  honor the statement's ON CONFLICT mode.
- SQLITE_VTAB_INNOCUOUS marks the virtual table as safe to use in triggers and
  views, and SQLITE_VTAB_DIRECTONLY prohibits that. Both ignore value.

The C function is variadic, so the binary does not export it. The build's
shim returns SQLITE_MISUSE for any other option, including
SQLITE_VTAB_USES_ALL_SCHEMAS, which it does not support.

Returns the build's shim `sqlite3__wasm_vtab_config`, wasm type `i(iii)`,
signature `["sqlite3__wasm_vtab_config", "int", "sqlite3*", "int", "int"]`.
Its signature comes from Evolu's metadata because SQLite's table omits it.

See https://sqlite.org/c3ref/vtab_config.html.