All notable release-level changes are documented here. The detailed milestone
and repair-candidate log from development is preserved in
docs/history/DEVELOPMENT_CHANGELOG.md.
-
added generated MiniDoc HTML and Markdown API references with checked output inventories, link validation, and code-quality regression thresholds;
-
reduced maximum cyclomatic complexity from 113 to 84, maximum cognitive complexity from 290 to 150, and duplicated source from 5.09% to 4.96% without a repeatable performance or memory regression;
-
split ALTER TABLE, statistics serialization, expression binding, authorization, hash-join counting, and Win32 event handling into focused, parameter-documented helpers;
-
added a single-host automatic HA controller with a stable loopback endpoint, asynchronous standby refresh, controller-owned promotion, a serialized file witness, dedicated lease renewal, and machine-readable status;
-
added native fail-closed write fencing with persistent leader epochs, expiring CRC-32C leases, stable error 9038, pre-mutation and pre-commit checks,
SHOW STATUSmetrics, and Python connector error mapping; -
added destructive split-brain, double-promotion, stable-endpoint, automatic leader-kill, post-promotion write, rejoin, and offline-integrity tests;
-
added a dependency-free Java 11+ JDBC 4.3 driver with service discovery, trusted-local and password-authenticated connections, TLS 1.3/X.509 and certificate pinning, statements, client-side prepared statements, batches, transactions, lazy continuation-frame result sets, typed getters, and live table/column/index metadata;
-
added reproducible JDBC build tooling plus unit, trusted-local, multi-frame, transaction, temporal-binding, catalog, challenge-response, and authenticated AES-256-GCM live integration coverage, including a self-signed TLS 1.3 server accepted only through its exact SHA-256 certificate pin;
-
accepted aliased comma-separated FROM lists such as
FROM customers c, orders o, lowering each comma to a typed CROSS join while retaining WHERE predicates and normal qualified-name binding, and promoting connecting WHERE equalities to the costed inner/hash/index-join path without retaining the already enforced equality as a duplicate residual filter; -
added deterministic functional indexes such as
CREATE INDEX ... (LOWER(email)), with compatible durable metadata, SHOW rendering, costed exact-expression scans, optional INCLUDE/WHERE, and computed UNIQUE keys; -
maintained functional keys through mutation, repair, REINDEX, VACUUM, rename, dependency checks, and reopen, with focused parser, DML, persistence, negative-path, and optimizer regression coverage;
-
added durable partial indexes through
CREATE [UNIQUE] INDEX ... WHERE, including optional INCLUDE payloads, predicate introspection, complete DML/ recovery/maintenance verification, partial uniqueness, and conservative typed-conjunct optimizer implication; -
prevented partial unique indexes from acting as table-wide foreign-key or predicate-free
ON CONFLICTarbiters and added focused parser, schema-change, mutation, reopen, and costed index-only regression coverage; -
strengthened partial-index implication with typed equality/range boundary proofs, including strict/inclusive edges and comparison-to-
IS NOT NULL, while retaining conservative fallback for unproved expressions; -
expanded the native Workbench with multiple SQL worksheets, keyboard accelerators, context menus, searchable history, CSV result export, and persistent top-level window geometry;
-
replaced the fixed 100-row table preview workflow with sortable, filterable, paged multi-select data grids; added Unicode copy/paste, direct cell-focused editing, staged bulk insert/update/delete, exact SQL preview, revert, and atomic transaction/savepoint application;
-
added a structured table/column/index/constraint schema designer with exact DDL preview, injection-resistant fragment validation, insert-into-worksheet, guarded execution, and automatic object-tree refresh;
-
added model, native-control, live-server, rollback, pagination, concurrent reader, reconnect, and layout-persistence coverage for the extended Workbench;
-
upgraded the native Workbench worksheet to a Unicode RichEdit SQL editor with MiniSQL keyword, literal, number, quoted-identifier, and comment highlighting; added distinct current/selection and quote-aware whole-script execution paths;
-
corrected CRLF-to-RichEdit offset translation so syntax styles, caret positions, selections, and current-statement execution stay aligned after every Windows line break;
-
persisted the selected SQL/Object Details workspace across asynchronous metadata completion and native control rendering;
-
replaced pipe-delimited object-detail text with native Columns, Indexes, Data, and Row Count grids; added a resizable row editor plus safe keyed add, copy, update, delete, confirmation, validation, and automatic preview refresh;
-
prevented Windows QuickEdit selection from suspending the daemon during stdout logging, persisted file records before console output, and bounded the client HELLO handshake so both CLI and Workbench fail stalled endpoints;
-
completed six post-1.0 SQL expansion blocks:
DROP INDEXand additionalALTER TABLEactions; text/numeric/temporal functions and aggregates; derived tables and correlated subqueries; recursive CTEs and navigation/ distribution window functions; durable schemas andINFORMATION_SCHEMA; and transactionalMERGE, trigger enable/timing controls, and typed single-statement stored procedures; -
added focused parser, binder, executor, durability, negative-path, and reopen regressions across M16, M23, M24, M34, M35, M44, and M45;
-
fixed the native compiler's Windows-x64
input()ABI path so allocator calls cannot clobber the interactive line length and exhaust the 4 GiB MiniLang heap on the first shell command; added compiler-level and MiniSQL shell regressions; -
replaced the one-page catalog and security snapshots with checksummed, crash-safe multi-page generations; removed the 1 MiB schema/statistics caps, 16-bit security collection counts, and small-backup file/count ceilings while preserving automatic reads and migration of legacy databases;
-
eliminated quadratic client response formatting and bounded retained script allocations, preventing persistent shell sessions from exhausting the MiniLang heap on repeated or wide query results;
-
added a process-wide configurable logger with DEBUG/INFO/WARNING/ERROR thresholds, identical stdout and rolling-file output, configurable hourly rotation, and an optional independently durable SQL binlog that records every valid UTF-8 statement before parsing or execution;
-
added regression coverage for multi-page catalogs, wide client results, logger severity filtering and rotation, security generation recovery, and the end-to-end server-session binlog hook;
-
replaced the cooperative multi-client polling loop with a bounded native MiniLang thread pool and one long-lived worker job per active connection;
-
added a writer-prioritized readers/writer gate per database: read-only SELECT, EXPLAIN and metadata plans can execute concurrently, while DML, DDL, DCL, sequence access, maintenance and session mutations remain exclusive;
-
made the logical lock graph thread-safe, initialized read-path sidecars before publishing a database, added compatible shared table/index file locks, and synchronized external-sort spill identifiers and UTF-16 path marshalling;
-
serialized all CNG RNG, PBKDF2, SHA/HMAC and AEAD native call sequences on the same recursive monitor so compiler-managed native argument buffers cannot overlap across authentication and secure-frame workers;
-
replaced the Python TLS sidecar and plaintext proxy hop with an in-process Windows Schannel TLS 1.3 transport; the strict current profile accepts only
TLS_AES_256_GCM_SHA384and X25519, validates X.509 chains and hostnames, supports explicit SHA-256 leaf pinning for self-signed deployments, handles post-handshake messages and emits authenticatedclose_notifyalerts; -
added a native Linux x64 target for all five command-line applications, with the same database and wire formats, portable platform services, OpenSSL 3 TLS, authenticated sessions, and bounded concurrent database access;
-
corrected Linux worker lifetime and non-blocking socket readiness handling; the portable gate now completes two consecutive waves of four simultaneous clients and safely reuses the bounded pthread-backed worker pool;
-
completed a three-trial Windows/WSL2 comparison covering durable storage, restart, one-shot requests, and persistent 1/4/8-client query workloads, and made its Python parent/child runners preserve source-tree cache hygiene;
-
taught build and acceptance commands to include the selected Python compiler's standard library automatically;
-
fixed restart recovery after
DROP TABLE: historical committed WAL images for catalog-proven retired table IDs are skipped without weakening strict missing-target validation, and recovery target lookup is now hash-based; -
added crash-safe automatic current-WAL reset with persistent replay epochs, configurable checkpoint thresholds, batched transaction WAL appends, and interrupted-reset recovery;
-
made
runtime.bufferPoolBytesan operational thread-safe CLOCK read cache; added early LIMIT/OFFSET range scans and projection pushdown so unrelated external TEXT/BLOB values are not materialized; -
externalized large ordinary DML values, batched overflow/page allocation, maintained insert-only indexes incrementally, and replaced eager VACUUM row retention with a one-row streaming rewrite plus periodic garbage collection;
-
added restart-aware 1/5/10 GiB capacity profiles with fresh-process point lookups, WAL bounds, configurable private-memory guardrails, optional post-VACUUM verification, and JSON reports; the accepted 1 GiB reference run completed eight restart chunks and ended with a zero-byte current WAL;
-
added an atomically published, CRC-protected physical heap-page directory per table; sequential scans, insert page searches, reopen hints, and streaming VACUUM now skip unrelated overflow/free pages, extend only a grown file tail, and rebuild transparently after corruption, truncation, DROP, or replacement;
-
reduced full logical verification of the retained 1 GiB overflow workload from 1,368,140 ms to 71,453 ms for its one-time legacy directory build and to 1,093 ms on a fresh-process warm restart;
-
made offline consistency checking row-streaming and B+ tree structural validation leaf-streaming; heap/index agreement now uses exact membership probes plus count equality instead of retaining two complete entry arrays, reducing the retained 1 GiB check's private-memory peak from 1,237.7 MiB to 98.1 MiB while preserving full overflow, checksum, and index validation;
-
replaced CRC-32C's eight polynomial iterations per byte with an immutable Castagnoli lookup table and eight-way unrolled byte processing without any format change; the isolated 64 MiB checksum improved from 3,125 ms to 375 ms, and the retained 1 GiB full consistency check from 208,515 ms to 35,216 ms;
-
adopted MiniLang's CPU-dispatched native CRC-32C primitive, using SSE4.2 qword instructions with an exact table fallback; a repeated 4 GiB checksum measured 297 ms (about 13.5 GiB/s), and the retained 1 GiB full consistency check fell from 35,216 ms to 3,683 ms while preserving its 98.1 MiB private-memory peak;
-
made PITR and standby refresh rebuild derived B+ tree indexes after replaying post-base table WAL, closing a consistency gap exposed by the clean restart fast path while preserving the zero-rebuild exact-base restore path;
-
added Apache-2.0 headers to every MiniLang, Python and PowerShell source file, documented every declaration and non-obvious implementation invariant in English, and aligned the README, operator guides, concurrency specifications, TLS specification, contribution policy and notice with the shipped behavior.
- completed and accepted milestones M0 through M50;
- passed 106/106 cumulative Windows x64 phases;
- froze database format version 1 and wire protocol version 1;
- delivered durable paged storage, WAL, recovery, transactions, constraints, DDL/DML/DCL, indexes, optimizer, maintenance, backup/restore, PITR, and migration;
- delivered persistent client/server operation, secure authentication, audit logging, TLS 1.3/X.509 sidecar integration, WAL shipping, and read-only hot standby;
- delivered prepared statements, schema evolution, views, CTEs, subqueries,
windows, sequences, generated columns, triggers, UPSERT,
RETURNING,AUTO_INCREMENT, exact decimal input, hash operators, and external sort; - added deterministic parser/wire/WAL mutation tests, crash matrix, soak tests, performance guardrails, and reproducible Windows-x64 release packaging;
- finalized source cleanup for the GitHub-ready 1.0.0 repository snapshot.