What dolthub/dolt shipped
Written by FoxPlug from the repository's own releases; not affiliated with Dolthub. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/dolthub/dolt; Dolthub did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- Added dolt branch --orphan and the dolt_branch('--orphan',...) form to create a branch whose only commit has no parents and holds the contents of the start point. Pull request #12226
- New rebase plans store
commit_hashas commit addresses so garbage collection keeps the commits of a paused rebase reachable, and writes to the column reject anything but an existing commit. Pull request #12278 - Merge now works when both branches applied the same primary key change, because the common ancestor's altered tables are rekeyed so all three schemas match. Pull request #12334
- Fixed
dolt_preview_merge_conflictsshowing swapped base, ours and theirs schemas when schemas differ between branches. Pull request #12333 - Fixed merge-preview schema order when rekeying the ancestor so
dolt_preview_merge_conflictsno longer shows shifted values after both branches change the primary key. Pull request #12354 - Branch control checks on the rebase working branch now also require permissions on the branch being rebased. Pull request #12346
- Branch control now strips @-delimited revisions from database names, so namespace checks match rules for names like mydb@branch. Pull request #12391
- A forced
dolt_backuprestore now refuses to overwrite a database the current transaction is writing to, and checks the backup exists before dropping anything. Pull request #12376 - Fixed the first write to a temporary table erasing its inline indexes by refreshing the schema and write session after creating an index. Pull request #12348
- Fixed a panic in dolt_commit_all('--skip-empty') when a skipped branch sorts before a committed one. Pull request #12331
Why it matters
This week's changes focus on keeping data reachable and correct: garbage collection no longer collects commits held by rebase plans, rebase state, pre-merge heads, savepoint roots or temporary tables. Several fixes address merge and preview correctness when both branches change the primary key, along with tighter branch control permission and revision name handling.
Changelog entry
- Add dolt branch --orphan and the dolt_branch('--orphan',...) form to create a branch with an unrelated history. Pull request #12226
- Store rebase plan commits as commit addresses so garbage collection keeps a paused rebase's commits. Pull request #12278
- Allow merge when both branches applied the same primary key change by rekeying the common ancestor. Pull request #12334
- Fix
dolt_preview_merge_conflictsswapping base, ours and theirs schemas. Pull request #12333 - Fix merge-preview schema order when rekeying the ancestor. Pull request #12354
- Require permissions on the rebased branch for its rebase working branch. Pull request #12346
- Strip @-delimited revisions from database names in branch control. Pull request #12391
- Refuse a forced
dolt_backuprestore over a database being written by the current transaction. Pull request #12376 - Preserve inline indexes when writing temporary tables. Pull request #12348
- Fix
dolt_commit_all--skip-empty panic with skipped branches. Pull request #12331 - ANALYZE TABLE now takes the database and revision from the table. Pull request #12393
- Dolt_commit_all uses the revision database's branch when nothing is dirty. Pull request #12392
This week in Dolt: branch --orphan for unrelated histories, rebase plans keep their commits through GC, merge works when both branches make the same pk change, fixed swapped merge-preview schemas, and stricter rebase branch permissions.
This week in Dolt: dolt branch --orphan creates a branch with an unrelated history holding the contents of a start point. Rebase plans now store commits as commit addresses so garbage collection keeps a paused rebase's commits reachable, and rebase state, pre-merge heads, savepoint roots and temporary tables are kept across GC. Merges now succeed when both branches applied the same primary key change, and dolt_preview_merge_conflicts no longer shows swapped or shifted schemas. Branch control requires permissions on the rebased branch for its working branch, and handles @-delimited revisions.
Week of October 26, 2026
What shipped
- Fixed a server crash when a virtual column preceded a stored column in a keyless index lookup by sizing rows by projections and guarding the producer. Pull request #12239
- Fixed REPLACE panic on keyless tables with unique indexes by validating unique indexes before inserting rows. Pull request #12225
- Fsck now validates the working and staged roots of every working set and the roots and commits recorded by an in-progress merge or rebase. Pull request #12277
- Full binlog row images now include virtual generated-column values so CDC consumers receive every column advertised by TABLE_MAP. Pull request #12250
- Fixed optimizer statistics lookup for branch-qualified databases. Pull request #12249
- Fixed a panic when addressing conflicts in keyless table column types. Pull request #12212
- During shutdown, new multiplexed gRPC requests now get a 503 instead of causing a WaitGroup misuse panic and preventing grpcSrv.Stop from returning. Pull request #12230
- Nbs now fsyncs byte sink output before it is renamed into a table file directory, fixing GC writing unsynced table files into oldgen ahead of a synced manifest. Pull request #12173
- Nbs journal now reads flushed chunks and runs callbacks outside the journal lock, and Close waits for outstanding reads to drain. Pull request #12176
- Released version 2.6.2 with the fsck and other fixes. Release
Why it matters
This week's changes fix several crashes and panics, including a server crash from keyless index lookups and a REPLACE panic on keyless tables. They also make fsck validate working sets and improve binlog support for virtual generated columns. These updates improve stability and data integrity for developers using the project.
Changelog entry
- Fixed a server crash when a virtual column preceded a stored column in a keyless index lookup by sizing rows by projections and guarding the producer. Pull request #12239
- Fixed REPLACE panic on keyless tables with unique indexes by validating unique indexes before inserting rows. Pull request #12225
- Fsck now validates the working and staged roots of every working set and the roots and commits recorded by an in-progress merge or rebase. Pull request #12277
- Full binlog row images now include virtual generated-column values so CDC consumers receive every column advertised by TABLE_MAP. Pull request #12250
- Fixed optimizer statistics lookup for branch-qualified databases. Pull request #12249
- Fixed a panic when addressing conflicts in keyless table column types. Pull request #12212
- During shutdown, new multiplexed gRPC requests now get a 503 instead of causing a WaitGroup misuse panic and preventing grpcSrv.Stop from returning. Pull request #12230
- Nbs now fsyncs byte sink output before it is renamed into a table file directory, fixing GC writing unsynced table files into oldgen ahead of a synced manifest. Pull request #12173
- Nbs journal now reads flushed chunks and runs callbacks outside the journal lock, and Close waits for outstanding reads to drain. Pull request #12176
- Released version 2.6.2 with the fsck and other fixes. Release
This week: fixes for server crashes, REPLACE panics, and fsck now checks working sets. Also included: binlog virtual generated columns, statistics lookup for branch-qualified databases, and shutdown stability. Released in 2.6.2.
This week we shipped fixes for several crashes and panics, including a server crash from keyless index lookups and a REPLACE panic on keyless tables with unique indexes. fsck now validates working sets and in-progress merge or rebase state. Full binlog row images now include virtual generated-column values for CDC consumers. Optimizer statistics lookup for branch-qualified databases was fixed, and shutdown handling for multiplexed gRPC requests was improved to avoid a WaitGroup misuse panic. These changes are available in release 2.6.2.
Week of October 19, 2026
What shipped
- Released version 2.6.0, which changes dolt_merge() behavior for long-running branches with multiple merges. Release
- Implemented git's ORT merge mechanism. Pull request #12125
- Dolt remote remove now clears branch upstreams so
repo_state.jsonno longer keeps stale merge refs. Pull request #12151 - Three-dot diffs now warn when several merge bases exist, and three-dot log was fixed. Pull request #12182
- Marked the
commit_hashindex non-unique indolt_commit_ancestors. Pull request #12192 - Fixed schema merge conflicts for CHECK constraints on mixed-case columns by resolving column references case-insensitively. Pull request #12152
- Deduplicated NBS archive dictionaries by content. Pull request #12203
- NBS chunk journal write buffers and index maps are now allocated on demand. Pull request #12194
- DOLT_LOG now projects rows so unused columns are trimmed. Pull request #12131
- Filter-branch now closes its per-commit databases, fixing an intermittent panic. Pull request #12147
Why it matters
This week's release of 2.6.0 changes how dolt_merge() behaves for long-running branches with multiple merges, and the ORT merge mechanism landed alongside several merge-related fixes. Remote removal, diff, log and schema merge handling also received corrections, reducing false conflicts and stale state.
Changelog entry
- Release 2.6.0: dolt_merge() now walks the commit graph fully for long-running branches with multiple merges. Release
- Release 2.5.0: allow commits on more than one branch in the same SQL transaction. Release
- Release 2.5.1: fix schema merge conflicts for checks on mixed-case columns and bump file-locks. Release
- Implement git's ORT merge mechanism. Pull request #12125
- Dolt remote remove now clears branch upstreams from
repo_state.json. Pull request #12151 - Warn on three-dot diffs with several merge bases and fix three-dot log. Pull request #12182
- Mark
commit_hashindex non-unique indolt_commit_ancestors. Pull request #12192 - Resolve CHECK column references case-insensitively during schema merges. Pull request #12152
- Deduplicate NBS archive dictionaries by content. Pull request #12203
- Allocate NBS chunk journal write buffers and index maps on demand. Pull request #12194
- Project rows in DOLT_LOG to trim unused columns. Pull request #12131
- Close filter-branch's per-commit database to avoid an intermittent panic. Pull request #12147
Dolt 2.6.0 is out with a corrected dolt_merge() for long-running branches. This week also brought git's ORT merge mechanism, remote removal clearing branch upstreams, and three-dot diff warnings for multiple merge bases.
Dolt 2.6.0 is released. It changes dolt_merge() so long-running branches with multiple merges are handled more correctly, and 2.5.0 made it possible to commit on more than one branch in the same SQL transaction. This week also landed git's ORT merge mechanism, cleared stale branch upstreams when a remote is removed, added a warning for three-dot diffs with several merge bases, fixed schema merge conflicts on mixed-case CHECK columns, and improved DOLT_LOG projection.
Week of October 12, 2026
What shipped
- Added atomic multi-branch transactions and commits through
dolt_commit_alland thedolt_multi_branch_commitsetting. Pull request #11928 - Added a dolt_merge_bases() table function and an --all flag on dolt merge-base for finding multiple merge bases, with existing dolt_merge_base() behavior unchanged. Pull request #12086
- Fixed a path traversal issue in standalone remotesrv by rejecting traversal and malformed repository paths in RPC and sealed HTTP file requests and validating upload table file IDs. Pull request #12091
- Cluster role headers are now authenticated before transitions are applied. Pull request #12092
- Index lookup joins now allow NULL in the constant lookup key. Pull request #12108
- Diff now accepts retagged primary keys so table history survives a same-key table recreate. Pull request #12077
- SyncRoots now returns the source root read error instead of reporting success when the source root read fails, so backup sync, sync-url and restore no longer report success without transferring the source root. Pull request #12057
- Merges now report a schema conflict when both branches add the same generated column with different AS expressions or VIRTUAL/STORED modes, while identical additions still merge cleanly. Pull request #12052
- Closing a keyless secondary-index scan before it is drained now cancels its child context and waits for the producer instead of leaving the goroutine blocked. Pull request #12066
- Closing an embedded SQL engine now stops and joins its branch-activity tracker and primary binlog manager, and primary shutdown interrupts blocked replica writes and waits for active streams. Pull request #12075
Why it matters
This week fixed several ways failures could go unreported or resources could be left behind, including sync reporting success without transferring the source root and scans or engines leaving goroutines blocked after close. It also tightened remote path handling and cluster header authentication, and added atomic multi-branch commits and broader merge-base lookups for people working across branches.
Changelog entry
- Support atomic multi-branch transactions and commits with
dolt_commit_alland thedolt_multi_branch_commitsetting. Pull request #11928 - Add dolt_merge_bases() table function and --all flag on dolt merge-base. Pull request #12086
- Reject traversal and malformed repository paths in standalone remotesrv and validate upload table file IDs. Pull request #12091
- Authenticate cluster role headers before applying transitions. Pull request #12092
- Allow NULL in the constant lookup key of an index lookup join. Pull request #12108
- Keep history across same-key table recreates by accepting retagged primary keys in diff. Pull request #12077
- Return the source root read error from SyncRoots instead of reporting success. Pull request #12057
- Detect conflicting generated column additions during merge. Pull request #12052
- Stop keyless index producers on Close. Pull request #12066
- Stop embedded SQL engine workers and clean up primary binlog streams on shutdown. Pull request #12075
- Fix Windows FETCH_HEAD lock contention, dedup write fetches, and omit auth hints for file errors in gitauth. Pull request #12062
- Bump dolthub/file-locks to restore support for building on BSDs. Pull request #12136
This week: atomic multi-branch commits with dolt_commit_all, dolt_merge_bases() and merge-base --all, a remotesrv path traversal fix, authenticated cluster role headers, NULL keys in index lookup joins, and history kept across same-key table recreates.
This week in Dolt: atomic multi-branch transactions and commits via dolt_commit_all and the dolt_multi_branch_commit setting, a new dolt_merge_bases() table function plus an --all flag on dolt merge-base, and a fix for path traversal in standalone remotesrv. Cluster role headers are now authenticated before transitions are applied, index lookup joins allow NULL in the constant lookup key, and diff accepts retagged primary keys so history survives a same-key table recreate. We also fixed merges silently keeping one definition when both branches add the same generated column with different expressions or storage modes, and SyncRoots now returns the source root read error instead of reporting success.
Week of October 5, 2026
What shipped
- Switched to fdatasync on Linux with a padded journal, which avoids unnecessary file system metadata updates. Pull request #12031
- Accelerated lookup joins with SQL row inputs using shared iteration and type-aware key conversion. Pull request #12034
- Fixed foreign keys referencing a renamed index by extending the index renaming logic to cover ALTER INDEX as well as RENAME INDEX. Pull request #12025
- Added a 3s HTTP timeout for the latest release fetch and cached failed checks so dolt version no longer hangs. Pull request #12027
- Made three performance changes: capturing the hash of an object instead of recalculating, allocating in one shot in ReadBytes, and reusing unchanged leaves in adaptive encoding. Pull request #12049
- Used a.bss allocated zeros slice for the write ahead in the journal file, avoiding allocation and GC interaction. Pull request #12047
- Initialized the git remote cache repository with the remote's object format. Pull request #12061
- Returned ErrTableAlreadyExists for existing nonlocal tables. Pull request #12041
- Quoted
dolt_blameview identifiers with the engine's schema formatter so Doltgres uses its own quotes. Pull request #12024 - Documented the NBS storage lock contract in the NBS README, including the lock path and the advisory file lock. Pull request #12023
Why it matters
This week brought a mix of performance work and compatibility fixes across storage, joins and version checks. Users should see faster writes on Linux with the padded journal and fdatasync change, faster lookup joins with SQL row inputs, and fewer hangs from dolt version. Fixes for renamed indexes, nonlocal tables and dolt_blame quoting also make behavior more consistent.
Changelog entry
- Use fdatasync on Linux with a padded journal, avoiding unnecessary file system metadata updates. Pull request #12031
- Accelerate lookup joins with SQL row inputs using shared iteration and type-aware key conversion. Pull request #12034
- Fix foreign keys referencing a renamed index by covering ALTER INDEX as well as RENAME INDEX. Pull request #12025
- Cache failed release checks and add a 3s HTTP timeout to prevent dolt version from hanging. Pull request #12027
- Capture the hash of an object instead of recalculating, allocate in one shot in ReadBytes, and reuse unchanged leaves in adaptive encoding. Pull request #12049
- Use a.bss allocated zeros slice for the write ahead in
journal_file.go. Pull request #12047 - Initialize the git remote cache repository with the remote's object format. Pull request #12061
- Return ErrTableAlreadyExists for existing nonlocal tables. Pull request #12041
- Quote
dolt_blameview identifiers with the engine's schema formatter. Pull request #12024 - Document the NBS storage lock contract in the NBS README. Pull request #12023
- Qualify the primary key in the
auto_increment_lock_modesbats check query. Pull request #12037 - Fix a TIME parsing test where a TIME type was incorrectly clipped. Pull request #12048
This week: fdatasync with a padded journal on Linux for faster writes, accelerated lookup joins with SQL row inputs, dolt version now times out and caches failed release checks, foreign keys referencing renamed indexes fixed, and dolt_blame identifiers quoted with the engine's sc
This week in Dolt: write performance improved by using fdatasync on Linux with a padded journal, lookup joins with SQL row inputs were accelerated with shared iteration and type-aware key conversion, and dolt version now uses a 3s HTTP timeout while caching failed release checks. Foreign keys referencing a renamed index are fixed by extending the index renaming logic to ALTER INDEX, nonlocal tables now return ErrTableAlreadyExists, dolt_blame view identifiers use the engine's schema formatter, and the NBS storage lock contract is documented. The git remote cache repository is initialized with the remote's object format.
Week of September 28, 2026
What shipped
- Released version 2.4.0 with a minor version bump due to breaking changes in INSERT INTO.. ON DUPLICATE KEY UPDATE privilege enforcement, which now correctly requires UPDATE privileges rather than only INSERT privileges. Release
- Optimized dolt log from O(N^2) to O(N) complexity by querying branch, tag, and log metadata once instead of per commit. Pull request #11990
- Fixed upsert authorization to require UPDATE privileges and added protocol regression coverage for denied and permitted upserts. Pull request #11956
- Nonlocal tables now retain their own schema when absent from schema-override commits while preserving existing overrides. Pull request #12018
- Git fetch anchor refs are now preserved during teardown to enable incremental transfers on subsequent pulls instead of full re-downloads. Pull request #11991
- Fixed redundant Git reads and decompression by spooling persisted Git-backed tables and reusing existing readers in conjoin operations. Pull request #11989
- Added git-remote.max-history-commits and git-remote.reset-history-on-prune configuration options for trading disk usage against transfer speed. Pull request #11993
- Fixed CREATE TABLE rejection on target branches of nonlocal table rules by adding table name validation during creation. Pull request #12002
- Improved database cache key specificity to include local database root, remote URL, and effective Git ref to prevent incorrect cache sharing. Pull request #12016
- Added CSV import regression test coverage for update triggers. Pull request #11980
Why it matters
Version 2.4.0 ships performance improvements to logging and Git operations alongside security fixes for upsert privileges. Improvements to nonlocal table schema handling and Git remote configuration give users more control over storage and transfer efficiency.
Changelog entry
- Version 2.4.0 released with breaking change: INSERT INTO.. ON DUPLICATE KEY UPDATE now correctly enforces UPDATE privileges Release
- Dolt log optimized from O(N^2) to O(N) by querying metadata once per operation Pull request #11990
- Upsert operations now require UPDATE authorization on target tables Pull request #11956
- Git fetch anchors preserved during teardown for incremental pull transfers Pull request #11991
- NBS spooling now handles persisted Git tables and conjoin reads to reduce redundant operations Pull request #11989
- New git-remote configuration options: max-history-commits and reset-history-on-prune Pull request #11993
- Nonlocal tables retain schema when absent from schema-override commits Pull request #12018
- CREATE TABLE allowed on nonlocal table rule targets Pull request #12002
- Database cache keys now include local root, remote URL, and effective Git ref Pull request #12016
- Added CSV import regression coverage for update triggers Pull request #11980
- Replaced fslock library with dolthub/file-locks Pull request #11935
- Fixed unescaping of % wildcards in check constraint merge tests Pull request #11937
Dolt 2.4.0 is out. We optimized dolt log to O(N), fixed upsert privilege checks, improved Git transfer performance with anchor refs, and made nonlocal table schema handling more flexible.
Dolt 2.4.0 is available. This release includes significant performance improvements: dolt log is now O(N) instead of O(N^2), Git operations preserve fetch anchors for incremental transfers, and NBS spooling eliminates redundant reads. We fixed upsert authorization to properly require UPDATE privileges and improved nonlocal table schema handling. Users can now configure Git remotes for disk/speed tradeoffs with new settings.
Week of September 21, 2026
What shipped
- Release 2.3.5 adds wildcard table filters for binlog replication, supporting REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE with MySQL wildcard matching and precedence handling. Release
- Dynamic merge conflict handling allows flexible row merge behavior with the ability to detect conflicts on matching values and create rows based on caller requirements. Pull request #11643
- DoltgreSQL now supports transaction lifecycle hooks that expose transaction start, end reason (commit or rollback), and savepoint interaction. Pull request #11920
- DoltgreSQL can now override the effective user in search path $user substitution. Pull request #11933
- DoltgreSQL can now provide branch-control principal for access control. Pull request #11921
- TIME type precision changes have been implemented. Pull request #11943
Why it matters
The release brings improved MySQL replication capabilities with wildcard filtering support. DoltgreSQL gains important transaction lifecycle visibility and user context management features. The dynamic merge conflict handling opens new use cases for flexible row merge behavior.
Changelog entry
- Support wildcard table filters for binlog replication with REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE Release
- Add dynamic merge conflict handling for flexible row merge behavior Pull request #11643
- Add DoltgreSQL transaction lifecycle hooks for transaction start, end, and savepoint events Pull request #11920
- Allow DoltgreSQL to override effective user in search path $user substitution Pull request #11933
- Allow DoltgreSQL to provide branch-control principal Pull request #11921
- Implement TIME type precision changes Pull request #11943
Dolt 2.3.5 ships wildcard table filters for binlog replication, matching MySQL's REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE behavior. DoltgreSQL gains transaction lifecycle hooks and search path user override support.
Dolt 2.3.5 is out with significant improvements for MySQL-to-Dolt binlog replication. Wildcard table filters now support REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE with full MySQL wildcard matching and precedence handling. DoltgreSQL adds transaction lifecycle hooks for visibility into transaction start, commit/rollback, and savepoint operations, plus enhanced search path user handling for better access control integration.
Week of September 14, 2026
What shipped
- Released version 2.3.4 with fixes for journal writer race conditions and session-only checkout warnings in noninteractive SQL. Release
- Fixed garbage collection bug where reads could access chunks that were being collected by draining outstanding reads before GC installs its keeper. Pull request #11891
- Fixed generation ordering on reads to prevent missing chunks that are being moved from new to old generation during garbage collection. Pull request #11892
- Improved keeper sampling in the read path by moving it into beginRead and registering all unlocked reads from a single locked section. Pull request #11889
- Added support for wildcard table filters in binlog replication with REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE. Pull request #11842
- Added JSON Lines output format for SQL queries with one JSON object per row. Pull request #11849
- Enabled Dolt executable comments in SQL scripts. Pull request #11851
- Changed boolean SQL results to print as 1 and 0 in text and CSV output to match MySQL behavior. Pull request #11854
- Added validation of destination branch names before pushing to remotes. Pull request #11852
- Added validation and sanity checks on index data when NomsBlockStore opens table files. Pull request #11773
Why it matters
This week focused on critical garbage collection fixes that prevent data loss during collection cycles, along with improvements to replication, SQL output formatting, and branch validation. Several regression tests were added to prevent future issues with merges, procedures, and CSV handling.
Changelog entry
- Version 2.3.4 released Release
- Fixed GC race where reads could access chunks being collected Pull request #11891
- Fixed generation ordering on reads during chunk moves in GC Pull request #11892
- Improved keeper sampling in read path for consistency Pull request #11889
- Fixed lost cancellation wakeup in waitForGC Pull request #11888
- Fixed cache population before incoming Purge requests Pull request #11887
- Fixed nil-ghostGen bugs in GenerationalNBS Pull request #11893
- Added REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE support Pull request #11842
- Added JSON Lines output format for SQL queries Pull request #11849
- Enabled Dolt executable comments in SQL scripts Pull request #11851
- Boolean SQL results now print as 1 and 0 in text and CSV output Pull request #11854
- Show ON UPDATE CURRENT_TIMESTAMP in EXTRA column Pull request #11844
- Validate destination branch names before pushing Pull request #11852
- Added index data validation and sanity checks in NomsBlockStore Pull request #11773
- Bumped Bazel to 9.2.0 and updated module versions Pull request #11618
V2.3.4 shipped with GC fixes preventing chunk collection races, wildcard replication filters, JSON Lines output, and improved branch validation.
Dolt 2.3.4 is out with important garbage collection fixes that prevent reads from accessing chunks being collected, plus new capabilities: wildcard filters for binlog replication, JSON Lines SQL output format, and better branch name validation before pushing.