Skip to content
Back to skills

Sqlite Knowledge Patch

ASecurity

SQLite

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
developmentshellsqlexpressgitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add Nevaberry/nevaberry-plugins --skill sqlite-knowledge-patch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sqlite Knowledge Patch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sqlite Knowledge Patch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nevaberry-sqlite-knowledge-patch/badge)](https://www.skillsdirectory.com/skills/nevaberry-sqlite-knowledge-patch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sqlite-knowledge-patch
description: SQLite
version: "3.53.0"
license: MIT
metadata:
  author: Nevaberry
---


# SQLite Knowledge Patch

Use this skill for SQLite SQL, C API, CLI, build, storage, FTS5, session,
JSON, and JSONB work where current compatibility details affect the answer.
Load only the reference files relevant to the task, and preserve the stated
conditions and limits when applying their guidance.

## Reference index

| Reference | Topics |
| --- | --- |
| [C APIs and configuration](references/c-api-and-configuration.md) | Prepare flags, connection controls, limits, locks, status, hooks, changegroups |
| [CLI, builds, and utilities](references/cli-build-and-utilities.md) | Configure systems, Tcl, shell behavior, `sqlite3_rsync`, output, platforms |
| [Core scalar functions](references/core-scalar-functions.md) | `iif()`, formatting, string and numeric functions, planner hints |
| [FTS5, sessions, and extensions](references/fts5-sessions-and-extensions.md) | Tokenizers, contentless tables, auxiliary APIs, sessions, changegroups |
| [JSON and JSONB](references/json-and-jsonb.md) | Operators, validation, traversal, mutation, JSON5, edge cases |
| [SQL language and schema](references/sql-language-and-schema.md) | Schema changes, triggers, expression indexes, dates, defaults, `VACUUM` |
| [Storage, locking, and correctness](references/storage-locking-and-correctness.md) | Withdrawn release, VFS compatibility, database pages, maintenance fixes |

## Highest-risk compatibility changes

### Do not target the withdrawn release

SQLite 3.52.0 was withdrawn because new features caused backward-
compatibility issues. Its planned features moved to 3.53.0. Do not target
3.52.0.

### Use the corrected maintenance releases

- On the 3.51 line, use 3.51.3 or later because that release fixes a
  WAL-reset database-corruption bug.
- Use 3.50.1 or later for `sqlite3_rsync`; 3.50.0 can omit the replica's final
  page.
- Account for the query-result and memory-safety corrections listed in
  [Storage, locking, and correctness](references/storage-locking-and-correctness.md).

### Preserve OPFS SAHPool compatibility direction

The corrected filename digest creates a one-way compatibility boundary:
3.50.0 can read databases made by older SAHPool VFS versions, but older
SAHPool VFS versions cannot read databases created by 3.50.0 or later.

### Update `.indexes` consumers

The `.indexes PATTERN` argument matches index names rather than indexed-table
names. Existing shell scripts can therefore return different results.

### Account for changed output and formatting

- Floating-point-to-text conversion defaults to 17 significant digits rather
  than 15. `SQLITE_DBCONFIG_FP_DIGITS` changes it per connection.
- Interactive CLI sessions default to Unicode box output and right-justify
  numbers in tabular modes; batch sessions keep the legacy format.
- Built-in `printf()` and SQL `format()` suppress a negative-zero sign for a
  `#` format without `+` when every displayed digit is zero.

### Respect new type and limit behavior

- Generated columns in `STRICT` tables enforce their declared types.
- `SQLITE_LIMIT_LENGTH` cannot be set below 30.
- The SQL-function argument limit is 1000 rather than 127.

## Schema and SQL quick reference

### Change constraints directly

`ALTER TABLE` can add and remove `NOT NULL` and `CHECK` constraints.

### Repair expression indexes

Use the expression-index repair command when stored expression-index values
are stale:

```sql
REINDEX EXPRESSIONS;
```

SQLite also self-heals stale expression indexes.

### Use expression-based trigger messages

The message argument to a trigger's `RAISE()` may be any SQL expression, so
it can include values from the affected row:

```sql
SELECT RAISE(ABORT, 'negative total for order ' || NEW.id);
```

### Optimize all tables when requested

`PRAGMA optimize` uses a temporary analysis limit and automatically
re-analyzes tables without `sqlite_stat1` entries. Include option bit
`0x10000` when every table should be checked for possible updates.

### Choose ambiguous date shifts

Use `ceiling` or `floor` after a month or year shift to select how an
ambiguous date is resolved:

```sql
SELECT date('2024-02-29', '+1 year', 'floor');
```

## JSON and JSONB quick reference

### Insert array elements

Use `json_array_insert()` for JSON and `jsonb_array_insert()` for JSONB.

### Preserve JSONB during traversal

`jsonb_each()` and `jsonb_tree()` parallel the text traversal functions while
keeping array and object rows as JSONB in the `value` column.

### Count backward in arrays

A negative integer on the right of `->>` selects an array element from the
end:

```sql
SELECT '["first","middle","last"]' ->> -1;
```

### Treat numeric-looking text keys as labels

For `->` and `->>`, a text right operand that looks numeric remains an object
label rather than becoming an integer array index:

```sql
SELECT '{"0":"zero"}' -> '0';
```

### Choose validation depth deliberately

For two-argument `json_valid()`, flag `6` accepts JSON5 text or plausible
JSONB using a superficial check; flag `8` performs a linear-time deep JSONB
check. Read [JSON and JSONB](references/json-and-jsonb.md) for all modes and
malformed-input behavior.

## C API and configuration quick reference

### Prepare without log noise

Use `SQLITE_PREPARE_DONT_LOG` with `sqlite3_prepare_v3()` when test-compiling
SQL so ill-formed input does not send warnings to SQLite's error log.

### Prepare schema-derived SQL

Virtual-table implementations can pass `SQLITE_PREPARE_FROM_DDL` to
`sqlite3_prepare_v3()` for schema-derived SQL.

### Separate lock timeouts

On builds that support blocking locks, `sqlite3_setlk_timeout()` sets the
blocking-lock timeout independently of `sqlite3_busy_timeout()`.

### Control newly submitted comments

Disabling `SQLITE_DBCONFIG_ENABLE_COMMENTS` blocks comments only in newly
submitted SQL. Comments already stored in `sqlite_schema` remain readable.

## CLI and build quick reference

### Run scripts and one-shot controls

A non-empty `.sql` or `.txt` command-line argument is executed as a script.
Use `.timer once` for only the next SQL statement and `.progress --timeout S`
to interrupt statements after `S` seconds.

### Replace the removed Windows console option

`SQLITE_USE_STDIO_FOR_CONSOLE` is removed. Windows command-line-tool builds
can define `SQLITE_USE_W32_FOR_CONSOLE_IO` to use Win32 console APIs without
affecting the SQLite core.

### Enable bundled extensions explicitly

The amalgamation contains `carray` and `percentile`, but they remain disabled
unless built with `SQLITE_ENABLE_CARRAY` or `SQLITE_ENABLE_PERCENTILE`.

## Apply details without extrapolation

When a task touches a listed edge case, use the exact semantics from its
reference. Keep version-specific fixes, build conditions, default states,
directional compatibility, experimental status, and `may`/`should`/`must`
wording intact. If the references state only that behavior changed, do not
invent a cause or replacement.

Files in this skill

  • SKILL.md4 KB
  • references/fts5-internals.md1.1 KB
  • references/json.md1.3 KB
  • references/new-apis.md2.3 KB
  • references/sql-functions.md1.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…