All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
- Dependency profiles bind columns to tables (alias, table-name
and CTE qualifiers; single-table scopes are exact; bare
references in multi-table scopes resolve against the schema when
exactly one in-scope table declares them), so a shared column
name changing on the wrong table no longer re-runs a query; CTE
name subtraction is lexical, not global.
- DDL re-derives every profile and re-runs every query on the next
flush even with no pending row events, and re-derived profiles
persist instead of being recomputed per flush.
- Table functions (e.g.
json_each) no longer vanish from
dependency extraction. - Five defects found by the new stress oracle: DDL invalidating a
query's SQL no longer kills the flush (retention holds);
finalize no longer throws on dropped tables; VIRTUAL generated
columns read as nil in the hook instead of NPE; declared-case
schemas match normalized profiles; views invalidate via alias
translation and underlying-table wildcards.
- Unknown-row update events degrade to coarse matching instead of
"no change" (a silent miss).
- intel macOS from the supported platform list.
- next.jdbc adapter (
ebifriedrice.rsqlite.jdbc/data-source): a
javax.sql.DataSource over the engine's own connection - next.jdbc
writes share the preupdate-hooked connection, so reactive queries
re-run with full column-level precision.
- Native library builds uniformly with CMake + Ninja on every
platform (mingw-w64 gcc on Windows); the upstream GNUmakefile and
msys2 are gone. Windows is a fully tested CI platform now.
- Releases run only from the
release branch, whose tip must carry
an exact vX.Y.Z tag. - CI cost discipline: concurrency groups cancel superseded runs;
push CI runs on main only.
- Extracted libraries land in a stable content-addressed cache
(one virus-scan per library version instead of per JVM launch).
- Flushes serialize per engine, fixing a race where a scheduled
flush and
sync! could interleave on one prepared statement. - Savepoint
ROLLBACK TO restores pending invalidations; failed
re-evaluation keeps the last published result and retries.
- Reactive query engine over SQLite's preupdate hook:
connect,
q!, exec!, transact!, sync!, unq!, close!. - Reactive query engine over SQLite's preupdate hook:
connect,
q!, exec!, transact!, sync!, unq!, close!. - Dependency extraction blending an instaparse SELECT grammar with
EXPLAIN QUERY PLAN; column-granular invalidation with
table-granular degradation.
- JVM backend on the bundled official org.sqlite.jni binding
(SQLite 3.54.1), natives embedded per-platform in the published
jar.
- ClojureScript backend on @sqlite.org/sqlite-wasm; consumer
supplies the initialized module.
- Transaction-scoped invalidation with savepoint checkpointing,
post-commit off-writer evaluation, result diffing before
delivery, and failed-evaluation retention.
- Multi-platform CI and tag-driven releases to Clojars and GitHub
Releases.