Releases: jackc/jed
Releases · jackc/jed
Release list
v0.2.0
Second public preview. Still 0.x, still no compatibility guarantee — and this release
changes the on-disk file format (format_version 21 → 25), so a database written by
v0.2.0 cannot be opened by v0.1.0, and vice versa. The three cores (Rust, Go, TypeScript)
remain in lockstep: byte-identical on-disk format and identical results, types, errors, and
execution cost.
Added
varchar(n)/string(n)length limits — parameterizedtexttypmod; over-length
input errors (22001), trailing spaces are truncated to fit.- Schema introspection — the
jed_-prefixed catalog relationsjed_tables,
jed_columns,jed_indexes, andjed_constraints, queryable as ordinary read-only tables. EXPLAIN/EXPLAIN ANALYZE— a deterministic plan dump;ANALYZEreports real
execution cost.- Attached databases — a host may
attachother jed databases (on disk or in-memory)
under a name and query across them by database-qualified name (reports.sales) in one
consistent snapshot. Attaching is a host-API act, never SQL. jed-migrate— an opt-in, tern-modeled schema-migration library for all three cores,
bundled by the CLI as thejed migratesubcommand.- Query planner — index-nested-loop join;
OR/IN-list merged point lookups;
secondary-index range scans with multi-column prefix bounds. fsync = off— a create/open handle setting for development and testing.
Changed — storage (format_version 21 → 25)
- PAX column-major leaf layout; a B+tree reshape (records live only in leaves, record-free
routing interiors); on-disk free-list persistence with continuous within-session page
reclamation (open no longer walks the whole file). Temporary tables now live on an
in-memory block store, and in-memory databases are served through the same pager and
packed-leaf read path as file-backed ones. Files written by v0.2.0 are not readable by
v0.1.0.
Changed — host / embedding API (breaking for embedders)
- Unified database constructors
create(...)/open; theexecandquerypaths are
unified onto a singlequery → Rowsstreaming seam;SharedDbwas renamed toDatabase
and the session handle unified;NoFsyncwas renamed toSkipFsync; thetable_names
convenience and theSHAREDtemporary-table surface were removed; the internalEngine
and modules are now private behind a curated public API. Adds ergonomic per-language
bindings, cross-core statement cancellation (57014), and a prepared-statement plan cache
with streaming.
Performance
- Packed (block-backed) PAX leaves with touched-column-only decode; a vectorized
aggregate/filter executor; a true streaming result cursor with lazy record decode; open
reads only the interior spine (the eager per-table row-count leaf walk is gone); geometric
file preallocation; a smaller GoValue.
Distribution
- Unchanged from v0.1.0: the Go module (
github.com/jackc/jed/impl/go, pure Go) and the
website & playground are the shipped artifacts. The Rust crate, thejedCLI, the npm
package, and the Ruby gem are built in-repo but are not yet published to their registries.
jed v0.1.0 — public preview
First public preview. Embeddable, capable, safe for untrusted SQL — types and behavior modeled on PostgreSQL. 0.x: no stability guarantees and the on-disk format may change. See CHANGELOG.md.