Populars: Dades actualitzades el 26 d’octubre del 2026

Categories

Internet1.355
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.120
Eines per a desenvolupadors3.132
Eines d’IA527
Seguretat i privadesa385
Eines del sistema3.113
Jocs523
Educació i ciència239
Xarxa i TI284

Dolt: baixar versions anteriors

Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository.

DoltHub Bases de dades #6 Bases de dades

Aquí hi ha 550 versions de Dolt, des de 30 de març del 2021 fins a l’actual, 2.5.1. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.

2021: 39 39 21 2022: 103 103 22 2023: 131 131 23 2024: 95 95 24 2025: 101 101 25 2026: 81 81 26

550 versions en 6 anys · unes 99 per any

VersióDataMidaFitxers
2.5.1Darrera versió 20 d’octubre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 12152: Fix schema merge conflicts for checks on mixed-case columns
Resolve CHECK column references case-insensitively during schema merges, preventing false deleted-column conflicts for mixed-case column names.
- 12136: go/go.mod: Bump dolthub/file-locks.
Restores support for building on *BSDs.
- 12131: Project rows in DOLT_LOG
LogTable implements ProjectedNode, because it needs to detect which columns have been selected so it knows which values to compute. But it doesn't trim columns based on the projection. This prevents us from being able to remove Project nodes on DOLT_LOG system table queries.
When combined with dolthub/go-mysql-server#4011, this would have resulted in pruning the columnSet for DOLT_LOG without pruning the schema, which would result in incorrect offset cacluation during assignExecOffsets. This change prevents that interaction.
- 11934: Expose PostgreSQL session settings through Dolt sessions
Closed Issues
- 12056: SyncRoots returns success when reading the source root fails (DOLT_BACKUP sync/restore report success)
2.4.0 30 de setembre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11956: Fix upsert authorization and add protocol regression coverage
Upserts could rewrite rows without UPDATE privileges. Update GMS to require UPDATE authorization and add protocol regression coverage for denied and permitted upserts.
- 11935: Replace github.com/dolthub/fslock with github.com/dolthub/file-locks
The new library keeps the interface - New, Lock, TryLock, LockWithTimeout, Unlock, Close, ErrLocked and ErrTimeout - so nothing here changes but the import line. The package is still named fslock, imported under that name from a path that no longer matches it.
- 11933: Allow DoltgreSQL to override effective user in search path $user substitution.
- 11921: Allow DoltgreSQL to provide branch-control principal
- 11920: Add DoltgreSQL transaction lifecycle hooks
These allow Doltgres to see transaction start, why a transaction ended (rollback, commit) and interact with savepoints as well.
- 11896: Limit CI deferral comments to label and draft state changes
Limits CI deferral and release comments to relevant label changes and draft/ready transitions, preventing duplicate notifications on commit pushes.
- 11893: go/store/nbs: Fix two nil-ghostGen bugs in GenerationalNBS
Two pre-existing bugs on the ghostGen == nil path, both only reachable outside the Dolt server (dbfactory always supplies a ghost store):
- HasMany returned nil instead of the absent set, hiding missing hashes. Regression test included.
- PersistGhostHashes had its nil check inverted.
- 11892: go/store/nbs: Fix generation ordering on reads to avoid missing a chunk which is being moved from new to old gen.
When GC moves chunks from new to old gen, it publishes them into old gen and then, eventually, drops them from new gen. If the Reads check old gen first, and then fall back to new gen, they can miss a chunk which is actually retained --- the entire GC can run in between the return from the old gen Read and before the new gen Read.
Reading new gen first is the fix. If the chunk isn't in new gen and it does exist, it has guaranteed already been published to old gen by the time we ask for it.
- 11891: go/store/nbs: Drain outstanding reads before a GC installs its keeper.
An unlocked read samples |nbs.keeperFunc| under |nbs.mu| and then runs
against a table set with the lock released, so a read already in flight
when BeginGC installed its keeper could return chunks having taken no
read dependency on them, leaving the GC free to collect them. BeginGC now
sets |gcInstallPending| and waits for |outstandingReads| to drain before
installing, and every read path parks on that flag at the top of its
locked section. Parking there, rather than in |beginRead|, keeps a read
which spans the memtable and the table files from being split across the
barrier. A BeginGC whose context is cancelled during the drain clears the
flag and restores conjoin, so it leaves no reads parked and no conjoin
disabled.
- 11889: go/store/nbs: Sample the keeper in |beginRead|, and register every unlocked read.
|beginRead| now samples |nbs.keeperFunc| and |nbs.gcCycleCounter| itself
and registers every unlocked read, rather than each call site sampling
them separately and only reads which started during a GC being
registered. A read's keeper and cycle therefore come from the same
locked section which registers it, |nbs.outstandingReads| counts every
read running against a table set, and |endRead| is never nil. This is
the plumbing for making a keeper installation a barrier: the follow-up
drains those registrations before it installs a keeper. The costs are
that a read with no GC running reacquires |nbs.mu| once at completion,
where before it did not, and that EndGC now also waits out reads which
started before its GC began.
- 11888: go/store/nbs: Fix a lost cancellation wakeup in |waitForGC|.
Now take nbs.mu when we broadcast gcCond, so that our waiter is definitely already parked if they need to see our wakeup.
- 11887: go: NodeStore, ValueStore: Avoid caching things that might 
2.3.5 16 de setembre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11842: Support wildcard table filters for binlog replication
Adds REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE support for MySQL-to-Dolt binlog replication, including MySQL wildcard matching, precedence, case handling, validation, and SHOW REPLICA STATUS output.
Filter updates are applied atomically and synchronized with replica lifecycle operations.
Part of #11787
Depends on: dolthub/go-mysql-server#3885
- 11804: Enable fine-grained merging for adaptive JSON
Recognize the JsonAdaptiveEnc storage encoding in the prolly-row JSON merge path, enabling the existing structural merger for Doltgres JSON storage.
Part of dolthub/doltgresql#2018
- 11802: Fix legacy table name unmarshalling receiver
go-mysql-server
- 3888: Fix LOAD_FILE directory handle leaks
Avoids leaking directory handles during LOAD_FILE checks, with the regression exercised by Dolt #11838.
Fixes #8785
- 3886: Simplify partial join parent for window functions in exists subqueries
fixes #11421
- 3885: Support wildcard replication filter values
Adds native string-list values for REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE, including MySQL-compatible format validation and SHOW REPLICA STATUS formatting.
Simplifies replication option handling to use native Go values instead of exported wrapper types.
Companion Dolt PR: github.com//pull/11842
Companion: dolthub/dolt#11842
- 3864: Implement conversions from DATE, DATETIME, and TIMESTAMP to numbers
Properly implement conversion from DATE, DATETIME, and TIMESTAMP types to numeric types.
Additionally, fixes string output to match precision of date type.
Partially fixes: #10278
- 3863: Decorrelate inner join subqueries in EXISTS subqueries
Fix EXISTS subqueries containing inner joins nested inside outer joins incorrectly dropped matching rows. Correlated conditions on null-supplying side of an outer join are now preserved in place rather than hoisted.
- Add (JoinType) IsPreservedTable(childNum int) bool and unified usage with filterPushdownSelector.
- Add decorrelateSelector to stop decorrelation traversal from entering null-supplied join branches.
- Add decorrelateCondition to decorralate inner join filters alongside WHERE filters.
Fix #11771
- 3842: Automate dependency bump approval and merge
Validate generated dependency bump PRs, approve the exact dependency-only commit, and enable squash auto-merge with a head-SHA guard. Disable auto-merge on superseded bumps before closing them, and standardize stale bump cleanup to close immediately unless marked keep-alive.
vitess
- 493: Add wildcard replication filter syntax
Adds parser and AST support for REPLICATE_WILD_DO_TABLE and REPLICATE_WILD_IGNORE_TABLE in CHANGE REPLICATION FILTER statements. Wildcard values are represented as ordered quoted-string lists, including support for explicitly empty lists.
Parser coverage includes multiple patterns, wildcard escapes, quotes, Unicode, empty lists, and rejection of unquoted patterns.
Part of #11787
- 491: Added NULLs ordering
This implements NULL ordering (nulls can be set to be first or last)
Related PRs:
- dolthub/go-mysql-server#3820
- #11746
- dolthub/doltgresql#3285
Closed Issues
- 8822: False positive for incompatible schema change on non-ff merge when indexes on overlapping columns exist
- 11421: Dolt raises an internal row-index error for EXISTS with a window expression.
- 10278: Properly handle conversions between datetime, date, and time types and Numeric Types
- 8275: SHOW CREATE doesn't show indexes on virtual generated columns:
- 4989: using hex string as bindvar for decimal type column in prepared statement causes panic
- 5942: Unexpected and incorrect is too large for column error
- 7130: bad double conversion
- 7668: decimal.Decimal loses precision when prepared
- 8785: md5 function does not recognize binary keyword
- 5414: Argument parser seems to grab prefix
- 8855: Support cosine vector distance function
- 8658: Create VECTOR type.
- 11416: Dolt JSON_EXTRACT does not preser
2.3.4 14 de setembre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11796: go/store/nbs: journal_writer.go: Fix a rare race where the journal_writer entered a weird state because its caller context Canceled as it was bootstraping.
- 11791: Warn about session-only checkout in noninteractive SQL
Warns when a lone dolt_checkout() call in noninteractive SQL changes only the SQL session's branch, leaving the CLI branch unchanged.
Fixes #6876
- 11790: Add virtual name indexes for tags and branches
Adds virtual name indexes with cached ref lookups for dolt_tags and dolt_branches.
Fixes #10365
Companion PR: dolthub/doltgresql#3342
- 11788: Persist sql_mode as string and reload on server startup
Fix #11776
- 11785: Validate vector index creation without restricting schema loading
Preserves existing vector index schemas while validating new index creation, with Dolt commit/reset regression tests and shared DDL coverage in dolthub/go-mysql-server#3858.
Fixes #10448
- 11782: Omit generated columns from SQL diff assignments
Omits generated columns from SQL diff assignments and suppresses updates with no assignable columns, carrying forward #11476 with Elian's review feedback addressed.
Fixes #11445
- 11780: Handle statement cancellation in the SQL shell
Supports \c cancellation in the interactive SQL shell, carrying forward #11291 with regression coverage verifying canceled single-line and multiline inserts leave the table empty.
Fixes #10867
- 11772: Fix foreign keys with dropped columns
Changes are used by:
- dolthub/doltgresql#3312
This also fixes a Dolt bug dealing with dropping a column used by a foreign key
- 11755: build(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /integration-tests/go-sql-server-driver
Bumps google.golang.org/grpc from 1.83.1 to 1.83.2. Release notes
Sourced from google.golang.org/grpc's releases.
> Release 1.83.2
>
> Security
> - server: Reject requests missing both :authority and Host headers with HTTP 400 and status Internal. (grpc/grpc-go#9365)
> - Special Thanks: @winklemad
Commits
- 030ee8b Update version to 1.83.2 (#9375)
- 8668b69 cherry-pick #9365 to v1.83.x (#9366)
- a3e952d cherry-pick #9346 to v1.83.x and update x/net dependency (#9369)
- 58f8fd9 Change version to 1.83.2-dev (#9337)
- See full diff in compare view
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.83.1&new-version=1.83.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
- 11303: sql: fix empty/comment-only query handling in interactive shell
What
In the interactive dolt sql shell, two related edge cases around empty/comment-only statements pro
2.3.3 9 de setembre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11757: go/store/nbs: byte_sink.go: Fix an error in non-archive push and GC paths which could result in table files with missing indexes.
Failure to properly handle a boundary condition in BufferedFileByteSink meant that a table file writer that was producing a large table file could end up writing it out with a broken index. All chunk data made it to the file, but the file itself was unusable without manual recovery because the index portion of the file was wrong.
- 11746: Added DESC indexes and NULL ordering
This implements DESC indexes and NULL ordering (nulls can be set to be first or last). NULL ordering is primarily used by Doltgres. This is a feature version bump for Dolt because, now that we support DESC indexes, old databases trying to read a DESC index would read it incorrectly and return incorrect results.
Related PRs:
- dolthub/vitess#491
- dolthub/go-mysql-server#3820
- dolthub/doltgresql#3285
- 11745: Coalesce git remote read fetches, answer absent keys from the cache.
A cache-missing Get or Exists ran its own git fetch of the whole data ref, so a burst of concurrent readers opened a connection each and every probe for a key that does not exist fetched again. Concurrent read-path fetches now share one fetch, and a key missing from a cache already merged from a commit is reported absent without fetching. A fetch that finds the head unchanged now also refreshes the dedup window, which previously never renewed against a quiet remote.
- 11744: go: git remotes: kill the process group on cancel, bound the wait on inherited pipes.
A cancelled DOLT_PUSH/DOLT_FETCH wedged sql-server indefinitely (#11741): exec.CommandContext's default Cancel kills only the direct git child, so the transport it spawned survives holding the write end of the pipe Run reads from, and cmd.Wait() waits on an EOF nobody will send. Set cmd.Cancel to kill the whole group -- CmdSetsid already makes git the group leader, and Windows shells out to taskkill /T -- and set cmd.WaitDelay as a backstop for a holder that left the group, such as an ssh ControlMaster. Cancellation and expired-wait errors now report ctx.Err() rather than a bare kill signal, and skip the credential hints NormalizeError appends.
- 11743: integration-tests/mysql-client-tests/Dockerfile: Bump java_clients_build off EOL Debian bullseye to maven:3.9-eclipse-temurin-17-noble.
- 11742: go/store/nbs: Clone table file sources which are already open on Conjoin, instead of always opening them anew.
- 11710: Fix misleading paths in multiple .doltcfg error message
Fix #10688
- 11697: Report branch update, force push, and tag status on dolt push
Dolt now prints standard status messages when pushing branches and tags to a remote database. Update display the commit transition range old...new, and when forced are explicitly marked (forced update).
- Inspects the remote reference state before transferring chunks in actions.Push. to capture OldHash, NewHash, and existence.
- Add PushRefResult to distinguish new branches, fast-forward, updates, forced updates, deletions, and tags.
- Add formatPushSuccess to format push success messages.
Fix #11352
Close #11590
- 11693: Name the conflicting ref in ExistingRefError
Include the full conflicting ref in ExistingRefError messages, and give tag and workspace creation their own already-exists errors.
Fixes #11434
Close #11708
- 11692: build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 in /go
Bumps google.golang.org/grpc from 1.82.1 to 1.83.1. Release notes
Sourced from google.golang.org/grpc's releases.
> Release 1.83.1
>
> Security
> - xds/rbac: Fix a bug where nested Principal or Permission rules with :scheme or grpc- prefixed header matchers were not rejected, which could cause DENY rules to fail open. (#9258)
> - Special Thanks: @nvxbug
> - xds/rbac: Fix a bug where the host header matcher was not being replaced with :authority in nested Principal or Permission rules. (#9258)
> - Special Thanks: @nvxbug
> - xds/rbac: Fix 
2.3.2 2 de setembre del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11665: go: sqle/resolve: Have SearchPath() parse the search path in a way which is more compliant with postgres.
Correctly handle quoted identifiers and ToLower any unquoted ones.
- 11659: build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 in /integration-tests/go-sql-server-driver
Bumps google.golang.org/grpc from 1.82.1 to 1.83.1. Release notes
Sourced from google.golang.org/grpc's releases.
> Release 1.83.1
>
> Security
> - xds/rbac: Fix a bug where nested Principal or Permission rules with :scheme or grpc- prefixed header matchers were not rejected, which could cause DENY rules to fail open. (#9258)
> - Special Thanks: @nvxbug
> - xds/rbac: Fix a bug where the host header matcher was not being replaced with :authority in nested Principal or Permission rules. (#9258)
> - Special Thanks: @nvxbug
> - xds/rbac: Fix a bug where a header matcher whose name was not lowercase, such as X-Role, matched no header, which could cause DENY rules to fail open. (#9332)
> - Special Thanks: @alimony
> - xds/rbac: Fix a bug where a :scheme or grpc- prefixed header matcher was accepted when its name was not lowercase. (#9332)
> - Special Thanks: @alimony
> - xds/rbac: Fix a bug where a Host header matcher was not replaced with :authority. (#9332)
> - Special Thanks: @alimony
>
> Performance
> - transport: Restrict memory overhead of buffering small data frames. (#9331)
>
> Release 1.83.0
>
> Security
> - server: Stop reading from connections when flooded by HTTP/2 frames to mitigate resource exhaustion. The default value for this limit is 100 frames, excluding DATA and HEADERS, and may be changed by setting environment variable GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT.
> - xds/rbac: Support Metadata and RequestedServerName permissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.
> - xds/rbac: Fix panic when parsing unsupported fields in NotRule/NotId permissions.
> - xds/rbac: Support the deprecated source_ip principal identifier by treating it as equivalent to direct_remote_ip.
> - xds: Fix panic when parsing route header matchers configured with empty exact_match, prefix_match, or suffix_match strings. (#9223)
>
> New Features
> - xds/googlec2p: Enable DirectPath over Interconnect support for on-premises clients via the force-xds target URI query parameter. (#9133)
> - xds: Enable xDS configuration to control which fields get propagated from ORCA backend metric reports to LRS load reports. (#9145)
> - authz: Add OnPolicyUpdate callback to FileWatcherOptions to notify when an authz policy is loaded or updated. (#9142)
> - Special Thanks: @hnefatl
> - xds: Add support for the GCP Authentication HTTP Filter, which automatically fetches and attaches GCP Service Account Identity JWT tokens to outgoing RPCs.
> - This feature can be enabled by setting environment variable GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER=true. (#9119)
> - xds: Add support for xDS-based HTTP CONNECT proxies.
> - This feature can be enabled by setting environment variable GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT=true. (#9151)
> - xds: Add support for contains_match in route header matchers. (#9223)
>
> Bug Fixes
> - credentials/alts: Fix panic when processing malformed frames by validating that the message frame length exceeds the message type field size. (#9197)
> - grpc: Fix compilation on Plan 9 targets (GOOS=plan9), broken since v1.81.0. (#9255)
> - Special Thanks: @Yusufihsangorgel
>
> Release 1.82.2
>
> Security
> - server: Reject requests missing both :authority and Host headers with HTTP 400 and status Internal. (grpc/grpc-go#9365)
... (truncated)
Commits
- 1550d9e Change version to 1.83.1 (#9336)
- ebba6f3 Cherry-pick #9258 and #9332 into v1.83.x (#9335)
- 8cfeca0 Cherry-pick #9331 to v1.83.x (#9333)
- dec6951 Change version to 1.83.1-dev (#9229)
- 4c226da Change version to 1.83.0 (#9228)
- c198988 Cherrypick 9223 into v1.83.x (#9279)
- 8ce3ebf Cherrypick PR 9255 into v1.83.x (#9
2.3.1 19 d’agost del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11568: build(deps): bump undici to 6.28.0
Summary
- bump the transitive undici dependency from 6.24.0 to 6.28.0 in the SES email action lockfile
- resolve Dependabot alerts #137, #138, #139, #140, #171, #172, and #173
Validation
- npm ci --ignore-scripts
- npm run build
- npm audit --omit=dev (the undici advisories are resolved; the remaining fast-xml-builder finding is covered by #11022)
[no-release-notes]
- 11567: /.github/workflows: pin add-and-commit
- 11556: archives: parallelize/coalesce chunk fetches
There are a fair number of unit tests are added, but I've also had this verified by the user that raised the issue initially. Local testing with some added trace further convinced me this works as expected.
- 11537: backup: stop writing the working set on sync
dolt_backup no longer commits the calling session's open transaction before it copies.
- Syncing an idle database leaves the backup unchanged.
- ROLLBACK after sync now works correctly.
Fix #11488
- 11335: Bump google.golang.org/grpc from 1.79.3 to 1.82.1 in /go
Bumps google.golang.org/grpc from 1.79.3 to 1.82.1. Release notes
Sourced from google.golang.org/grpc's releases.
> Release 1.82.1
>
> Security
> - server: Stop reading from the connection when flooded by HTTP/2 frames. The default value for this limit is 100 frames, excluding DATA and HEADERS, and may be changed by setting environment variable GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT.
> - xds/rbac: Support Metadata and RequestedServerName permissions matcher fields. If present in a DENY rule, previously these would be ignored and fail-open.
> - xds/rbac: Fix panic when parsing unsupported fields in NotRule/NotId permissions.
> - xds/rbac: Support the deprecated source_ip principal identifier by treating it as equivalent to direct_remote_ip.
>
> Release 1.82.0
>
> Behavior Changes
> - server: Remove support for GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING environment varibale. Strict incoming RPC path validation (which has been the default since v1.79.3) can no longer be disabled. (#9112)
> - transport: Add environment variable to change the default max header list size from 16MB to 8KB. This may be enabled by setting GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE=true. This will be enabled by default in a subsequent release. (#9019)
> - balancer: Load Balancing policy registry is now case-sensitive. Set GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES=false (and file an issue) to revert to case-insensitive behavior. (#9017)
>
> New Features
> - experimental/stats: Expose a new API, NewContextWithLabelCallback, to register a callback that is invoked when telemetry labels are added. (#8877)
> - Special Thanks: @seth-epps
> - client: Return a portion of the response body in the error message, when the client receives an unexpected non-gRPC HTTP response, to make debugging easier. (#8929)
> - Special Thanks: @chengxilo
> - server: Add environment variable GRPC_GO_SERVER_GOROUTINE_LABELS that controls setting runtime/pprof.Labels on goroutines spawned by the server. Set GRPC_GO_SERVER_GOROUTINE_LABELS=grpc.method=true to add the grpc.method label on goroutines spawned to handle incoming requests. (#9082)
> - Special Thanks: @dfinkel
>
> Bug Fixes
> - xds/server: Fix a memory leak of HTTP filter instances occurring when route configurations are updated in-place during a Route Discovery Service (RDS) update. (#9138)
> - grpc: In the deprecated gzip Compressor (used via the deprecated WithCompressor dial option), enforce the MaxRecvMsgSize limit on the decompressed message buffer, preventing excessive memory allocation from highly compressed payloads. (#9114)
> - Special Thanks: @evilgensec
> - stats/opentelemetry: Record retry attempts, grpc.previous-rpc-attempts, at the call level and not the attempt level. (#8923)
> - encoding: Ensure Close() is always called on readers returned from Compressor.Decompress if possible. (#9135)
> - channelz: Fix the LastMessageSentTi
2.3.0 13 d’agost del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11534: go: remotesrv: http: Authenticate incoming requests against the correct remote peer address.
For authentication, this previously defaulted to localhost, while still applying authorization on the true remote peer address.
- 11481: go: store/nbs,dprocedures_backup: Add dolt backup sync{,-url} --prune-with-grace-period.
Backups into a destination store land new table files there before they update the manifest of the destination store to refer to the files. If the backup fails partially through, it can leave behind temporary files and unreferenced table files.
--prune-with-grace-period is a new flag which can be used when calling backup sync and backup sync-url. It will cause all unreferenced table files in the destination store to be removed, before the sync starts, if no files in the destination store have an mtime more recent than the provided grace period.
In general, --prune-with-grace-period should be larger than the amount of time it takes to land the backup, but smaller than the period of time between backup attempts.
Fixes #11361
Closed Issues
- 11361: dolt backup sync: an interrupted sync leaves a complete, unreferenced archive in the destination forever — the archive is published before the manifest and there is no prune
2.2.4 12 d’agost del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 11528: branch: fix -d when the upstream does not resolve
Deleting a branch with dolt branch -d could fail with branch not found when deleted from a remote. Dolt now compares against the local snapshot of the upstream, not the remote repository, and falls back to the current branch when its copy is gone.
- Add env.UpstreamRef to resolve a branch's upstream local ref from BranchConfig.
- Add upstreamOrHead to decide when to use the upstream branch or switch to current working branch.
- Upstream is searched by the configured merge ref in the BranchConfig to support different names.
- Merged predicate reads the remote-tracking ref instead of the live remote state.
- RemoteDbProvider parameter dropped because it goes unused.
Fix #11450
- 11520: Look up table names directly
Change table name lookups to try directly looking up the table name, instead of always iterating over all table names in the database.
- 11515: Use sql.ErrDuplicateCheckName
We should use the same error in GMS in Dolt.
Depends on: dolthub/go-mysql-server#3691
- 11486: Bug fixes for binlog replication with virtual columns
Adds support for correctly handling virtual columns and functional indexes in binlog replication, both when Dolt is acting as the replication primary and when Dolt is acting as a replica.
Fixes: #11475
- 11443: Fix dump of tables with a generated column
Fixes a panic in dolt dump on tables with a generated column which affected sql, csv, and parquet output. The generated INSERT statements also were updated to omit generated columns, addressing STORED generated columns non-restorable dumps.
- mvdata/engine_table_reader.go: NewSqlEngineReader took its rows from a SELECT statement but its schema from a separate SHOW CREATE TABLE plan that was built but never ran. When a table has a generated column, the planbuilder replaces it with plan.VirtualColumnTable that does not implement sql.PrimaryKeyTable, the interface that plan uses to fill its PrimaryKeySchema. The schema now comes from the same query as the rows to avoid a zero value.
- NewSqlEngineTableReaderWithEngine became same as the above and now delegates.
- sqlfmt/row_fmt.go: InsertStatementPrefix and SqlRowAsTupleString both skip generated columns, keeping the column list and the value tuple the same length.
- SqlRowAsTupleString returns an error on a row and schema width mismatch.
Fix #11439
- 11430: go: store/nbs: reject a file manifest update that references a missing table file
A bare local store takes no cross-process lock while a table file is landing, so between the moment a writer opens or renames a table file and the moment it commits a manifest naming it, another process can unlink it. The writer does not notice, since its own file descriptor keeps working, and it publishes a manifest that is broken for everyone else.
Add a sanity check where we Stat the newly added files under the manifest LOCK. This allows other Dolt processes which want to safely unlink unreferenced files from the directory to do so under the same LOCK. While a write may transiently fail if an about-to-be-referenced file is deleted out from under it, it won't cause database corruption by writing a manifest which references a non-existant table file.
This PR adds the add-files sanity check. It does not add the machinery to safely remove any files yet.
Journaled stores are unaffected: ChunkJournal goes through journalManifest, not fileManifest.
- 11406: bug fix for nonlocal tables to work in Doltgres
- 11400: go: remotesrv: Move away from deprecated http2/h2c package. Use SetUnencryptedHTTP2 instead.
Also adds "h2" as a supported ALPN next protocol to the remotesrv server listener when configuring with TLS.
Fixes #11386
- 11385: /go/store/{datas,nbs}: cleanup byte sink files on error
Currently there are some paths where temporary byte sink files may persist on disk despite an error. This PR aims to ensure these are always deleted in such cases.
- 11377: Enable signed.bats with isolated GNUPGHOME
- 
2.2.3 30 de juliol del 2026 — 64 bits MSI
2.2.2 22 de juliol del 2026 — 64 bits MSI
2.2.1 17 de juliol del 2026 — 64 bits MSI
2.2.0 15 de juliol del 2026 — 64 bits MSI
2.1.11 15 de juliol del 2026 — 64 bits MSI
2.1.10 26 de juny del 2026 — 64 bits MSI
2.1.9 22 de juny del 2026 — 64 bits MSI
2.1.8 17 de juny del 2026 — 64 bits MSI
2.1.7 12 de juny del 2026 — 64 bits MSI
2.1.6 9 de juny del 2026 — 64 bits MSI
2.1.5 9 de juny del 2026 — 64 bits MSI
2.1.4 5 de juny del 2026 — 64 bits MSI
2.1.3 5 de juny del 2026 — 64 bits MSI
2.1.2 2 de juny del 2026 — 64 bits MSI
2.1.1 2 de juny del 2026 — 64 bits MSI
2.1.0 31 de maig del 2026 — 64 bits MSI
2.0.8 29 de maig del 2026 — 64 bits MSI
2.0.7 26 de maig del 2026 — 64 bits MSI
2.0.6 23 de maig del 2026 — 64 bits MSI
2.0.5 20 de maig del 2026 — 64 bits MSI
2.0.4 19 de maig del 2026 — 64 bits MSI
2.0.3 14 de maig del 2026 — 64 bits MSI
2.0.2 13 de maig del 2026 — 64 bits MSI
2.0.1 8 de maig del 2026 — 64 bits MSI
2.0.0 7 de maig del 2026 — 64 bits MSI
1.88.1 7 de maig del 2026 — 64 bits MSI
1.88.0 6 de maig del 2026 — 64 bits MSI
1.87.0 5 de maig del 2026 — 64 bits MSI
1.86.6 27 d’abril del 2026 — 64 bits MSI
1.86.5 24 d’abril del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10937: go: remotestorage: Stamp our remotesapi ClientCapabilities on outgoing requests.
For now, we advertise that we handle HTTP/2 table file URL endpoints well.
- 10936: proto: Add client_capabilities URL-minting requests on remotesapi.
Some Dolt clients deal with certain URLs better than others. In particular, older Dolt clients can see bad fetch performance in some network contexts when they are hitting HTTP/2 endpoints.
Add a field, client_capabilities, on GetDownloadLocsRequest, StreamChunkLocationsRequest, RefreshTableFileUrl and ListTableFiles which allows a client to communicate its capabilities. For now, one capability exists: CLIENT_CAPABILITY_HTTP2_DOWNLOAD. Implementations of remotesapi can use the presence of the advertised capability to know it is safe to mint HTTP/2 capable URLs in a context where they previously would have minted only HTTP/1.1 URLs.
- 10935: key type conversion during foreign key checks
This PR adds key type conversion for native encodings (encodings that don't have a TupleTypeHandler) for foreign key enforcement during merge. Postgres, but not MySQL, allows different but compatible types for the columns in foreign key constraints, e.g TEXT and VARCHAR. This means that Doltgres, but not Dolt, needs to sometimes convert the bytes of a tuple value from one encoding to another before an index lookup to determine if a constraint violation exists. Previously all such logic happened with TupleTypeHandler (DoltgresType was the main implementor). But with dolthub/doltgresql#2559, Doltgres is now using Dolt's native encodings where possible, e.g. StringEnc, StringAdaptiveEnc. This means this same logic must now work for these native encodings.
Dolt continues to prevent foreign key constraints from being created between different types, following the MySQL behavior, but with this change we could choose to relax this limitation in the future.
- 10931: more adaptive encoding tests
- 10928: new compatibility testing
These tests verify that identical columns added by two different client versions can be pulled from remotes.
Also fixes an overflow bug in adaptive encoding (see Nick's commit) discovered during testing.
- 10927: [do not merge] New failing test for adaptive encoding
- 10925: go.mod: Bump to 1.26.2.
- 10920: Suppress S3 GetObject checksum WARN
Fix #10895
- 10918: go,proto: remotesapi: Add a more efficient RPC, StreamChunkLocations, to use for fetch and pull.
The current streaming RPC, StreamDownloadLocations, was a straight translation of the unary RPC GetDownloadLocations. We added streaming because it found it interacted much better with TCP and HTTP/2 window scaling. At the time, the RPCs were no reworked to take advantage of the stateful nature of the stream. Since then, the pipelined ChunkFetcher machinery has been added, which makes opportunities for reuse on the individual streaming RPC even better. We also added the RefreshTableFileUrl endpoint, which decouples a client's ability to continue using previously communicated table files from its need to see them in a GetDownloadLocsResponse in particular.
StreamChunkLocations is transiting the exact same semantic payloads as StreamDownloadLocations. It's just not re-transmitting a bunch of stuff it does not need to. In particular:
1. We transit table file URLs separately from the chunk locations. A table_file_id is assigned to a table file the first time the server tells the client about it. Then that same table_file_id is used to refer to that table file for all communicated chunk locations in all response messages on the same stream.
2. We do not re-transit chunk hashes. The responses refer to the chunk hashes which were provided in the corresponding request by index. The client already knows them.
3. We do not need to transit RefreshTableFileUrlRequest messages for the table files. The client can build these with its own knowledge.
Those are three major improvements for bandwidth utilization. There are also some smaller 
1.86.4 22 d’abril del 2026 — 64 bits MSI
1.86.3 17 d’abril del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10898: bug fix: dolt pull origin is pulling all branches
dolt_pull('origin', 'main'); - was pulling all branches. Now it's not.
Fixes: #10728
- 10891: Skip DOLT_COMMIT table walk when nothing is staged
- DOLT_COMMIT with nothing staged now exits in constant time regardless of schema size.
- Added TestNoOpCommitAllocsAreConstant to enforce the O(1) allocation bound as a regression.
Fix #10851
- 10836: fsck better
dolt fsck is now more resilient to corruption errors which could cause the iterateAllChunks methods to halt.
This change add a tolerant iterator to our three primary storage interfaces. These interfaces don't return errors, but instead call an error callback and continue to the best of their ability to iterate chunks after errors are found.
Closed Issues
- 10728: dolt pull from dolthub spends a long time doing nothing
- 10851: CALL DOLT_COMMIT() no-op storms cause sustained CPU on busy servers
- 10882: REPLACE INTO panics on FULLTEXT-indexed table when old and new content share a word at the same position
1.86.2 16 d’abril del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10887: fixed failing bats test
- 10876: go/store/nbs: Fix a rare race condition whould could cause GC and some concurrent readers or writers to deadlock.
If a GC was started immediately after another GC finished, a session which was waiting on the first GC completion could get stuck waiting for the second GC to complete instead. But the second GC itself was going to block on that session finishing whatever work it was doing.
Added tracking for the gcCycleCounter which reflects the actual GC operation which any individual call into the NomsBlockStore actually needs to block on.
- 10875: Add swappable identifier validation function
Adds a function variable that Doltgres can override to change identifier validation logic.
Related to dolthub/doltgresql#2580
- 10873: Fix panic when branch tracking has no merge ref
Fixes a nil pointer panic in DOLT_PULL when a branch has a remote recorded in its tracking configuration but no merge ref set.
Fix #10839
- 10820: go: derive internal cache sizes from GOMEMLIMIT
Summary
- Solves #10821
- Adds a memlimit package that reads standard Go GOMEMLIMIT and proportionally sizes Dolt's three largest caches (node cache, memtable, decoded chunks)
- When GOMEMLIMIT is unset, all defaults preserved exactly — zero behavior change
- Replaces the per-cache env var approach from #10815/#10816 with a single standard knob
Usage
GOMEMLIMIT=512MiB dolt sql-server
Design
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────┬────────────────────
Cache │Default│At GOMEMLIMIT=512MiB
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────────────────
Prolly node cache │256 MiB│~120 MiB
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────────────────
Memtable write buffer │256 MiB│~120 MiB
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────────────────
Decoded chunks cache │32 MiB │~15 MiB
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────┼────────────────────
Budget partitioning: 50% usable (50% GC reserve), then 47/47/6 across caches — matching the ratio of the original hardcoded defaults (256:256:32 MiB). Minimums prevent pathologically small caches. Maximum caps ensure caches never exceed current defaults, even with high GOMEMLIMIT — we can loosen these later if needed.│ │
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────┴────────────────────
Chang
1.86.1 10 d’abril del 2026 — 64 bits MSI
1.86.0 6 d’abril del 2026 — 64 bits MSI
1.85.0 1 d’abril del 2026 — 64 bits MSI
1.84.1 30 de març del 2026 — 64 bits MSI
1.84.0 20 de març del 2026 — 64 bits MSI
1.83.8 18 de març del 2026 — 64 bits MSI
1.83.7 18 de març del 2026 — 64 bits MSI
1.83.6 14 de març del 2026 — 64 bits MSI
1.83.5 11 de març del 2026 — 64 bits MSI
1.83.4 6 de març del 2026 — 64 bits MSI
1.83.3 6 de març del 2026 — 64 bits MSI
1.83.2 5 de març del 2026 — 64 bits MSI
1.83.1 3 de març del 2026 — 64 bits MSI
1.83.0 27 de febrer del 2026 — 64 bits MSI
1.82.6 26 de febrer del 2026 — 64 bits MSI
1.82.5 26 de febrer del 2026 — 64 bits MSI
1.82.4 21 de febrer del 2026 — 64 bits MSI
1.82.3 19 de febrer del 2026 — 64 bits MSI
1.82.2 18 de febrer del 2026 — 64 bits MSI
1.82.1 17 de febrer del 2026 — 64 bits MSI
1.82.0 14 de febrer del 2026 — 64 bits MSI
1.81.10 12 de febrer del 2026 — 64 bits MSI
1.81.9 12 de febrer del 2026 — 64 bits MSI
1.81.8 12 de febrer del 2026 — 64 bits MSI
1.81.7 10 de febrer del 2026 — 64 bits MSI
1.81.6 5 de febrer del 2026 — 64 bits MSI
1.81.5 3 de febrer del 2026 — 64 bits MSI
1.81.4 31 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10392: avoid math.Pow in weibullCheck
- 10389: go/store/nbs: journal_record.go: Do have processJournalRecords log errors when it sees an early EOF.
Logging the error here was overly conservative.
- 10387: /.github/workflows/bump-dependency.yaml: fix autoclosing
go-mysql-server
- 3407: Calculate year for timestampdiff based on date and clock time values
fixes #10390
Previous calculation incorrectly assumed every year has 365 days (doesn't account for leap years) and month has 30 days (doesn't account for over half the months). The offset from this wasn't noticeable with smaller time differences but became apparent with larger time differences. This still needs to be fixed for month and quarter (#10393)
- 3406: Set table names to lower when creating table map
fixes #10385
Closed Issues
- 10390: TIMESTAMPDIFF produces incorrect results for year units
1.81.3 30 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10383: Fix SQL engine panic when database is locked
• Prevent NewSqlEngine from panicking when a repo fails to open due to lock contention.
• Load-check the underlying DoltDB in engine DB collection and return the recorded load error (e.g.
nbs.ErrDatabaseLocked) instead of nil-dereferencing.
• Enables embedded/driver callers to detect “database locked” and safely retry engine initialization.
- 10376: /go/libraries/doltcore/sqle/dsess/autoincrement_tracker.go: remove print statement
- 10375: Fix embedded DB lock contention by closing nocache DoltDBs and plumbing DBLoadParams through CREATE DATABASE / clone / stats
Summary
This change fixes an embedded / driver reopen failure where a two-phase flow (CREATE DATABASE then later Ping) could still
hit the database is locked by another dolt process even with disable_singleton_cache + fail-fast lock behavior enabled.
Key updates:
• Close underlying DoltDBs in nocache mode: sqle.DoltDatabaseProvider.Close() now closes all underlying *doltdb.DoltDB
instances when DisableSingletonCacheParam is in effect, ensuring .dolt/noms/LOCK is released on engine shutdown.
• Plumb DBLoadParams into provider-managed DB creation paths:
• CREATE DATABASE / UNDROP DATABASE now use env.LoadWithoutDB so DBLoadParams can be applied before any DB is opened.
• dolt_clone applies provider DBLoadParams to the clone env before registration.
• registerNewDatabase defensively applies provider DBLoadParams to the env.
• Propagate DBLoadParams into stats backing store: statspro now uses LoadWithoutDB for new stats storage and copies
DBLoadParams from the host env so embedded-mode settings apply consistently.
• Regression coverage: adds a test that creates a DB via the SQL engine, closes the engine, and asserts the LOCK is
released.
Why
Embedded callers rely on deterministic reopen semantics under contention. Previously, the SQL provider close path didn’t
close the underlying *doltdb.DoltDB for newly created DBs in nocache mode, leaving the journal manifest LOCK held and
causing retries / reopens to fail.
- 10374: cache strictLookupIter
- 10371: go.mod,.github: Bump Go version to 1.25.6.
Fixes potential impact in some configurations from CVE-2025-61729.
- 10366: Bug fix: don't set branch control admin privs when rebasing
Fixes #10352
- 10363: Add embedded-mode options to bypass DB cache and fail fast on journal lock contention
This PR adds opt-in controls for embedded/driver use-cases that need deterministic reopen semantics under contention:
• Disable local singleton DB caching for file-backed databases via a new dbfactory param, so each open constructs a fresh store.
• Fail fast on journal manifest lock timeout via a new dbfactory param, returning a sentinel error instead of falling back to read-only.
• Plumb DB load parameters through the SQL engine / env so an embedded driver can thread these options into Dolt database creation.
Key changes
• dbfactory:
• Adds DisableSingletonCacheParam (disable_singleton_cache)
• Adds FailOnJournalLockTimeoutParam (fail_on_journal_lock_timeout)
• Bypasses the singleton cache in FileFactory.CreateDB when disable_singleton_cache is set.
• nbs:
• Adds ErrDatabaseLocked
• Adds JournalingStoreOptions + NewLocalJournalingStoreWithOptions
• Updates newJournalManifest(..., failOnTimeout) to return ErrDatabaseLocked on lock timeout when enabled.
• SQL engine / env plumbing:
• Adds DBLoadParams to engine.SqlEngineConfig and threads them into env.DoltEnv prior to DB loading.
• Adds DBLoadParams to env.DoltEnv and merges them into both DB load paths (LoadDoltDB and LoadDoltDBWithParams).
• Updates env.MultiEnvForDirectory to respect a caller-provided *DoltEnv to avoid preloading before params are set.
- 10314: Minimize binlog deletions in branch control
I didn't find a way to trigger multiple deletions through SQL on non-existent rows, but just in case we're somehow able to get to that point through some other bug, we put it in the binlog everytime. This way, we only add t
1.81.2 23 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10357: Prevent temporary table name collisions
fixes #10353
MySQL allows creating temporary tables with the same names as existing non-temporary tables and creating non-temporary tables with the same names as existing temporary tables. However, temporary tables cannot have the same name as other temporary tables.
Our previous implementation seemed to have assumed temporary tables with the same names were allowed. Each session had a map of db names to an array of tables, and new temporary tables were added to the end of the array, without checking if there was a table with an existing name. When fetching or dropping a temporary table, we iterated through the array and returned/dropped the first table with a matching name; this meant even though we allowed temporary tables with the same name, we only ever operated on whichever one was created first.
Since temporary tables with the same names are actually not allowed, the array of temporary tables was replaced with a name-to-table map to make fetching a temporary table with GetTemporaryTable faster. This also makes DropTemporaryTable faster. This does make GetAllTemporaryTables slower since we now have to iterate over the mappings to create an array for temporary tables, but GetAllTemporaryTables doesn't seem to be called as frequently as GetTemporaryTable.
- 10349: Remove requirement for -i in dolt_rebase
Hold over from the original impl of rebase now addressed!
- 10274: dolt stash apply
Adds #10131
Adds dolt stash apply. Functions similar to drop and pop in usage: accepts no argument for most recent stash, or int or stash@{int} for non-top stashes. i.e. dolt stash apply 2 or dolt stash apply stash@{2}.
- 10227: #5862: Add ignore system table
Summary
Adds a new dolt_status_ignored system table that extends dolt_status functionality by including an ignored column to identify which unstaged tables match patterns defined in dolt_ignore. This provides a SQL interface equivalent to dolt status --ignored.
Changes
New System Table
dolt_status_ignored - Same schema as dolt_status plus an ignored column:
- table_name (text): Name of the table
- staged (boolean): Whether the table is staged
- status (text): Status of the table (e.g., "new table", "modified", "conflict")
- ignored (boolean): Whether the table matches a dolt_ignore pattern
Implementation Details
The implementation started with logic similar to status_table.go and was then refactored to share common code between both tables while adding the ignore-checking functionality.
go/libraries/doltcore/doltdb/system_table.go
- Added StatusIgnoredTableName constant
- Registered table in GeneratedSystemTableNames() and DoltGeneratedTableNames
go/libraries/doltcore/sqle/database.go
- Added switch case for StatusIgnoredTableName in getTableInsensitiveWithRoot()
- Extracted getStatusTableRootsProvider() helper to eliminate duplicate logic between dolt_status and dolt_status_ignored switch cases
go/libraries/doltcore/sqle/dtables/status_table.go
- Added getStatusRowsData() function using existing statusTableRow struct to share status collection logic between both tables
- Refactored newStatusItr() to use shared function
go/libraries/doltcore/sqle/dtables/status_ignored_table.go (new file)
- Implements StatusIgnoredTable and StatusIgnoredItr
- Uses shared getStatusRowsData() from status_table.go
- Uses adapter pattern via DoltTableAdapterRegistry similar to StatusTable
- Adds ignore-checking logic via helper functions:
- getIgnorePatterns(): Fetches patterns from dolt_ignore
- buildUnstagedTableNameSet(): Creates set for quick lookup
- checkIfIgnored(): Checks if table matches ignore pattern (returns error on failure)
Behavior
- Unstaged tables: ignored=1 if table name matches a pattern in dolt_ignore, ignored=0 otherwise
- Staged tables: Always ignored=0 (staging overrides ignore patterns, matching git behavior)
- Constraint violations, merge conflicts, schema conflicts: Always ignored=0
Tests
BATS integration tests
integr
1.81.1 22 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10347: fixed output bug for foreign key constraints
go-mysql-server
- 3389: remove convertLeftAndRight
This PR removes c.convertLeftAndRight, which avoids calls to c.Left().Type() and c.Right().Type().
Not entirely sure why receiver methods would impact performance this much, but benchmarks say so.
Benchmarks: #10342 (comment)
- 3384: Look at every join node parent when computing outer scopes.
Previously, when building scopes for subqueries that appear inside joins, we would only track a single parent join node. If the subquery had multiple join parents, we would only be able to resolve references to the innermost subquery. This inhibits the optimizations we can perform.
This PR uses a custom tree walker to track a list of parent join nodes, and includes an example of a query that was not previously possible to optimize.
- 3370: Wrap errgroup.Group.Go() calls for consistent panic recovery
Each spawned goroutine needs a panic recovery handler to prevent an unexpected panic from crashing the entire Go process. This change introduces a helper function that wraps goroutine creation through errgroup.Group and installs a panic recovery handler and updates existing code to use it.
vitess
- 448: Move SERIAL type out of numeric type definitions so that unsigned value is not overwritten
fixes #10345
MySQL docs
- 446: Added DISTINCT ON expressions
Related PRs:
- dolthub/go-mysql-server#3369
- dolthub/doltgresql#2181
Closed Issues
- 10345: SERIAL type alias creates signed BIGINT instead of unsigned
- 10329: Foreign key constraint doesn't enforce index requirement on receiving table
1.81.0 21 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10341: go/store/nbs: Fix possible data loss from Dolt CLI utilization when executing against a running server that was in the process of writing to its journal file.
Since Dolt v1.78.5, Dolt has truncated the journal file to the latest successfully loaded record when it successfully loads a database. This is the correct behavior when the CLI is operating as the exclusive writer to the database. However, Dolt also has a mode where it can load the database in read-only mode. Due to a bug, Dolt was also truncating the journal file when it was operating in this mode. The end result was the running something like dolt sql -r csv -q ... against a Dolt database that was running a sql-server and was currently accepting writes could incorrectly truncate the journal file. The Dolt sql-server process would go ahead writing into the journal at its previously extended offset and the space between the truncation and the next write offset would be 0 filled by the operating system. Attempting to load the database later or accessing the chunks located at that corrupted portion of the journal file would result in checksum errors or failure to load messages.
This change correctly updates Dolt to only Truncate the journal file when we are loading it in read-write mode.
- 10327: go/cmd/dolt: Make movable temp file configuration lazy.
Previously, early in the process life-cycle after dolt was run, dolt would immediately check if a file created in os.TempDir() was able to be os.Renamed into a subdirectory of the dolt process's data directory, by default $PWD/.dolt. If the rename failed, it would configure Dolt to use .dolt/temptf as the movable temp file directory instead.
This meant that for many dolt invocations, Dolt would do some local filesystem writes, including potentially Mkdir(.dolt) before it it was fully loaded. With the advent of things like dolt accessing the running server through sql-server.info and dolt --host ... sql this behavior was not ideal. It creates races with concurrently run dolt processes that try to use the .dolt directory, and it creates odd behavior when running something like dolt sql in a non-Dolt directory but on a filesystem mount where this rename from os.TempDir() does not work.
This PR changes the check and the configuration of a potential .dolt/temptf directory to be delayed until the first temporary movable file is actually requested by Dolt. At that point we know that we have a need for a renamable temp file and it is OK to go ahead and create .dolt/temptf if we need it.
This PR changes the error handling around some edge cases like permissions errors on the calling process creating temptf within .dolt. In particular, some errors which were previously early and fatal are now delayed until use site and may end up being persistent but non-fatal to the process, depending on the operation.
- 10326: go: Add some error checks for previously dropped errors in Filesys.Iter calls.
- 10322: .github/workflows/ci-check-repo.yaml: Make the action step which updates Godeps/LICENSES look more like update.sh.
- 10319: go/store/nbs: file_manifest.go: Always make manifest writes crash safe. Remove optional async manifest write support.
Online GC could write new tale files to oldgen, and the manifest write was not crash safe. This could result in data loss depending on filesystem settings if there was an inopportune crash.
go-mysql-server
- 3383: When applying indexes from outer scopes, resolve references to table aliases
The previous implementation of the applyIndexesFromOuterScopes optimization uses the getTablesByName function to map table name references onto tables. But this function only locates ResolvedTables, and other optimizations rely on this behavior.
I've split getTablesByName into two different functions: getResolvedTablesByName, which has the original behavior, and getNamedChildren, which takes a parent node and identifies all nameable nodes in its children, including both ResolvedTables and Tabl
1.80.2 15 de gener del 2026 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10313: When DB files can't be read off disk, fail with a clear error rather than a panic
For reasons not fully understood yet, a hosted instance ended up with a .dolt/noms/manifest file which was not readable by the DB process. This caused a panic, which should never happen. This change provides a clear error message stating what file you're lacking permissions to.
- 10306: Fix skipped bats test for merge with longer key on both branches
The test was skipped since March 2023 because merge would hang. The underlying issue was fixed in April 2024 when ErrMergeWithDifferentPksFromAncestor was added to properly detect and reject merges where both branches changed the primary key from the common ancestor.
The test also had a setup bug - the SQL call dolt_checkout('b2') only applied to the SQL session, not the shell session. Added explicit checkout after the SQL block and updated expected error message.
- 10305: gauges measuring percentage of CPU, virtual memory, and disk used
- 10293: Add support for -vv for dolt branch command
This improves similarity with git branch for both -v and -vv.
Previously -v did not include the [ahead/behind] information that git had. Now it does.
-vv is a new flag mechanism to further include the remote name in the square brackets.
Closed Issues
- 10311: enums should match based on int value for foreign keys and string value for joins
- 10235: DOLT 1.79 got Poor Performance over JOIN Operations
1.80.1 10 de gener del 2026 — 64 bits MSI
1.80.0 9 de gener del 2026 — 64 bits MSI
1.79.4 7 de gener del 2026 — 64 bits MSI
1.79.3 7 de gener del 2026 — 64 bits MSI
1.79.2 31 de desembre del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 10248: Return nil lookupMapping if type conversion is not in range for lookup key
fixes #10233
Not checking if a value is in the converted range was causing us to use incorrect keys. For example, if the literal -87840 was used as a key for a boolean/tinyint column, it would get converted to -128 and match rows with -128, even though that's not the same value.
This change checks for if a conversion is InRange, and if it's not, it returns a nil lookupMapping. The nil lookupMapping will then return false when *lookupMapping.valid() is called.
Test added in dolthub/go-mysql-server#3357
- 10247: use pointer for TupleComparator
This PR changes the DefaultTupelComparator to be a pointer receiver, and changes FixedAccess to only use half the number of indices.
- 10237: avoid map in GetFieldValue
Some of the runtime is taken up by mapaccess, which isn't necessary; this PR gets rid of it.
- 10228: Add support for merge --ff--only
Fixes: #10151
- 10220: bug fix: stop including all root objects when getting tables on the search path
In Doltgres, SHOW TABLES was returning table names as well as other root object names, like sequence names. This PR changes the TablesOnSearchPath function to stop returning the other root object names.
Related to:
dolthub/doltgresql#1743
go-mysql-server
- 3358: condense time.Time library calls
Instead of calling Year(), Month(), Day(), Hours(), Minutes(), and Seconds() individually, just use time.Date() and time.Clock().
Benchmarks: #10249 (comment)
- 3356: Return boolean literal when simplifying AND and OR filters
fixes #10243
Previously, if one of the children of an AND or OR expression was a literal that evaluated to false or true (respectively), we would return the child. However, this caused a typing issue since AND and OR are booleans while its children can be of any type. Take the expression 19 or 's' for example; the left child 19 evaluates to true, making the expression true every time, but returning the left child 19 as a simplification would be incorrect since we would want the expression to simplify to a boolean true, not the number 19.
Now, instead of returning the child that determines the result of an AND or OR expression, we return the boolean value that the expression results to.
- 3355: Do not use nullable columns as null filter when converting antijoins to left joins
fixes #10234
When converting an antijoin to a left join, it is normally okay to use a nullable GetField in a null filter. However, we cannot do so if GetField is both nullable and part identifying an expression's parent during InspectExpr so we have to be extra safe by not allowing nullable GetFields in null filters at all.
- 3352: Use concurrency in groupby compute
Splits up the compute in groupByGroupingIter into two threads:
1. That reads rows off disk into a sql.Row buffer
2. That processes each row and updates the aggregation buffer
Benchmarks: #10232 (comment)
- 3350: Updated IsNullable for all functions to match Eval output
fixes #10161
- 3349: Add User Variable discards and fix per-row field to column indices for LOAD DATA
LOAD DATA has been ingesting user variable related fields into the rows used to evaluate set expressions. This fix resolves this issue, and as a result adds the feature to use user variables to discard fields from a parsed file line.
Default initialization of expressions has also been updated to follow MySQL's "zero value" behavior for non-nullable columns.
- 3348: avoid heap allocs in transform.Inspect and transform.InspectExpr
Changes:
- transform.Inspect switches on UnaryNode and BinaryNode to avoid heap allocations from node.Children()
- transform.InspectExpr switches on UnaryExpression and BinaryExpression to avoid heap allocations from expression.Children()
- remove UnaryExpression implementation from unaryAggBase and some functions that can return multiple children.
Benchmarks: #10222 (comment)
- 3347: Customizable filter walk for costed index scan
This is to support Doltgres,
1.79.1 13 de desembre del 2025 — 64 bits MSI
1.79.0 11 de desembre del 2025 — 64 bits MSI
1.78.8 9 de desembre del 2025 — 64 bits MSI
1.78.7 5 de desembre del 2025 — 64 bits MSI
1.78.6 4 de desembre del 2025 — 64 bits MSI
1.78.5 27 de novembre del 2025 — 64 bits MSI
1.78.4 25 de novembre del 2025 — 64 bits MSI
1.78.3 24 de novembre del 2025 — 64 bits MSI
1.78.2 20 de novembre del 2025 — 64 bits MSI
1.78.1 19 de novembre del 2025 — 64 bits MSI
1.78.0 18 de novembre del 2025 — 64 bits MSI
1.77.0 17 de novembre del 2025 — 64 bits MSI
1.76.7 13 de novembre del 2025 — 64 bits MSI
1.76.6 11 de novembre del 2025 — 64 bits MSI
1.76.5 6 de novembre del 2025 — 64 bits MSI
1.76.4 4 de novembre del 2025 — 64 bits MSI
1.76.3 27 d’octubre del 2025 — 64 bits MSI
1.59.20 14 d’octubre del 2025 — 64 bits MSI
1.59.19 10 d’octubre del 2025 — 64 bits MSI
1.59.18 7 d’octubre del 2025 — 64 bits MSI
1.59.17 3 d’octubre del 2025 — 64 bits MSI
1.59.16 3 d’octubre del 2025 — 64 bits MSI
1.59.15 2 d’octubre del 2025 — 64 bits MSI
1.59.14 1 d’octubre del 2025 — 64 bits MSI
1.59.13 26 de setembre del 2025 — 64 bits MSI
1.59.12 19 de setembre del 2025 — 64 bits MSI
1.59.11 17 de setembre del 2025 — 64 bits MSI
1.59.10 16 de setembre del 2025 — 64 bits MSI
1.59.9 13 de setembre del 2025 — 64 bits MSI
1.59.8 12 de setembre del 2025 — 64 bits MSI
1.59.7 11 de setembre del 2025 — 64 bits MSI
1.59.6 10 de setembre del 2025 — 64 bits MSI
1.59.5 9 de setembre del 2025 — 64 bits MSI
1.59.4 6 de setembre del 2025 — 64 bits MSI
1.59.3 5 de setembre del 2025 — 64 bits MSI
1.59.2 3 de setembre del 2025 — 64 bits MSI
1.59.1 3 de setembre del 2025 — 64 bits MSI
1.59.0 3 de setembre del 2025 — 64 bits MSI
1.58.10 2 de març del 2026 — 64 bits MSI
1.58.9 2 de març del 2026 — 64 bits MSI
1.58.8 3 de setembre del 2025 — 64 bits MSI
1.58.7 2 de setembre del 2025 — 64 bits MSI
1.58.6 26 d’agost del 2025 — 64 bits MSI
1.58.5 20 d’agost del 2025 — 64 bits MSI
1.58.4 19 d’agost del 2025 — 64 bits MSI
1.58.3 12 d’agost del 2025 — 64 bits MSI
1.58.2 6 d’agost del 2025 — 64 bits MSI
1.58.1 6 d’agost del 2025 — 64 bits MSI
1.58.0 6 d’agost del 2025 — 64 bits MSI
1.57.6 4 d’agost del 2025 — 64 bits MSI
1.57.5 2 d’agost del 2025 — 64 bits MSI
1.57.4 31 de juliol del 2025 — 64 bits MSI
1.57.3 28 de juliol del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9587: Bug fix: Update secondary index correctly during a merge with a schema change
During a merge, Dolt applies diffs to existing indexes to sync their data with the changes being merged in. If the table schema has changed between the merge base and the left/right branches of the merge, Dolt was using the incorrect value tuple to remove the row from the index. This resulted in a customer issue where the secondary index still contained rows and the foreign key validation logic was incorrectly detecting FK violations, even though the child table was empty.
As a follow-up to this, we need to investigate other similar cases in the secondary index merger and see if other diff types have a similar issue.
- 9585: Run gofmt and goimports on generated protobuf files to ensure clean diffs
This change adds gofmt and goimports steps to the protobuf generation process to ensure that generated .pb.go files are consistently formatted.
- 9577: Remove broken symlink
- 9574: Fix dolt_preview_merge_conflicts for doltgres
- 9551: #9530 - Fix auto-increment display for SHOW CREATE TABLE
Fixes #9530
Companion PR: dolthub/go-mysql-server#3103
Fixed auto-increment display discrepancy in SHOW CREATE TABLE by adding type checking to prevent incrementing beyond integer type maximums.
go-mysql-server
- 3123: Support decimal unique keys
fixes #3071
- 3122: Allow SYSTEM as valid time zone
- 3119: Add test for setting time zone from table value
- 3118: Validate time zone before setting it
fixes #9559
- 3116: fix panic in stats histogram union and intersect
I'm not 100% how to repro this, but there is definitely something up with the Union and Intersect logic in stats histograms.
Based on the stack trace, there's a panic when attempting to Union histogram buckets.
It seems like the logic assumes that the histogram keys are always shorter than the number of buckets.
This PR fixes the Union and Intersect logic to compare the keys without the assumption, and adds some unit tests.
fixes: #9143
- 3114: #9511 - Fix SET type casting to CHAR and BINARY
Fixes #9511
- Added convertSetToStringForStringContext() helper function following existing patterns
- Modified convertValue() to handle SET types in both CHAR and BINARY conversion cases
- 3109: #9544 - Fix time type foreign key constraints
Fixes #9544
Allows foreign key constraints to be created between time-related types (DATETIME, TIMESTAMP, TIME) with different precisions or cross-type references, matching MySQL behavior.
Closed Issues
- 9590: More granular control over restrictions
- 9544: time types and foreign keys
- 9530: auto_increment with max integers does not error properly
- 9469: Support SET in string context
- 9511: SET type does not cast correctly to char or binary
- 9143: index out of range panic on CTE
- 9559: set time_zone should validate timezone
- 3071: In-memory tables don't support DECIMAL(...) UNIQUE KEY
1.57.2 24 de juliol del 2025 — 64 bits MSI
1.57.1 22 de juliol del 2025 — 64 bits MSI
1.57.0 16 de juliol del 2025 — 64 bits MSI
1.56.0 15 de juliol del 2025 — 64 bits MSI
1.55.6 8 de juliol del 2025 — 64 bits MSI
1.55.5 8 de juliol del 2025 — 64 bits MSI
1.55.4 2 de juliol del 2025 — 64 bits MSI
1.55.3 25 de juny del 2025 — 64 bits MSI
1.55.2 17 de juny del 2025 — 64 bits MSI
1.55.1 13 de juny del 2025 — 64 bits MSI
1.55.0 11 de juny del 2025 — 64 bits MSI
1.54.2 4 de juny del 2025 — 64 bits MSI
1.54.1 30 de maig del 2025 — 64 bits MSI
1.54.0 28 de maig del 2025 — 64 bits MSI
1.53.6 21 de maig del 2025 — 64 bits MSI
1.53.5 16 de maig del 2025 — 64 bits MSI
1.53.4 15 de maig del 2025 — 64 bits MSI
1.53.3 15 de maig del 2025 — 64 bits MSI
1.53.2 13 de maig del 2025 — 64 bits MSI
1.53.1 8 de maig del 2025 — 64 bits MSI
1.53.0 5 de maig del 2025 — 64 bits MSI
1.52.3 29 d’abril del 2025 — 64 bits MSI
1.52.2 24 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9144: Bug fix: allow dropping tables with FK constraints
Fixes: #9014
- 9141: Add a smoke test for server-side cursor support
Adds smoke test coverage for server-side cursor support. Motivated by the customer issue linked below with corrupted results from SHOW COLLATION; while using DBVisualizer when a server-side cursor is in use.
A run without the fix from GMS shows how this new test fails when the bug from the customer is triggered.
Depends on: dolthub/go-mysql-server#2952
Related to: #9125
- 9135: go/store/nbs: conjoiner.go,store.go: Make conjoin asynchronous.
- 9106: Stats NBS gc safety
This PR modifies doGC to stop statistics before running, and restart statistics afterwards. An earlier version of this PR threaded cancellations through the session management interface, but that created headaches for invalidating looping stats sessions.
For more background, stats jobs were previously partitioned into sections that allow GC to finalize before stats finishes. The nature of this partitioning creates a dependency chain between reading the histogram chunk level of an index, and jobs that read those individual chunk subtrees. The problem is that those jobs create a read-dependency that is broken when GC deletes chunks. The nature of the partitioning means the only way to avoid the interruption is to (1) stall GC for a longer period of time, (2) check chunk integrity before every subcommands, or (3) invalidate the stats session.
Additionally, this fixes the long flush issue where queries would stall on writing up to 65k stats rows to disk. We limit pending stats changes to 64, which upper bounds the cost of any single flush in a way that meshes with current rate-limiting methodology.
- 9046: [dfunctions] dolt_join_cost prints full join memo
gms side: dolthub/go-mysql-server#2917
tmp2/test-branch*> select dolt_join_cost('select * from uv, xy where u = x') as cost;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| cost |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| memo: |
| ├── G1: (tablescan: uv 0.0)* |
| ├── G2: (tablescan: xy 0.0)* |
| └── G3: (hashjoin 1 2 8.0) (hashjoin 2 1 8.0) (mergejoin 1 2 4.1) (mergejoin 2 1 4.1) (lookupjoin 1 2 6.6) (lookupjoin 2 1 6.6) (innerjoin 2 1 5.0)* (innerjoin 1 2 5.0)* |
| |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
go-mysql-server
- 2952: Only release buffer when a server-side cursor is not in use
We added an optimization to release a row's memory after sending it over the channel, but for a server-side cursor, there is another layer of spooling involved, so it's not safe to release the row memory yet. This changes that optimization to only release the row's memory when we are not using a server-side cursor.
Testing this server-side cursor behavior requires a little extra work. go-sql-driver/mysql does not support server-side cursors, so we can't test this directly in our Go code. I've opened #9141 with changes to our Java MySQL Connector/J integration tests to add some simple smoke tests for server-side cursors that triggers the same behavior as the customer reported issue below.
Fixes: #9125
- 2951: update mysql version
fixes: dolthub/go-mysql-server#2950
vitess
- 413: Add support for RETURNING to UPDATE and INSERT nodes
- 412: allow trim, cast, and position as nonkeywords
This PR adds makes it so that TRIM, CAST and POSITION are usable as table and column names without backquotes.
fixes: #9123
Closed Issues
- 9125: Errors serializing data when cursors are in use
- 9014: Dolt merge fails when schema change drops multiple referenced tables
- 9133: coalesce() unescaping json with new lines
- 2
1.52.1 23 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9132: Bump golang.org/x/net in /go/gen/proto/dolt/services/eventsapi
Bumps golang.org/x/net from 0.36.0 to 0.38.0.
- Commits
updated-dependencies:
- dependency-name: golang.org/x/net dependency-version: 0.38.0 dependency-type: indirect ...
- 9121: Minor changes to support SET DEFAULT FK referential action
MySQL parses the ON UPDATE/DELETE SET DEFAULT syntax, but does not actually support executing it. These minor changes allow the SET DEFAULT referential action to be used from Doltgres, but do not enable it for Dolt, to preserve MySQL compatibility.
Depends on: dolthub/go-mysql-server#2944
- 9119: Bump golang.org/x/net from 0.36.0 to 0.38.0 in /go/gen/proto/dolt/services/eventsapi
Bumps golang.org/x/net from 0.36.0 to 0.38.0. Commits
- e1fcd82 html: properly handle trailing solidus in unquoted attribute value in foreign...
- ebed060 internal/http3: fix build of tests with GOEXPERIMENT=nosynctest
- 1f1fa29 publicsuffix: regenerate table
- 1215081 http2: improve error when server sends HTTP/1
- 312450e html: ensure <search> tag closes <p> and update tests
- 09731f9 http2: improve handling of lost PING in Server
- 55989e2 http2/h2c: use ResponseController for hijacking connections
- 2914f46 websocket: re-recommend gorilla/websocket
- 99b3ae0 go.mod: update golang.org/x dependencies
- See full diff in compare view
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/net&package-manager=go_modules&previous-version=0.36.0&new-version=0.38.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/dolthub/dolt/network/alerts).
- 9118: Enable the GC process to write to archive files
Enable the GC operation to output archive format storage files. This is exposed as the --archive-level argument in both the server config and as a dolt_gc() option.
go-mysql-server
- 2951: update mysql version
fixes: dolthub/go-mysql-server#2950
- 2949: Added interpretation awareness
This implements the necessary changes to allow for interpreted functions to properly interact with DML. This was made in response to the issues further detailed here:
- dolthub/doltgresql#1411
- 2948: fix json_extract panic
fixes: #9134
- 2947: fix coalesce with JSON types
This PR removes the c
1.52.0 18 d’abril del 2025 — 64 bits MSI
Notes de la versió
Backwards Incompatible Changes
There has been a type change on the dolt_diff system table with provides more precision and alignment with the dolt_diff_{table} system table. There is a remote possibility that this could impact existing applications, and client code may require updates to remain consistent.
Per Dolt’s versioning policy, this is a minor version bump because these changes may impact existing applications. Please reach out to us on GitHub or Discord if you have questions or need help with any of these changes.
Merged PRs
dolt
- 9129: More precision on the date column in the dolt_diff table
Use higher precision date type in the dolt_diff table - matching dolt_diff_{table} now
Fixes: #9126
go-mysql-server
- 2943: refactor and implement TimestampAdd()
This PR implements the TimestampAdd; it is treated as basically an alias for DateAdd().
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_timestampadd
fix: #9117
- 2940: Bug fix: ensure DropCheck.IfExists gets copied over to new instances
This change doesn't affect Dolt, but is needed by Doltgres to make sure IF EXISTS logic for dropping a constraint is correctly executed.
vitess
- 412: allow trim, cast, and position as nonkeywords
This PR adds makes it so that TRIM, CAST and POSITION are usable as table and column names without backquotes.
fixes: #9123
- 410: fix ntile syntax
This PR implements the correct syntax for NTILE()
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/window-function-descriptions.html#function_ntile
syntax for: #9087
Closed Issues
- 9126: dolt_diff vs dolt_diff_ - commit time precision differs
- 9123: BUG: Dolt treats position as a reserved keyword
- 9117: BUG: Panic in GMS when using TIMESTAMPADD()
- 6901: sql TIME type is not supported in Dolt
1.51.4 15 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
go-mysql-server
- 2940: Bug fix: ensure DropCheck.IfExists gets copied over to new instances
This change doesn't affect Dolt, but is needed by Doltgres to make sure IF EXISTS logic for dropping a constraint is correctly executed.
- 2937: Fixed problems with StrExpr
Schema() was being called during Doltgres's Prepare implementation, and there's no reason it can't be.
- 2936: Add support for ALTER TABLE ... DROP CONSTRAINT IF EXISTS
Depends on: dolthub/vitess#411
- 2935: implement ntile
This PR implements the NTILE() SQL function, which groups rows into evenly sized buckets.
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/window-function-descriptions.html#function_ntile
fixes: #9087
- 2934: Unwrap inputs to find_in_set function.
This was missed in the initial wrapped values PR because we only had tests for find_in_set where the inputs came from VARCHAR columns. This adds a test for inputs from TEXT columns.
Fixes #9101
- 2932: Optimize ConvertToBytes by avoiding unnecessary string <-> bytes conversions and copies.
ConvertToBytes is a commonly called function to get the string representation of a value. However, it has some unnecessary allocations where a child function allocates a byte buffer, only for the result to be copied into the buffer provided by the parent function. In other places we needlessly round-trip between string and []byte.
This PR improves performance by removing some of these unneeded copies. In places where ConvertToBytes calls a function that allocates a buffer (instead of using the buffer that ConvertToBytes can provide), we can optimize by using the returned value without copying it again.
Dolt shows a 7% improvement in the types_table_scan benchmark.
We can potentially do even better by allowing these child functions to take a buffer, removing the need for an extra allocation.
- 2931: Corrected return type for RegexpLike
Required for proper type conversion in doltgres
vitess
- 411: Add AST support for DROP CONSTRAINT IF EXISTS
- 410: fix ntile syntax
This PR implements the correct syntax for NTILE()
mysql docs: https://dev.mysql.com/doc/refman/8.4/en/window-function-descriptions.html#function_ntile
syntax for: #9087
- 409: add var_samp to keywords
Closed Issues
- 9101: Handler caught panic: interface conversion: interface {} is *val.TextStorage, not string
- 9099: Exceptionally long table names when adding unnamed constraints results in a Django error
- 9087: Request for NTILE function
1.51.3 11 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9100: Consistently use pointer receivers for TextStorage methods.
For structs that are exclusively used in interfaces, there's no reason to not use pointer receivers instead of value receivers. Using value receivers can cause the struct to be copied every time the method is invoked.
Pointer receivers are also more correct here: copying the struct means that changes to the ImmutableValue field (such as setting its Buf field in ImmutableValue.GetBytes) won't be saved when the method exits, defeating the caching of values loaded from storage.
- 9098: Add support for SSL connections to a source MySQL server
Allows a replica Dolt sql-server to connect to a MySQL source via SSL when the SOURCE_SSL configuration parameter is supplied.
Depends on: dolthub/go-mysql-server#2930
- 9097: Prevent unnecessary bytes <-> string conversions and unnecessary allocations when converying to bytes.
- 9095: Add the archive --purge flag to clean up table files
The dolt archive command is extra safe, and doesn't cleanup table files is converts. The --purge flag will delete table files after the conversion is done.
- 9085: Adding new copy-tags command
go-mysql-server
- 2932: Optimize ConvertToBytes by avoiding unnecessary string <-> bytes conversions and copies.
ConvertToBytes is a commonly called function to get the string representation of a value. However, it has some unnecessary allocations where a child function allocates a byte buffer, only for the result to be copied into the buffer provided by the parent function. In other places we needlessly round-trip between string and []byte.
This PR improves performance by removing some of these unneeded copies. In places where ConvertToBytes calls a function that allocates a buffer (instead of using the buffer that ConvertToBytes can provide), we can optimize by using the returned value without copying it again.
Dolt shows a 7% improvement in the types_table_scan benchmark.
We can potentially do even better by allowing these child functions to take a buffer, removing the need for an extra allocation.
- 2930: Add support for SSL connections to a source MySQL server
Adds GMS support for the SOURCE_SSL MySQL replication configuration param.
- 2928: implement stddev_pop(), stddev_samp(), var_pop(), var_samp(), and aliases
This PR implements STD() and VARIANCE() and its aliases.
docs: https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html#function_std
syntax: dolthub/vitess#409
fixes: #9088
- 2926: Provide a SchemaFormatter interface to complement the SqlParser interface
Dolt uses functions in the sql package to create and then parse CREATE TABLE statements as part of the merge process. Therefore, we need the ability to create these statements for other dialects, just as we do for MySQL.
This PR also exposes a Noop auth method for the same use case.
vitess
- 409: add var_samp to keywords
- 408: Add support for SOURCE_SSL replication option
- 407: remove incorrect continue statement which skips handling connection
Caught in PR.
Closed Issues
- 9088: Request for STDEV_POP() (and aliases) and VAR_POP() (and alias)
1.51.2 9 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9089: refactor: use the built-in max/min to simplify the code
Contribution: #9044
- 9084: [no release notes] Handle NULL adaptive values
NULL Adaptive values weren't being properly handled in all codepaths. Some operations during tuple building (such as trying to move them out of band) caused a panic. This fixes that and adds tests.
- 9083: Support for non-MySQL query elements during merge
During the merge operation, Dolt creates a CREATE TABLE statement for the table being merged, parses it, and uses that information during the merge. This PR allows this process to work with a non-MySQL dialect.
- 9075: Don't alter branch head outside of transactions when amending a commit
Fixes: #9072
- 9071: Fix typo mistake of commmitted
Thanks to @jbampton
- 9067: go: sqle/dprocedures: Implement operational inspection hook, dolt_thread_dump stored procedure.
- 9066: go/store/nbs: Add info level logging for a store conjoin.
- 9044: refactor: use the built-in max/min to simplify the code
Use the built-in max/min from the standard library in Go 1.21 to simplify the code. https://pkg.go.dev/builtin@go1.21.0#max
- 9013: Add Adaptive Inline encoding
Adaptive Inline encoding refers to values that can be stored either inline in a table, or out-of-band in external storage. Postgres calls them TOAST (The Oversized-Attribute Storage Technique) types.
This PR adds two new encoding types: one for toasted TEXT columns and one for toasted BLOB columns.
The important parts of this PR are:
- The new encoding values StringToastEnc and BytesToastEnc
- The ToastValue type: this type has methods for creating and inspecting TOAST values.
- The changes to prolly.PutField and prolly.GetField to handle writing reading and writing these encodings to tuples
- The changes to TupleBuilder, which choose an inline or outlined representation for each value with a TOAST encoding. It prefers to store these values inline, but selectively outlines columns in a deterministic way if the length of the tuple would otherwise exceed a threshold. (Currently 2KB, not currently configurable.)
It is not currently possible to use these encodings in Dolt proper. For testing purposes, a variable schema.UseToastTypes has been added. Setting this variable to true will cause Dolt to use these toast encodings for TEXT and BLOB columns instead of the normal address encodings.
go-mysql-server
- 2927: Converting a nil value should return nil, not panic.
Most uses of convertValue checked if the input was nil, but Binary.Eval didn't.
NULL should always be converted to NULL, so we can just put the check there.
- 2926: Provide a SchemaFormatter interface to complement the SqlParser interface
Dolt uses functions in the sql package to create and then parse CREATE TABLE statements as part of the merge process. Therefore, we need the ability to create these statements for other dialects, just as we do for MySQL.
This PR also exposes a Noop auth method for the same use case.
- 2924: fix ifnull typing
fixes #9076
- 2923: fix AND optimization
This PR fixes AND optimizations where TRUE & x -> x.
Probably should've seen this coming given our bug fix with OR here,
fixes: #9074
- 2921: fix not equal conversions
fixes: #9052
- 2913: insert trigger bugs
fixes: #9039
Inserts nested inside triggers is a special case that we have minimal testing for. Some of the things that were broken before:
- we did not prepend nodes inside trigger->insert blocks, so new columns were not accessible / the index offsets estimated based on prepending trigger rows were invalid
- subqueries inside trigger->insert that have no outer visibility did not make exceptions for trigger rows, which act like lateral rows
- prepending rules are flaky and mistakenly prepended in-between project->project nodes
- 2893: Add Wrapper values
This PR adds support for Wrapper values, a new type of value that the storage layer can provide to the engine. This is a generalization of the existing JsonWrapper interface, but is not limited
1.51.1 2 d’abril del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 9063: Normalize AUTO_INCREMENT values in tables.
When the AUTO_INCREMENT field is unset, the value of the next AUTO_INCREMENT column defaults to 1. Thus, setting it to 0 and 1 produce identical behavior.
By normalizing the value as its written, we ensure that both operations produce the same table hash as if the value was unset.
- 9061: Bug fix for doltgres range iter
- 9059: go: cmd/dolt: commands/sql: Fix the displayed query time in interactive mode after a query completes.
The migration to subcontexts of the Queryist sql.Context meant that we lost the default setting of the query start time. Restore it in the sql command implementation itself.
- 9050: go,integration-tests/{bats,go-sql-server-driver}: Implement GC sesssion lifecycle validation at the storage layer. Enable checks for bats and go sql server integration tests.
This makes *NomsBlockStore check the incoming Context object to ensure that it itself has been invovled in the appropriate GC lifecycle callbacks.
It fixes a problem with statspro.AnalyzeTable, where the GC lifecycle callbacks happened more than once for a single session.
It fixes some callsites to appropriately make the GC lifecycle callbacks, including LateBindingQueryist opening one session command for the whole lifetime of the returned sql.Context.
- 9047: go: utils/publishrelease/buildpgobinaries.sh: Bump optcross to pick up new dolthub_toolchains changes.
- 9041: go: store/datas/pull: Error handling improvements. Target an approximate file size instead of a number of chunks when uploading files.
Our old heuristic was to cut a file and start uploading it when it reached a fixed number of chunks. We chose that number of chunks as just (1<<30 / 4096), which is the average chunk size the chunker targets. But the chunk targets pre-compressed sizes. So file uploads which were hitting the target could vary a lot in size. It's better to just track how many bytes we've written so far and cut it when (approximately) appropriate. This is still best effort and only approximately.
Also improves error handling and structured concurrency a bit. Moves a number of goroutines up to the top-level errgroup in Pull(). Avoids creating – and thus potentially leaking – goroutines in NewPuller(), deferring them until Pull actually gets called. Gets rid of an unnecessary request-response thread structure in the implementation of PullChunkFetcher.
- 9032: integration-tests/go-sql-server-driver: Move max-connections testing to go-sql-server-driver.
- 9029: go: Add some GC lifecycle callbacks to commands which use a local SqlEngine.
- 9023: go: mvdata: Improve dump, import and export so that these commands create a single SqlEngine over their lifetime.
Pass the SqlEngine along and reuse it in the operations where we dump table contents, parse import schemas, etc.
- 8965: Root Objects
Counterpart to Doltgres PR:
- dolthub/doltgresql#1265
go-mysql-server
- 2921: fix not equal conversions
fixes: #9052
- 2920: fix negative integer limits
In golang, the negation of the minimum int8, int16, int32, int64 is the same.
fix: #9053
- 2919: fix double negatives
We can't apply NOT(NOT(expr)) -> expr optimization if there will be a type conversion involved.
This PR also fixes bad test involving current timestamps.
fixes: #9054
- 2918: more precision fixes for unix_timestamp
Changes:
- have datetime_type equality to also compare precision
- retain precision for date and datetime types in a table
fixes: #9025
- 2916: prevent panics in replacePkSort
Not sure how to reproduce this, but this should make the code more safe.
fixes: dolthub/go-mysql-server#2915
- 2914: bump: dolthub/go-icu-regex
- 2912: Support for negative bool values
Fixes #9036
- 2911: check group by ordinal range
This PR adds an error check when attempting to group by a column index that is out of range.
fixes: #9037
Closed Issues
- 9052: Incorrect optimization of operation in expression in WHERE clause
- 9053: Incorrect negation of minimum signed integer
- 903
1.51.0 26 de març del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
Minor version bump here reflects changes in background statistics management. The new statistics system tracks updates for all branches with a common backing cache that reduces memory consumption when branches have overlapping table data. See docs for the expanded interface.
dolt
- 9034: Be more flexible for missing working sets when loading db
Fixes: #9031
- 9028: Test new connection configuration in vitess
This PR is both a dependency bump and enabling the configuration args in the dependency.
- 9021: go: gcctx,dsess: Move GCSafepointController into an independent package. Make dsess.AutoIncrementTracker background database access participate in GC lifecycle callbacks.
- 9020: go: branch_control,sqle/dsess: Pass the *sql.Context to the GetBranch accessor. Wrap it for the branch_control.Context conversion.
- 9016: Remove duplicate github.com/vbauerster/mpb dependency
- 9006: Replace jpillora/backoff with cenkalti/backoff/v4
This is a drop-in replacement.
Both github.com/jpillora/backoff and github.com/cenkalti/backoff/v4 provide exponential backoff implementations. Since we already use github.com/cenkalti/backoff/v4 elsewhere in the codebase, this change standardizes our dependency by using a single implementation consistently.
- 9002: Replace golang.org/x/exp/slices with stdlib slices
The experimental functions in golang.org/x/exp/slices are now available in the standard library in Go 1.21.
Reference: https://go.dev/doc/go1.21#slices
- 9000: Fix spelling
- 8991: Remove duplicate github.com/vbauerster/mpb dependency
https://github.com/dolthub/dolt/blob/b7c0ddb4aac3702114c4e060651007d590a8be8c/go/cmd/dolt/cli/stdio.go#L28
https://github.com/dolthub/dolt/blob/b7c0ddb4aac3702114c4e060651007d590a8be8c/go/cmd/dolt/cli/stdio_test.go#L23
It's weird that we use the tagged v8 version in the source code but non-tagged version in the test.
- 8815: [stats] Rewrite stat management to use single threaded event loop
Reference statspro/doc.go for more detailed overview. Replaced stats management with a worker->scheduler->executer system. Worker does the default background job organizing, scheduler serializes background and async requests, executor calls function callbacks with a ticker delay. GC performed within a loop.
Early perf testing seems to have little/no impact on TPC-C when the job ticker is 100-500ms.
fixes: #8844
go-mysql-server
- 2907: special case for unix_timestamp
When the provided timestamp is in string format, we preserve the scale of the original string (assuming it is valid).
Additionally, we should round precision instead of truncating.
#9025
- 2902: Support ALTER TABLE ... ADD COLUMN with an inline check constraint
Adds support for adding a column to a table with an inline constraint declared. Previously, the inline constraint was parsing, but ignored.
Depends on: dolthub/vitess#405
Originally discovered as part of testing DoltHub's Postgres schema with Doltgres.
- 2901: disable_merge_join corner case
Disable merge join previously could only kick in if other hints were applied. We also want it to work in the absence of hints.
vitess
- 407: remove incorrect continue statement which skips handling connection
Caught in PR.
- 406: Avoid spin waits and dead connections in mysql server
Related (partial fix): #8943
- 405: Set ConstraintAction if an added column was specified with an inline constraint
Currently Dolt/GMS ignore an inline check constraint definition in an ALTER TABLE ... ADD COLUMN statement. This change detects if a constraint is present, and sets ConstraintAction so that GMS will add the constraint.
- 403: Log a warning when max connections is hit
Fixes: #8942
Tested by configuring a server with 2 max conns, then connecting to it 3 times:
lcl:~/Documents/data_dir_1/db3$ dolt sql-server --config ./config.yaml
Starting server with Config HP="localhost:3306"|T="28800000"|R="false"|L="info"|S="/tmp/mysql.sock"
WARN[0000] unix socket set up failed: file already in use: /tmp/mysql.sock
INFO[0000] Server rea
1.50.9 20 de març del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
go-mysql-server
- 2901: disable_merge_join corner case
Disable merge join previously could only kick in if other hints were applied. We also want it to work in the absence of hints.
- 2899: [memo] hash join right-side cardinality can be filtered
Previously assumed HASH_JOIN would load whole right table into memory. This overestimates the cost, we only read and cache the indexed fraction.
perf benchmarks: #9007
Closed Issues
1.50.7 19 de març del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
go-mysql-server
- 2898: [memo] variable to disable merge join
Use SET @@GLOBAL.disable_merge_join = 1 to prevent join planning from every selecting a merge join. There will always be HASH_JOIN and INNER_JOIN alternatives.
- 2896: support for INSERT .. RETURNING, a postgres extension
- 2895: Bug fix: resolve column default expressions for ALTER COLUMN nodes
When building plan nodes to handle altering a column's nullability or type, without respecifying the full column definition, the built node should ensure any column default expressions are resolved.
This originally showed up as a panic in Doltgres, because Doltgres' TypeSanitzer found the UnresolvedColumnDefault instance and tried to invoke operations on it.
Note that it's not currently possible to trigger this issue with Dolt or GMS because MySQL has a more limited syntax than Postgres for altering a column without respecfiying its full column definition, and Dolt/GMS does not support that syntax currently (e.g. ALTER TABLE t ALTER COLUMN SET VISIBLE).
Closed Issues
Performance
─────────────────────┬─────┬──────┬────────
Read Tests │MySQL│Dolt │Multiple
─────────────────────┼─────┼──────┼────────
covering_index_scan │1.89 │0.67 │0.35
─────────────────────┼─────┼──────┼────────
groupby_scan │13.7 │17.95 │1.31
─────────────────────┼─────┼──────┼────────
index_join │1.5 │2.43 │1.62
─────────────────────┼─────┼──────┼────────
index_join_scan │1.44 │1.42 │0.99
─────────────────────┼─────┼──────┼────────
index_scan │34.95│29.72 │0.85
─────────────────────┼─────┼──────┼────────
oltp_point_select │0.18 │0.26 │1.44
─────────────────────┼─────┼──────┼────────
oltp_read_only │3.49 │5.28 │1.51
─────────────────────┼─────┼──────┼────────
select_random_points │0.34 │0.6 │1.76
─────────────────────┼─────┼──────┼────────
select_random_ranges │0.37 │0.63 │1.7
─────────────────────┼─────┼──────┼────────
table_scan │34.95│31.37 │0.9
─────────────────────┼─────┼──────┼────────
types_table_scan │75.82│114.72│1.51
─────────────────────┼─────┼──────┼────────
reads_mean_multiplier│ │ │1.27
─────────────────────┴─────┴──────┴────────
──────────────────────┬─────┬─────┬────────
Write Tests │MySQL│Dolt │Multiple
──────────────────────┼─────┼─────┼────────
oltp_delete_insert │8.9 │6.32 │0.71
──────────────────────┼─────┼─────┼────────
oltp_insert │4.1 │3.13 │0.76
──────────────────────┼─────┼─────┼────────
oltp_read_write │9.06 │11.45│1.26
──────────────────────┼─────┼─────┼────────
oltp_update_index │4.18 │3.19 │0.76
──────────────────────┼─────┼─────┼────────
oltp_update_non_index │4.18 │3.07 │0.73
──────────────────────┼─────┼─────┼────────
oltp_write_only │5.77 │6.32 │1.1
──────────────────────┼─────┼─────┼────────
types_delete_insert │8.43 │6.67 │0.79
──────────────────────┼─────┼─────┼────────
writes_mean_multiplier│ │ │0.87
──────────────────────┴─────┴─────┴────────
───────────────────┬─────┬─────┬────────
TPC-C TPS Tests │MySQL│Dolt │Multiple
───────────────────┼─────┼─────┼────────
tpcc-scale-factor-1│96.45│40.01│2.41
───────────────────┼─────┼─────┼────────
tpcc_tps_multiplier│ │ │2.41
───────────────────┴─────┴─────┴────────
─────────────────────┬────
Overall Mean Multiple│1.52
─────────────────────┴────
1.50.5 13 de març del 2025 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 8984: Fix schema merge bug when schema is identical with multiple indexes on the same columns
FIxes: #8975
Closed Issues
- 8975: Cannot merge branches when two indexes covers same column
- 8907: Why DOLT_DIFF_SUMMARY shows record without data change and schema change?
- 8977: Can't select ''
Performance
─────────────────────┬─────┬──────┬────────
Read Tests │MySQL│Dolt │Multiple
─────────────────────┼─────┼──────┼────────
covering_index_scan │1.93 │0.67 │0.35
─────────────────────┼─────┼──────┼────────
groupby_scan │13.22│17.95 │1.36
─────────────────────┼─────┼──────┼────────
index_join │1.47 │2.43 │1.65
─────────────────────┼─────┼──────┼────────
index_join_scan │1.47 │1.44 │0.98
─────────────────────┼─────┼──────┼────────
index_scan │34.33│30.26 │0.88
─────────────────────┼─────┼──────┼────────
oltp_point_select │0.18 │0.26 │1.44
─────────────────────┼─────┼──────┼────────
oltp_read_only │3.49 │5.28 │1.51
─────────────────────┼─────┼──────┼────────
select_random_points │0.33 │0.6 │1.82
─────────────────────┼─────┼──────┼────────
select_random_ranges │0.37 │0.62 │1.68
─────────────────────┼─────┼──────┼────────
table_scan │34.95│31.37 │0.9
─────────────────────┼─────┼──────┼────────
types_table_scan │75.82│114.72│1.51
─────────────────────┼─────┼──────┼────────
reads_mean_multiplier│ │ │1.28
─────────────────────┴─────┴──────┴────────
──────────────────────┬─────┬─────┬────────
Write Tests │MySQL│Dolt │Multiple
──────────────────────┼─────┼─────┼────────
oltp_delete_insert │8.9 │6.32 │0.71
──────────────────────┼─────┼─────┼────────
oltp_insert │4.1 │3.07 │0.75
──────────────────────┼─────┼─────┼────────
oltp_read_write │8.9 │11.45│1.29
──────────────────────┼─────┼─────┼────────
oltp_update_index │4.18 │3.13 │0.75
──────────────────────┼─────┼─────┼────────
oltp_update_non_index │4.18 │3.07 │0.73
──────────────────────┼─────┼─────┼────────
oltp_write_only │5.67 │6.32 │1.11
──────────────────────┼─────┼─────┼────────
types_delete_insert │8.43 │6.67 │0.79
──────────────────────┼─────┼─────┼────────
writes_mean_multiplier│ │ │0.88
──────────────────────┴─────┴─────┴────────
───────────────────┬─────┬─────┬────────
TPC-C TPS Tests │MySQL│Dolt │Multiple
───────────────────┼─────┼─────┼────────
tpcc-scale-factor-1│95.47│39.83│2.4
───────────────────┼─────┼─────┼────────
tpcc_tps_multiplier│ │ │2.4
───────────────────┴─────┴─────┴────────
─────────────────────┬────
Overall Mean Multiple│1.52
─────────────────────┴────
1.50.2 4 de març del 2025 — 64 bits MSI
1.50.1 3 de març del 2025 — 64 bits MSI
1.50.0 27 de febrer del 2025 — 64 bits MSI
1.49.3 21 de febrer del 2025 — 64 bits MSI
1.49.2 17 de febrer del 2025 — 64 bits MSI
1.49.1 7 de febrer del 2025 — 64 bits MSI
1.49.0 5 de febrer del 2025 — 64 bits MSI
1.48.0 28 de gener del 2025 — 64 bits MSI
1.47.2 24 de gener del 2025 — 64 bits MSI
1.47.1 18 de gener del 2025 — 64 bits MSI
1.47.0 16 de gener del 2025 — 64 bits MSI
1.46.0 15 de gener del 2025 — 64 bits MSI
1.45.6 14 de gener del 2025 — 64 bits MSI
1.45.5 9 de gener del 2025 — 64 bits MSI
1.45.3 8 de gener del 2025 — 64 bits MSI
1.45.2 2 de gener del 2025 — 64 bits MSI
1.45.1 26 de desembre del 2024 — 64 bits MSI
1.45.0 17 de desembre del 2024 — 64 bits MSI
1.44.4 15 de desembre del 2024 — 64 bits MSI
1.44.3 13 de desembre del 2024 — 64 bits MSI
1.44.2 11 de desembre del 2024 — 64 bits MSI
1.44.1 9 de desembre del 2024 — 64 bits MSI
1.44.0 7 de desembre del 2024 — 64 bits MSI
1.43.20 5 de desembre del 2024 — 64 bits MSI
1.43.19 2 de desembre del 2024 — 64 bits MSI
1.43.18 28 de novembre del 2024 — 64 bits MSI
1.43.17 22 de novembre del 2024 — 64 bits MSI
1.43.16 20 de novembre del 2024 — 64 bits MSI
1.43.15 15 de novembre del 2024 — 64 bits MSI
1.43.14 14 de novembre del 2024 — 64 bits MSI
1.43.13 6 de novembre del 2024 — 64 bits MSI
1.43.12 5 de novembre del 2024 — 64 bits MSI
1.43.11 2 de novembre del 2024 — 64 bits MSI
1.43.10 30 d’octubre del 2024 — 64 bits MSI
1.43.9 25 d’octubre del 2024 — 64 bits MSI
1.43.8 24 d’octubre del 2024 — 64 bits MSI
1.43.7 17 d’octubre del 2024 — 64 bits MSI
1.43.6 16 d’octubre del 2024 — 64 bits MSI
1.43.4 11 d’octubre del 2024 — 64 bits MSI
1.43.3 10 d’octubre del 2024 — 64 bits MSI
1.43.2 8 d’octubre del 2024 — 64 bits MSI
1.43.1 26 de setembre del 2024 — 64 bits MSI
1.43.0 18 de setembre del 2024 — 64 bits MSI
1.42.20 13 de setembre del 2024 — 64 bits MSI
1.42.19 9 de setembre del 2024 — 64 bits MSI
1.42.18 5 de setembre del 2024 — 64 bits MSI
1.42.17 30 d’agost del 2024 — 64 bits MSI
1.42.16 28 d’agost del 2024 — 64 bits MSI
1.42.15 27 d’agost del 2024 — 64 bits MSI
1.42.14 22 d’agost del 2024 — 64 bits MSI
1.42.13 16 d’agost del 2024 — 64 bits MSI
1.42.11 13 d’agost del 2024 — 64 bits MSI
1.42.10 9 d’agost del 2024 — 64 bits MSI
1.42.9 8 d’agost del 2024 — 64 bits MSI
1.42.8 5 d’agost del 2024 — 64 bits MSI
1.42.7 31 de juliol del 2024 — 64 bits MSI
1.42.6 31 de juliol del 2024 — 64 bits MSI
1.42.5 3 d’agost del 2024 — 64 bits MSI
1.42.4 26 de juliol del 2024 — 64 bits MSI
1.42.3 24 de juliol del 2024 — 64 bits MSI
1.42.2 19 de juliol del 2024 — 64 bits MSI
1.42.1 17 de juliol del 2024 — 64 bits MSI
1.42.0 16 de juliol del 2024 — 64 bits MSI
1.41.4 12 de juliol del 2024 — 64 bits MSI
1.41.3 8 de juliol del 2024 — 64 bits MSI
1.41.2 3 de juliol del 2024 — 64 bits MSI
1.41.1 25 de juny del 2024 — 64 bits MSI
1.41.0 24 de juny del 2024 — 64 bits MSI
1.40.3 24 de juny del 2024 — 64 bits MSI
1.40.2 14 de juny del 2024 — 64 bits MSI
1.40.1 14 de juny del 2024 — 64 bits MSI
1.39.4 7 de juny del 2024 — 64 bits MSI
1.39.3 4 de juny del 2024 — 64 bits MSI
1.39.2 31 de maig del 2024 — 64 bits MSI
1.39.1 24 de maig del 2024 — 64 bits MSI
1.39.0 24 de maig del 2024 — 64 bits MSI
1.38.3 24 de maig del 2024 — 64 bits MSI
1.38.2 20 de maig del 2024 — 64 bits MSI
1.38.1 18 de maig del 2024 — 64 bits MSI
1.38.0 10 de maig del 2024 — 64 bits MSI
1.37.0 8 de maig del 2024 — 64 bits MSI
1.36.0 8 de maig del 2024 — 64 bits MSI
1.35.13 3 de maig del 2024 — 64 bits MSI
1.35.12 30 d’abril del 2024 — 64 bits MSI
1.35.11 26 d’abril del 2024 — 64 bits MSI
1.35.10 19 d’abril del 2024 — 64 bits MSI
1.35.9 11 d’abril del 2024 — 64 bits MSI
1.35.8 5 d’abril del 2024 — 64 bits MSI
1.35.7 2 d’abril del 2024 — 64 bits MSI
1.35.6 28 de març del 2024 — 64 bits MSI
1.35.5 28 de març del 2024 — 64 bits MSI
1.35.4 15 de març del 2024 — 64 bits MSI
1.35.2 12 de març del 2024 — 64 bits MSI
1.35.1 7 de març del 2024 — 64 bits MSI
1.34.2 22 de febrer del 2024 — 64 bits MSI
1.34.1 16 de febrer del 2024 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 7494: Fix windows file paths for dropping databases
We have to convert windows file path separators to unix ones, when removing them from singleton cache.
Additionally, unskips some bats tests
Fixes #7492
- 7490: Bug fix: IndexedDoltTable didn't fully implement DoltTable's interface
IndexedDoltTable wasn't fully compatible with DoltTable's interface, which was causing some queries to execute incorrectly due to using the wrong field indexes. This only happened with queries where the table was used in a read-only context (such as an AS OF query), since in a read-write context WritableIndexedDoltTable is used, which is composed of a WritableDoltTable, so fully inherits the interface. IndexedDoltTable is now consistent with that, and is now composed of a DoltTable instance. This enables the GMS code in assignExecIndexes to use the correct, limited schema of the secondary index and to apply the correct field indexes.
Fixes: #7488
- 7486: Shallow Clone
Add the --depth flag to the dolt_clone stored procedure and the dolt cli
This is possibly an MVP, as it's kind of impossible to test everything this touches. The guiding principle was to not break the code for any fully cloned repository.
There currently remain 7 problems to address in this code. They are each marked with "NM4"
- 7482: go: sqle/cluster: When in standby mode, take the epoch of the primary.
When in detected_broken_config, become standby if we see a higher numbered primary.
Closed Issues
- 7492: Creation of a database with a name identical to a recently dropped-and-dolt_purge_dropped_database() database fails on Windows
- 7488: Field index bug with AS OF query and secondary index
- 7098: decimal result scale does not match MySQL
1.34.0 10 de febrer del 2024 — 64 bits MSI
Notes de la versió
Merged PRs
dolt
- 7468: go/libraries/events: Restructure events collection so that we can send events while the dolt process is running.
We make the GlobalCollector mutable.
We give the Collector a sendingThread which can have an Emitter. When the Collector collects enough events, it forwards a batch of them to the sendingThread. If the sendingThread has an Emitter, it attempts to send its current batch on that Emitter.
On shutdown, contexts get canceled, background threads get waited on, and then an accumulated un-emitted events are returned from the Collector, same as previously.
- 7463: SELECT ... INTO OUTFILE ... tests
This PR adds BATS tests for a SELECT ... INTO OUTFILE ... feature we're adding.
Companion pr: dolthub/go-mysql-server#2317
- 7457: Added storage capabilities for GMS Extended Types
This adds the necessary scaffolding to support the new ExtendedType interface within GMS. This interface is primarily used by DoltgreSQL to implement PostgreSQL types.
Related PRs:- dolthub/go-mysql-server#2312
- dolthub/doltgresql#120

- 7424: Stats auto refresh
Three new system variables to configure stats auto refresh, one for turning on, one for a timer of how often to check whether stats are fresh, and a third for a freshness threshold to trigger writing new stats. The system variables are global, and will apply to all databases in a server context. Adding or dropping databases, tables, and indexes are reflected by the statistics provider.
Statistic updates now funnel through a process where we preserve buckets for pre-existing chunks and create new buckets specifically for new chunk ordinals. The auto-refresh threshold compares the number of new and deleted buckets compared the the existing bucket count. So inserts, updates, and deletes all create new chunks or delete chunks relative to the previously saved statistics, and the fraction of (new+deleted)/previous count is compared against the threshold.
TODO:- how much logging is appropriate
- go server tests
- is stats dataset replication blocked by default?
other:
- ANALYZE table and auto-refresh concurrency, last write wins? as long as auto-refresh thread doesn't die
- drop database/ANALYZE concurrency, error for writing stats to a deleted folder

go-mysql-server
- 2323: SQLEXCEPTION proc handler
We originally supported one type of procedure handler, NOT FOUND, which explicitly checked for an error when fetching from a cursor io.EOFs. The implementation for that handler would walk the entire BEGIN/END scope stack inside the Fetch call looking for a handler, execute the handler body, and then embed the scope height into a special return error. The error walked back up the callstack looking for the BEGIN/END block embedded in the error message.
This PR:- Refactors handlers to coordinate message passing in a centralized way. No metadata is embedded in FetchEOF, because each scope will explicitly compare its handlers to errors raised during execution within its BEGIN/END bounds. (FetchEOF is important because we differentiate between 3 different types of io.EOF in procedure loops).
- Add type/object support for representing specific signal handers.
- Add SQLEXCEPTION signal handling, which will trigger for any error type (other than io.EOF) that bubbles up during a BeginEndIter's execution.
re: #7454
Another thing I noticed is that some of our tests return nil for empty stored procedures when mysql returns ERROR 1329 (02000): No data - zero rows fetched, selected, or processed.

- 2322: Allow InjectedExpr to handle name resolution
Modifies the InjectedExpr handling to support additional expressions, such as those requiring name resolution.
Related PRs:- dolthub/vitess#312
- dolthub/doltgresql#121

- 2317: support SELECT ... INTO OUTFILE/DUMPFILE ...
This adds support for MySQL's SELECT ... INTO OUTFILE/DUMPFILE ... feature.
It is the complement to LOAD DATA. There is no LOCAL option, so files created using this feature are on the server.
This PR adds a custom TestSuite for test
1.33.0 7 de febrer del 2024 — 64 bits MSI
1.32.6 1 de febrer del 2024 — 64 bits MSI
1.32.5 1 de febrer del 2024 — 64 bits MSI
1.32.4 26 de gener del 2024 — 64 bits MSI
1.32.3 25 de gener del 2024 — 64 bits MSI
1.32.2 23 de gener del 2024 — 64 bits MSI
Notes de la versió
dolt
- 7373: add dolt rebase command
go-mysql-server
- 2286: Earlier LOAD DATA and insert validation
- 2207: Fix partial left join update when columns have default values or join table is in where clause
vitess
- 305: Allow UNIQUE and PRIMARY KEY to be specified on the same column
- 302: Detect if a system variable scope was explicitly specified or not
Closed Issues
- 7313: sql server panic when uploading table
1.32.1 23 de gener del 2024 — 64 bits MSI
1.32.0 19 de gener del 2024 — 64 bits MSI
1.31.3 22 de gener del 2024 — 64 bits MSI
1.31.2 18 de gener del 2024 — 64 bits MSI
1.31.1 11 de gener del 2024 — 64 bits MSI
1.31.0 8 de gener del 2024 — 64 bits MSI
Notes de la versió
- Values in JSON fields that were edited on both sides of a merge are now automatically merged, when possible, using a new JSON merging algorithm.
The current JSON merging algorithm supports merging object keys in edited JSON docs, but other changes, such as edits to arrays, will still result in data conflicts in the merge that must be manually resolved.
If you want to opt-out of this JSON merging behavior, you can set the @@dolt_dont_merge_json session variable.
dolt
- 7267: recursively walk the fields of structs
- 7242: sql shell prompt includes branch name
- Show the branch you are on: mydb/main>
- Show the workspace is dirty with a "*" in the prompt
- Add color to the DB name, branch, and dirty status.
- 7230: Allow for three way merges to automatically resolve concurrent changes to a JSON object when the changes affect different keys.
go-mysql-server
- 2244: Feature: SYSDATE() function
- 2243: Fix context warn panics
- 2238: [memo] RequiredIndex interface
- 2216: Use indexes and lookups for cardinality estimates
Closed Issues
- 7262: Panic when Using INNER JOIN with String in IN
1.30.4 2 de gener del 2024 — 64 bits MSI
1.30.3 2 de gener del 2024 — 64 bits MSI
1.30.2 28 de desembre del 2023 — 64 bits MSI
1.30.1 28 de desembre del 2023 — 64 bits MSI
1.30.0 27 de desembre del 2023 — 64 bits MSI
1.29.7 20 de desembre del 2023 — 64 bits MSI
1.29.5 14 de desembre del 2023 — 64 bits MSI
1.29.4 12 de desembre del 2023 — 64 bits MSI
1.29.3 11 de desembre del 2023 — 64 bits MSI
1.29.2 8 de desembre del 2023 — 64 bits MSI
1.29.1 7 de desembre del 2023 — 64 bits MSI
1.29.0 1 de desembre del 2023 — 64 bits MSI
Notes de la versió
- Deprecated dolt sql-client – dolt sql-client has been fully deprecated and will not be accessible via the CLI anymore. sql-client previously served as a built-in MySQL client that could be used to connect to running servers.
Now, dolt sql can serve the same function with the appropriate global arguments.
dolt
- 7077: remove dolt sql-client command
- 7069: go/cmd/dolt: Implement new semantics for sql-server.lock.
- 7054: remove dolt stored procedure aliases
- 7042: Run nullness checking on merged rows during three-way merges.
- 7035: Detect data conflicts even when one branch has the same binary representation as the ancestor.
go-mysql-server
- 2171: Bug fixes for type handling in IF and COALESCE functions
- 2170: have flush binary logs be noop
- 2169: Unique table and column ids
- 2168: fix panic in math funcs
- 2166: prevent panic on nil cast for time functions
- 2165: fix update <table> set <column> = default
- 2158: have DayName() return NULL on bad DATETIME conversions
- 2156: Decorrelate IN_SUBQUERY refactor
Closed Issues
- 6062: Dolt interactive sql-client cli: Support database name for connection
- 6886: Deprecate dolt sql-client
- 7029: sql-server.lock file preventing docker instance from running
- 7055: Support flush binary logs
- 6746: Three Way Merging won't consider a row to have a data conflict if either side has the same binary rerpresentation as the base.
- 7060: Crash by SQRT
- 7056: Crash by Time Functions
- 7048: Similar queries return different results with different orderings of the where clause
- 2159: VSCode debug Build Error
1.28.0 22 de novembre del 2023 — 64 bits MSI
1.27.0 16 de novembre del 2023 — 64 bits MSI
Notes de la versió
- Databases in a dolt server take their names from the name of their directory on disk.
Previously, any hyphens (-) in such directory names were automatically replaced with underscores (_) when exposing the name of that database.
This behavior has been changed so that hyphens in database names are preserved.
To re-enable the older behavior, set the DOLT_DBNAME_REPLACE_HYPHENS environment variable.
dolt
- 6995: allow hyphen in db name to match its dir name
- 6994: Concurrent remotes map
- tests for the concurrent map
- probably a conversion of backups and branches needs to be done as well
Closed Issues
- 6491: Stop renaming databases with hyphens
- 6965: RepoState.
Remotes map not safe for concurrent use
1.26.1 14 de novembre del 2023 — 64 bits MSI
Notes de la versió
dolt
- 7003: Print an error when server args don't validate
- 6996: go: sqle: cluster: commithook: When shutting down the server, the cluster replication commithook could deadlock after the replication thread missed a wakeup signal.
- 6992: go/libraries/doltcore/remotesrv: Ensure we stop the gRPC server and cancel inflight requests when we are multiplexing one port for HTTP and gRPC traffic.
- 6977: Improve the persistence of the file that stores USERs and GRANTs.
- 6974: Support merging schemas with virtual / generated columns
go-mysql-server
- 2144: Push filters insensitive to table name
- 2142: Idx histogram manipulation
- I'd like to block statistics when only partially provided
- TPCC plans are changed and I want to revert. Blocking partial statistics might fix those, I'm trying to get all of the actual index statistics for those tables as a better enginetest/blog example.
- 2141: Fixing field metadata for JSON and geometry types
- 2140: Respect character_set_results when emitting field metadata
- 2135: Resolve indexes of columns in CREATE TABLE statements early
Closed Issues
- 6945: virtual column merges don't work
- 6970: Regression: Pasting into Datagrip TEXT field puts null
1.26.0 11 de novembre del 2023 — 64 bits MSI
1.25.0 8 de novembre del 2023 — 64 bits MSI
1.24.3 7 de novembre del 2023 — 64 bits MSI
1.24.2 7 de novembre del 2023 — 64 bits MSI
1.24.1 6 de novembre del 2023 — 64 bits MSI
1.24.0 3 de novembre del 2023 — 64 bits MSI
1.23.0 3 de novembre del 2023 — 64 bits MSI
1.21.5 26 d’octubre del 2023 — 64 bits MSI
1.21.4 24 d’octubre del 2023 — 64 bits MSI
1.21.3 24 d’octubre del 2023 — 64 bits MSI
1.21.2 24 d’octubre del 2023 — 64 bits MSI
1.21.0 19 d’octubre del 2023 — 64 bits MSI
1.20.0 16 d’octubre del 2023 — 64 bits MSI
1.19.0 12 d’octubre del 2023 — 64 bits MSI
1.18.1 6 d’octubre del 2023 — 64 bits MSI
1.18.0 3 d’octubre del 2023 — 64 bits MSI
1.17.1 29 de setembre del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6744: go/store/nbs: store.go: Clean up how we update hasCache so that we only update it after successfully writing the memtable.
- 6740: Support for DOLT_COMMITTER_DATE and DOLT_AUTHOR_DATE environment vars
go-mysql-server
- 2041: not panic on Star.
IsNullable()
- 2039: AliasedExpr.
InputExression should be compared case insensitive
- 2038: error msg for invalid reference to non-existent table or column in existing view
- 2032: fix order by on unioned schemas
- 2030: unskipping fixed tests
- 2022: TPC-X query plan tests
- TPC-H
- TPC-DS
- IMDB join planning benchmark
- 1786: support event execution
- Event Scheduler status cannot be updated at run-time.
- Event DISABLE ON SLAVE status is not supported.
It will be set to DISABLE by default.
vitess
- 278: fix unsigned flag for COM_STMT_EXECUTE when new_params_bind_flag is set
- 277: Allow parsing of CREATE TABLE t AS (...) UNION (...)
- 276: Allow parsing of SECONDARY_ENGINE = NULL
Closed Issues
- 6724: dolt merge doesn't produce deterministic hashes
- 6728: Out of Range for bigint unsigned with question mark
- 6691: Renaming a table breaks views using that table
- 5498: Support CREATE EVENT statement
- 6393: Handle schema merge for column and FK drop automatically
- 6406: FOUND_ROWS() returns incorrect results
- 6343: Produce a diff of two arbitrary queries
- 6572: Prepared statements cache AST nodes
- 1782: Error 1105: -128 out of range for BIGINT UNSIGNED
1.17.0 28 de setembre del 2023 — 64 bits MSI
1.16.5 28 de setembre del 2023 — 64 bits MSI
1.16.4 25 de setembre del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6701: Test the privilege serialization doesn't write empty databases
go-mysql-server
- 2029: Return innodb_lock_wait_timeout=1 always
- 2025: Failure to push filter causes dropped filter
vitess
- 276: Allow parsing of SECONDARY_ENGINE = NULL
- 275: Adding parser support for VISIBLE and INVISIBLE modifiers for indexes
1.16.3 25 de setembre del 2023 — 64 bits MSI
1.16.2 21 de setembre del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6688: Retain display width for TINYINT(1)
go-mysql-server
- 2018: Avoid corrupting the privileges file
- 2017: Retaining display width for TINYINT(1)
- 2016: Bug fix: Preserve column name case for views
- 2005: implement INTERSECT and EXCEPT clause
- 2003: Delete fixidx package
vitess
- 275: Adding parser support for VISIBLE and INVISIBLE modifiers for indexes
- 274: Allow CREATE TABLE and ALTER TABLE to accept hexnum and float values when integers are expected.
- 272: Set character set IDs to current MySQL version
- 271: parsing intersect and except
Closed Issues
- 6644: Cast floating point values for statement parameters that expect int
- 6643: Implement EXCEPT and INTERSECT
- 6683: Selecting from a view shows column names as all lowercase
1.16.1 19 de setembre del 2023 — 64 bits MSI
Notes de la versió
go-mysql-server
- 2016: Bug fix: Preserve column name case for views
- 2015: GROUP BY identifiers should prefer binding to table columns over projections.
- 2012: Insert on dup col ordinal bug
- The source is a SELECT statement (not a VALUES row)
- All columns are specified by the INSERT (not sure why, but partial columns seems to get rearranged correctly.
I think we must insert a compensating projection to handle column defaults)
- The source columns are not the same order as the destination table schema
- On duplicate update expression references a column from the new row
Closed Issues
- 6676: MySQL allows duplicate column names, but Dolt doesn't
- 6675: dolt table import -u fails to properly parse order of columns
- 6663: Dolt uses incorrect type for result of SUM and AVG
1.16.0 19 de setembre del 2023 — 64 bits MSI
1.15.0 13 de setembre del 2023 — 64 bits MSI
1.14.1 11 de setembre del 2023 — 64 bits MSI
1.14.0 6 de setembre del 2023 — 64 bits MSI
1.13.6 1 de setembre del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6600: Separate out log arg parsers
- 6599: Bump gopkg.in/yaml.v3 from 3.0.0-20200313102051-9f266ea9e77c to 3.0.0 in /integration-tests/transactions
- 6598: Move storage format version to only be displayed with dolt version --verbose
- 6568: updates dolt log to use sql backend
go-mysql-server
- 1981: Make the IntSequence test function consistently use int64 for its generated values
- 1980: FreeBSD sockstate workaround
- 1979: Refactor event resolving
- 1976: Refactor prepareds to cache AST
Closed Issues
- 6446: dolt_patch() table function should consider filters for schema or data only changes
- 2138: Can't build from source on FreeBSD
- 6528: dolt version should not care about format anymore
- 6442: Automatically merge changes that enlarge varchar fields to text types
- 6486: Allow pattern-matching in replicate_heads variable
1.13.5 30 d’agost del 2023 — 64 bits MSI
1.13.4 25 d’agost del 2023 — 64 bits MSI
Notes de la versió
go-mysql-server
- 1973: Fixed behavior for CONVERT(x USING y)
- 1970: sql: ExternalStoredProcedureDetails: Add the ability to mark stored procedures read-only.
- 1969: Added a QueryEngine abstraction to engine tests to allow us to run engine tests on a running server
1.13.3 25 d’agost del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6584: Migrate the dolt_procedures table whenever stored procedures are used
- 6577: Pull indexed system table functions into their own test suite.
go-mysql-server
- 1969: Added a QueryEngine abstraction to engine tests to allow us to run engine tests on a running server
- 1968: Missed cases where replicaBinlogController is needed during building
- 1967: Join aggregation projections subject to dropped refs
- 1965: Add error test for ambiguous column name query
- 1964: Skip subquery pushdown when no subquery
- 1962: Name res cleanup, docs and inline rules
- 1955: adding catalog table function interface
vitess
- 265: upgraded YAML library
- 262: Prepared query statement round trip
Closed Issues
- 6579: Stored Procedure Panic
- 6578: Schema types and collations shifting
- 6543: Fulltext and autoincrement together causes Panic
- 6541: Adding fulltext index to a column with only null values panics.
1.13.2 23 d’agost del 2023 — 64 bits MSI
1.13.1 24 d’agost del 2023 — 64 bits MSI
1.12.1 21 d’agost del 2023 — 64 bits MSI
1.12.0 18 d’agost del 2023 — 64 bits MSI
Notes de la versió
- TIMESTAMP and DATETIME columns now honor fractional second precision (FSP), from 0 to 6 decimal places. Previous releases of Dolt ignored FSP for these types and always used 6 decimal places.
The column type DATETIME or TIMESTAMP both now have an implicit FSP of 0 digits (truncated to nearest second), which matches the MySQL behavior.
To get the old default of 6 decimal places of FSP, use the types DATETIME(6) or TIMESTAMP(6).
Existing tables with DATETIME or TIMESTAMP columns are not affected.
They store 6-digit precision times before and after this change.
dolt
- 6532: When checking out a branch, consider it clean if the working set differs from the head only by feature version.
- 6529: add minver tag to YamlServerConfig
- 6526: dolt version only prints the dolt version if there is no dolt database in the directory.
- 6525: Removed Full-Text tables from 'schema show'
- 6518: Support datetime and timestamp precision
go-mysql-server
- 1950: Honor precision for datetime and timestamp, default to 0 (no fractional seconds)
- 1948: Name resolution refactor
- dolthub/go-mysql-server#1927
- dolthub/go-mysql-server#1932
- dolthub/go-mysql-server#1936
- dolthub/go-mysql-server#1939
- dolthub/go-mysql-server#1943
- 1930: leave aliases in projection
- 1907: support joins on using syntax
- ... JOIN ... USING (...)
- ... LEFT JOIN ... USING (...)
- ... RIGHT JOIN ... USING (...)
- ... NATURAL JOIN ...
- ... NATURAL LEFT JOIN ...
- ... NATURAL RIGHT JOIN ...
Closed Issues
- 6524: Dolt checkout fails incorrectly when there are working set changes
- 6503: Dolt datetime defaults to precision 6, mysql defaults to 0
- 6455: nil table RIGHT_JOIN correctness bug
- 6305: XCA Tool shows no records when Dolt is used instead of MySQL
1.11.1 17 d’agost del 2023 — 64 bits MSI
1.11.0 17 d’agost del 2023 — 64 bits MSI
1.10.1 11 d’agost del 2023 — 64 bits MSI
1.10.0 10 d’agost del 2023 — 64 bits MSI
1.9.0 8 d’agost del 2023 — 64 bits MSI
1.8.8 2 d’agost del 2023 — 64 bits MSI
Notes de la versió
dolt
- 6434: Fix for adding a unique column
- 6349: Removing old schema merge guard
- Collation changes – we weren't properly handling merging changes to a table's default collation.
Fixed and tested now.
- New, non-nullable columns with no default value – new columns that are non-nullable and don't have a default value can't be auto merged since we don't know what value to safely use in the new column for any existing rows, so this now throws an error with instructions on how to fix.
go-mysql-server
- 1914: More Full-Text fixes
- 1913: Adjust range heap coster to ensure we don't choose it over a strong lookup join.
- 1912: Normalized handling of ALTER TABLE statements
- 1909: Show variables panic
- 1908: Some Full-Text fixes
- 1906: Fix ErrBinaryCollation in queries with []byte argument
- 1905: When estimating the cardinality of an outer join, bound the cardinality below.
- 1904: sql/mysql_db: Rework how we store and access table data for users, grants and replica_source_info.
- 1880: Add "Sliding Range Join" execution plan
- 1871: Full-Text Indexes
- 1869: Migrate most enginetests for new name resolution
- plans projections are subtly different in a way that should be optimized but is probably not priority
- stored procedures need their custom resolution logic ported
- on duplicate update expressions are buggy, going to rewrite those for new format
- skipping one derived table alias test, where we do not have expression memoization or lateral joins to help us execute a resolved plan (related #6407)
- many tests throw "column not found" instead of "table not found" errors. I tried to bookkeep those with Skips, but the skipped suites may accumulate other differences in the meantime.
- I'll need to revert our prepared statement logic before the final switch
- Various validators work a bit differently, might end up skipping some error tests to get the final switch in sooner
- TestJSONTableScripts_Experimental -- json_table still broken
- TestRenameColumn_Exp -- error test has different error
- We have to hallucinate unknown table, column, and procedure names in trigger bodies on CREATE, and only fail on execution
- Column default expressions appear to be resolved at execution time
- Alter statements are only resolved at execution time
- The precedence for ASOF in nested views and procedure calls is a bit hairy
- json_array w/ and w/o distinct appears to be untested
- ORDER BY in UNION seems pretty flaky and lightly tested, we resolve names from the left
vitess
- 260: Rename MultiAlterDDL to AlterTable and return it for all ALTER TABLE statements
- 259: Bug fix for round tripping parsed cast function calls
- 258: Adding new keywords to the non-reserved list so they don't need to be…
- 257: Support for all temporal query forms in SQL 2011
- 256: Support ANSI_QUOTES parsing mode
1.8.5 27 de juliol del 2023 — 64 bits MSI
1.8.4 27 de juliol del 2023 — 64 bits MSI
1.8.3 25 de juliol del 2023 — 64 bits MSI
1.8.2 21 de juliol del 2023 — 64 bits MSI
1.8.1 21 de juliol del 2023 — 64 bits MSI
1.8.0 19 de juliol del 2023 — 64 bits MSI
1.7.6 18 de juliol del 2023 — 64 bits MSI
1.7.5 12 de juliol del 2023 — 64 bits MSI
1.7.4 8 de juliol del 2023 — 64 bits MSI
1.7.0 27 de juny del 2023 — 64 bits MSI
1.6.1 24 de juny del 2023 — 64 bits MSI
1.6.0 23 de juny del 2023 — 64 bits MSI
1.4.2 16 de juny del 2023 — 64 bits MSI
1.4.1 14 de juny del 2023 — 64 bits MSI
1.3.0 6 de juny del 2023 — 64 bits MSI
1.2.4 2 de juny del 2023 — 64 bits MSI
Notes de la versió
go-mysql-server
- 1809: Add support for JSON -> and ->> operators
- 1808: escape special characters in strings
- 1806: improve conversion from JsonDocument to string
Closed Issues
- 6063: Excessive Memory usage related to JSON column and multi table JOIN
- 6076: Dolt backup restore drops user root, prevents access to other databases.
- 5936: Add dolt table import --append
- 5662: JSON operator ->> not supported
1.2.3 1 de juny del 2023 — 64 bits MSI
1.2.2 1 de juny del 2023 — 64 bits MSI
1.2.1 27 de maig del 2023 — 64 bits MSI
1.2.0 25 de maig del 2023 — 64 bits MSI
1.1.3 25 de maig del 2023 — 64 bits MSI
1.1.2 23 de maig del 2023 — 64 bits MSI
1.1.1 22 de maig del 2023 — 64 bits MSI
1.1.0 16 de maig del 2023 — 64 bits MSI
1.0.2 16 de maig del 2023 — 64 bits MSI
1.0.1 11 de maig del 2023 — 64 bits MSI
1.0.0 5 de maig del 2023 — 64 bits MSI
0.75.21 5 de maig del 2023 — 64 bits MSI
0.75.20 4 de maig del 2023 — 64 bits MSI
0.75.19 5 de maig del 2023 — 64 bits MSI
0.75.18 3 de maig del 2023 — 64 bits MSI
0.75.17 3 de maig del 2023 — 64 bits MSI
0.75.16 2 de maig del 2023 — 64 bits MSI
0.75.15 29 d’abril del 2023 — 64 bits MSI
0.75.14 28 d’abril del 2023 — 64 bits MSI
0.75.13 28 d’abril del 2023 — 64 bits MSI
0.75.12 17 d’abril del 2023 — 64 bits MSI
0.75.11 14 d’abril del 2023 — 64 bits MSI
0.75.10 7 d’abril del 2023 — 64 bits MSI
0.75.9 29 de març del 2023 — 64 bits MSI
0.75.8 29 de març del 2023 — 64 bits MSI
0.75.7 24 de març del 2023 — 64 bits MSI
0.75.6 22 de març del 2023 — 64 bits MSI
0.75.5 21 de març del 2023 — 64 bits MSI
0.75.4 19 de març del 2023 — 64 bits MSI
0.75.3 15 de març del 2023 — 64 bits MSI
0.75.2 14 de març del 2023 — 64 bits MSI
0.75.1 10 de març del 2023 — 64 bits MSI
0.75.0 9 de març del 2023 — 64 bits MSI
0.54.2 3 de març del 2023 — 64 bits MSI
0.54.1 2 de març del 2023 — 64 bits MSI
0.54.0 2 de març del 2023 — 64 bits MSI
0.53.2 28 de febrer del 2023 — 64 bits MSI
0.53.1 22 de febrer del 2023 — 64 bits MSI
0.53.0 15 de febrer del 2023 — 64 bits MSI
0.52.20 6 de febrer del 2023 — 64 bits MSI
0.52.19 6 de febrer del 2023 — 64 bits MSI
0.52.18 8 de febrer del 2023 — 64 bits MSI
0.52.17 3 de febrer del 2023 — 64 bits MSI
0.52.16 1 de febrer del 2023 — 64 bits MSI
0.52.15 31 de gener del 2023 — 64 bits MSI
0.52.14 30 de gener del 2023 — 64 bits MSI
0.52.13 26 de gener del 2023 — 64 bits MSI
0.52.12 26 de gener del 2023 — 64 bits MSI
0.52.11 26 de gener del 2023 — 64 bits MSI
0.52.10 23 de gener del 2023 — 64 bits MSI
0.52.9 21 de gener del 2023 — 64 bits MSI
0.52.8 20 de gener del 2023 — 64 bits MSI
0.52.7 20 de gener del 2023 — 64 bits MSI
0.52.6 18 de gener del 2023 — 64 bits MSI
0.52.5 18 de gener del 2023 — 64 bits MSI
0.52.4 12 de gener del 2023 — 64 bits MSI
0.52.3 11 de gener del 2023 — 64 bits MSI
0.52.2 11 de gener del 2023 — 64 bits MSI
0.52.1 7 de gener del 2023 — 64 bits MSI
0.52.0 5 de gener del 2023 — 64 bits MSI
0.51.15 4 de gener del 2023 — 64 bits MSI
0.51.14 22 de desembre del 2022 — 64 bits MSI
0.51.13 15 de desembre del 2022 — 64 bits MSI
0.51.12 13 de desembre del 2022 — 64 bits MSI
0.51.11 9 de desembre del 2022 — 64 bits MSI
0.51.10 8 de desembre del 2022 — 64 bits MSI
0.51.9 2 de desembre del 2022 — 64 bits MSI
0.51.8 30 de novembre del 2022 — 64 bits MSI
0.51.7 29 de novembre del 2022 — 64 bits MSI
0.51.6 29 de novembre del 2022 — 64 bits MSI
0.51.5 23 de novembre del 2022 — 64 bits MSI
0.51.4 19 de novembre del 2022 — 64 bits MSI
0.51.3 18 de novembre del 2022 — 64 bits MSI
0.51.2 16 de novembre del 2022 — 64 bits MSI
0.51.1 15 de novembre del 2022 — 64 bits MSI
0.51.0 14 de novembre del 2022 — 64 bits MSI
0.50.17 14 de novembre del 2022 — 64 bits MSI
0.50.16 12 de novembre del 2022 — 64 bits MSI
0.50.15 10 de novembre del 2022 — 64 bits MSI
0.50.14 5 de novembre del 2022 — 64 bits MSI
0.50.13 5 de novembre del 2022 — 64 bits MSI
0.50.12 2 de novembre del 2022 — 64 bits MSI
0.50.11 30 d’octubre del 2022 — 64 bits MSI
0.50.10 27 d’octubre del 2022 — 64 bits MSI
0.50.9 26 d’octubre del 2022 — 64 bits MSI
0.50.8 23 d’octubre del 2022 — 64 bits MSI
0.50.7 21 d’octubre del 2022 — 64 bits MSI
0.50.6 20 d’octubre del 2022 — 64 bits MSI
0.50.5 17 d’octubre del 2022 — 64 bits MSI
0.50.4 14 d’octubre del 2022 — 64 bits MSI
0.50.3 12 d’octubre del 2022 — 64 bits MSI
0.50.2 8 d’octubre del 2022 — 64 bits MSI
0.50.1 4 d’octubre del 2022 — 64 bits MSI
0.50.0 30 de setembre del 2022 — 64 bits MSI
0.41.7 29 de setembre del 2022 — 64 bits MSI
0.41.6 29 de setembre del 2022 — 64 bits MSI
0.41.5 21 de setembre del 2022 — 64 bits MSI
0.41.4 16 de setembre del 2022 — 64 bits MSI
0.41.3 14 de setembre del 2022 — 64 bits MSI
0.41.2 13 de setembre del 2022 — 64 bits MSI
0.41.1 9 de setembre del 2022 — 64 bits MSI
0.41.0 8 de setembre del 2022 — 64 bits MSI
0.40.32 31 d’agost del 2022 — 64 bits MSI
0.40.31 30 d’agost del 2022 — 64 bits MSI
0.40.30 29 d’agost del 2022 — 64 bits MSI
0.40.29 25 d’agost del 2022 — 64 bits MSI
0.40.28 24 d’agost del 2022 — 64 bits MSI
0.40.27 18 d’agost del 2022 — 64 bits MSI
0.40.26 17 d’agost del 2022 — 64 bits MSI
0.40.25 17 d’agost del 2022 — 64 bits MSI
0.40.24 18 d’agost del 2022 — 64 bits MSI
0.40.23 17 d’agost del 2022 — 64 bits MSI
0.40.22 4 d’agost del 2022 — 64 bits MSI
0.40.21 2 d’agost del 2022 — 64 bits MSI
0.40.20 25 de juliol del 2022 — 64 bits MSI
0.40.19 19 de juliol del 2022 — 64 bits MSI
0.40.18 18 de juliol del 2022 — 64 bits MSI
0.40.17 13 de juliol del 2022 — 64 bits MSI
0.40.16 9 de juliol del 2022 — 64 bits MSI
0.40.15 5 de juliol del 2022 — 64 bits MSI
0.40.13 2 de juliol del 2022 — 64 bits MSI
0.40.12 27 de juny del 2022 — 64 bits MSI
0.40.11 23 de juny del 2022 — 64 bits MSI
0.40.10 17 de juny del 2022 — 64 bits MSI
0.40.9 11 de juny del 2022 — 64 bits MSI
0.40.8 10 de juny del 2022 — 64 bits MSI
0.40.7 9 de juny del 2022 — 64 bits MSI
0.40.6 8 de juny del 2022 — 64 bits MSI
0.40.5 4 de juny del 2022 — 64 bits MSI
0.40.4 19 de maig del 2022 — 64 bits MSI
0.40.3 18 de maig del 2022 — 64 bits MSI
0.40.2 18 de maig del 2022 — 64 bits MSI
0.40.1 17 de maig del 2022 — 64 bits MSI
0.40.0 6 de maig del 2022 — 64 bits MSI
0.39.5 30 d’abril del 2022 — 64 bits MSI
0.39.4 28 d’abril del 2022 — 64 bits MSI
0.39.3 27 d’abril del 2022 — 64 bits MSI
0.39.2 23 d’abril del 2022 — 64 bits MSI
0.39.1 23 d’abril del 2022 — 64 bits MSI
0.39.0 15 d’abril del 2022 — 64 bits MSI
0.38.0 11 d’abril del 2022 — 64 bits MSI
0.37.9 3 d’abril del 2022 — 64 bits MSI
0.37.8 30 de març del 2022 — 64 bits MSI
0.37.7 24 de març del 2022 — 64 bits MSI
0.37.6 19 de març del 2022 — 64 bits MSI
0.37.5 12 de març del 2022 — 64 bits MSI
0.37.4 7 de març del 2022 — 64 bits MSI
0.37.3 1 de març del 2022 — 64 bits MSI
0.37.2 1 de març del 2022 — 64 bits MSI
0.37.1 16 de febrer del 2022 — 64 bits MSI
0.37.0 16 de febrer del 2022 — 64 bits MSI
0.36.2 13 de febrer del 2022 — 64 bits MSI
0.36.1 5 de febrer del 2022 — 64 bits MSI
0.36.0 1 de febrer del 2022 — 64 bits MSI
0.35.10 2 de febrer del 2022 — 64 bits MSI
0.35.9 28 de gener del 2022 — 64 bits MSI
0.35.8 25 de gener del 2022 — 64 bits MSI
0.35.7 21 de gener del 2022 — 64 bits MSI
0.35.6 20 de gener del 2022 — 64 bits MSI
0.35.5 19 de gener del 2022 — 64 bits MSI
0.35.4 11 de gener del 2022 — 64 bits MSI
0.35.3 7 de gener del 2022 — 64 bits MSI
0.35.2 7 de gener del 2022 — 64 bits MSI
0.35.1 7 de gener del 2022 — 64 bits MSI
0.35.0 29 de desembre del 2021 — 64 bits MSI
0.34.9 15 de desembre del 2021 — 64 bits MSI
0.34.8 8 de desembre del 2021 — 64 bits MSI
0.34.7 3 de desembre del 2021 — 64 bits MSI
0.34.6 1 de desembre del 2021 — 64 bits MSI
0.34.5 23 de novembre del 2021 — 64 bits MSI
0.34.4 19 de novembre del 2021 — 64 bits MSI
0.34.3 19 de novembre del 2021 — 64 bits MSI
0.34.2 15 de novembre del 2021 — 64 bits MSI
0.34.1 15 de novembre del 2021 — 64 bits MSI
0.34.0 12 de novembre del 2021 — 64 bits MSI
0.33.1 5 de novembre del 2021 — 64 bits MSI
0.32.2 1 de novembre del 2021 — 64 bits MSI
0.32.1 26 d’octubre del 2021 — 64 bits MSI
0.32.0 22 d’octubre del 2021 — 64 bits MSI
0.31.0 20 d’octubre del 2021 — 64 bits MSI
0.30.3 12 d’octubre del 2021 — 64 bits MSI
0.30.2 7 d’octubre del 2021 — 64 bits MSI
0.30.1 7 d’octubre del 2021 — 64 bits MSI
0.30.0 6 d’octubre del 2021 — 64 bits MSI
0.28.5 25 de setembre del 2021 — 64 bits MSI
0.28.4 17 de setembre del 2021 — 64 bits MSI
0.28.3 16 de setembre del 2021 — 64 bits MSI
0.28.2 2 de setembre del 2021 — 64 bits MSI
0.28.1 1 de setembre del 2021 — 64 bits MSI
0.28.0 31 d’agost del 2021 — 64 bits MSI
0.27.4.2 20 d’agost del 2021 — 64 bits MSI
0.27.4 17 d’agost del 2021 — 64 bits MSI
0.27.3 13 d’agost del 2021 — 64 bits MSI
0.27.2 4 d’agost del 2021 — 64 bits MSI
0.27.1 30 de juliol del 2021 — 64 bits MSI
0.27.0 22 de juliol del 2021 — 64 bits MSI
0.26.11 16 de juliol del 2021 — 64 bits MSI
0.26.6 30 de maig del 2021 — 64 bits MSI
0.26.5 22 de maig del 2021 — 64 bits MSI
0.26.2 2 de maig del 2021 — 64 bits MSI
0.24.0 30 de març del 2021 — 64 bits MSI
0.23.7 30 de març del 2021 — 64 bits MSI
0.23.6 30 de març del 2021 — 64 bits MSI

El més popular a Bases de dades

Mostra-ho tot
  1. MariaDBBases de dades · MariaDB Corporation Ab
  2. HeidiSQLBases de dades · Ansgar Becker
  3. SQLiteBases de dades · SQLite
  4. DoltBases de dades · DoltHub
  5. Redis on WindowsBases de dades · MSOpenTech
  6. MongoDBBases de dades · MongoDB Inc
  7. DB Browser for SQLiteBases de dades · DB Browser for SQLite Team
  8. Beekeeper StudioBases de dades · Beekeeper Studio Team
  9. LiquibaseBases de dades · Liquibase
  10. Another Redis Desktop ManagerBases de dades · Another

Etiquetes

Comparteix