| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| dolt-windows-amd64.msi | 2025-12-04 | 44.4 MB | |
| dolt-1.78.6-1.aarch64.rpm | 2025-12-04 | 39.9 MB | |
| dolt-1.78.6-1.x86_64.rpm | 2025-12-04 | 43.0 MB | |
| install.sh | 2025-12-04 | 3.2 kB | |
| dolt-windows-amd64.7z | 2025-12-04 | 22.1 MB | |
| dolt-windows-amd64.zip | 2025-12-04 | 38.7 MB | |
| dolt-darwin-arm64.tar.gz | 2025-12-04 | 40.0 MB | |
| dolt-darwin-amd64.tar.gz | 2025-12-04 | 42.2 MB | |
| dolt-linux-arm64.tar.gz | 2025-12-04 | 39.8 MB | |
| dolt-linux-amd64.tar.gz | 2025-12-04 | 42.9 MB | |
| 1.78.6 source code.tar.gz | 2025-12-04 | 12.5 MB | |
| 1.78.6 source code.zip | 2025-12-04 | 14.3 MB | |
| README.md | 2025-12-04 | 6.7 kB | |
| Totals: 13 Items | 379.7 MB | 0 | |
Merged PRs
dolt
- 10163: Bug fix: correctly copy check constraints A customer reported a strange behavior where check constraints were getting corrupted/duplicated. The root cause was a bug in the CheckConstraint.Copy() implementation that wasn't returning a copy of the underlying checks, and allowed another part of engine to modify the check constraints accidentally.
- 10149: Change
nodeCachefrom array to slice Arrays in golang are pass by value, whereas slices are pass by reference, so thenodeCachewas getting copied everywhere. - 10147: [#10138]: Fix
dolt_backupsync and sync-url not taking working set changes in transaction Fixes [#10138] - 10146: [#7628]: Amend
dolt_backupDoltgresSQL privilege check for server only Fixes [#7628] - Fix
dolt_backupsupport indolthub/doltdriver. - Fix Erlang MySQL integrations test to use locked version of Elixir 1.18.3 base docker image.
- 10126: .github,go/utils/{publishrelease,rpmbuild}: Add a basic RPM build to the published release artifacts for Dolt.
These RPMs include the statically linked Dolt binary, installed at /usr/local/bin/dolt. They work on x86_64 and aarch64 RPM-based Linux distributions. To install them, download the appropriate
dolt-...-1.{x86_64,aarch64}.rpmfile from the GitHub release artifacts and runsudo rpm -i downloaded_file.rpmon it. - 10078: journal errors, recovery, and testing
Variety of changes to provide assist in healthy journals.
1) Detect journal data loss by looking for parsable objects after unparsable blocks. (root hash followed by another root or chunk). Data loss detection prevents loading of DB, and produced error message in logs.
2) Removed null padding during journal file creation.
3) Automatically truncate journal files when they do not contain any dataloss after parsable portions of the file.
4) Refactor FSCK to enable running when database is not loadable.
5) Provide FSCK flag
--revive-journal-with-data-lossto backup and repair journal file
go-mysql-server
- 3322: custom
AppendDateFormatThe time package's implementation of AppendDate contains additional checks and formatting options that are not necessary. Implementing a cheaper version gives us better performance. Benchmarks: https://github.com/dolthub/dolt/pull/10150#issuecomment-3601374094 - 3321: rewrite last query info
Reimplement
LastQueryInfoto not use a map of*atomic.Valuewith constant keys benchmarks: https://github.com/dolthub/dolt/pull/10148#issuecomment-3600831594 - 3319: Fix
TimestampFuncExprandSetOpin stored procedures Changes: - add missing case for replacing variables for TimestampFuncExpr in the interpreter
- fix incorrect interface cast when assigning to
ast.Subquery.SelectFixes: - https://github.com/dolthub/dolt/issues/10141
- https://github.com/dolthub/dolt/issues/10142
- 3318: [#10113]: Fix DELETE queries with NOT EXISTS uninitialized subqueries
Fixes [#10113]
DELETEqueries withNOT EXISTSsubqueries failed becauseEXISTSexpressions did not set therefsSubqueryflag. This causedDELETEqueries to use a simplified analyzer batch that skipped subquery initialization, leaving subqueries without execution builders. - Refactor
EXISTSexpression building to reusebuildScalar()for*ast.Subquery, ensuring refsSubquery is set. - Capture the table node for simple
DELETEqueries beforebuildWhere()wraps it. - Separate concerns between explicit targets and implicit targets in a bool, but keep all targets in the same list to handle wrapped targets.
- Add
WithTargets()method to update targets without changing the explicit/implicit flag. - Fix
offsetAssignIndexes()fast path to skip when virtual columns are present, using the full indexing path instead.
Closed Issues
- 10134: Dolt and Debezium - GTID error in debezium-connector-mysql
- 10138: Is dolt_add("-A") Required Before Calling the Stored Procedure dolt_backup("sync", "name")?
- 10141: Adding a procedure around a CTE query causes panic
- 10142: Referencing a procedure variable inside a non-trivial query fails
- 10137: Data returned from dolt sql-server is different from dolt sql -q
- 10113: Dolt attempted to evaluate uninitialized subquery , SQL compatibility adjustment
Performance
| Read Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| covering_index_scan | 1.82 | 0.55 | 0.3 |
| groupby_scan | 13.95 | 11.65 | 0.84 |
| index_join | 1.5 | 1.96 | 1.31 |
| index_join_scan | 1.47 | 1.34 | 0.91 |
| index_scan | 34.33 | 22.69 | 0.66 |
| oltp_point_select | 0.2 | 0.28 | 1.4 |
| oltp_read_only | 3.82 | 5.28 | 1.38 |
| select_random_points | 0.35 | 0.58 | 1.66 |
| select_random_ranges | 0.39 | 0.57 | 1.46 |
| table_scan | 34.33 | 28.16 | 0.82 |
| types_table_scan | 74.46 | 65.65 | 0.88 |
| reads_mean_multiplier | 1.06 |
| Write Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| oltp_delete_insert | 8.43 | 6.55 | 0.78 |
| oltp_insert | 4.18 | 3.19 | 0.76 |
| oltp_read_write | 9.22 | 11.65 | 1.26 |
| oltp_update_index | 4.25 | 3.25 | 0.76 |
| oltp_update_non_index | 4.25 | 3.19 | 0.75 |
| oltp_write_only | 5.28 | 6.32 | 1.2 |
| types_delete_insert | 8.43 | 6.91 | 0.82 |
| writes_mean_multiplier | 0.9 |
| TPC-C TPS Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| tpcc-scale-factor-1 | 93.72 | 36.25 | 2.59 |
| tpcc_tps_multiplier | 2.59 |
| Overall Mean Multiple | 1.52 |
|---|---|