Merged PRs
dolt
- 10629: go: Optimize backups to more often transit existing table files instead of doing a merkle dag walk to push missing chunks.
There are two code paths for taking a logical backup of a Dolt database. One pushes all the existing table files to the backup destination and then sets it up so that it points at the same root value as the existing database. The other code path does the merkle dag walk to push all the missing chunks to the destination store, starting from the desired root value chunk.
If the destination store is missing a lot of data, this later path currently requires a lot of bookkeeping to keep track of what has been pushed so far and what still needs to be pushed. This is expensive in memory. It requires walking large portions of the existing database, chunk by chunk, which can be expensive in CPU and in I/O seeks.
This code change seeks to use the code path which uploads existing table files more often when it is the best choice. In order to do so, the code path is now willing to convert a journal file, which should never be pushed to a remote or a backup, into a table file. It will do this on the fly, and will only upload the resulting table file to the destination. The table file does not become part of the source store, and this code path has no interaction with GC.
For now, there are some hardcoded heuristics for when to prefer pushing existing table files rather than trying to build the upload chunk-by-chunk. This PR uses existing table files when: the destination store is empty (has a zero root hash value) and there is no existing journal file or the existing journal file is less than 20% of the total repo size and the existing journal file is less than 16GB. - 10621: Bug fix: binlog serialization of empty TEXT values
This change fixes a bug that caused emptyTEXTfields to trigger a panic when serialized to a binlog.
Related to: #10601 - 10595: Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /go
Bumps go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0.Changelog
Sourced from go.opentelemetry.io/otel/sdk's changelog.
[1.40.0/0.62.0/0.16.0] 2026-02-02
Added
- Add
AlwaysRecordsampler ingo.opentelemetry.io/otel/sdk/trace. (#7724) - Add
Enabledmethod to all synchronous instrument interfaces (Float64Counter,Float64UpDownCounter,Float64Histogram,Float64Gauge,Int64Counter,Int64UpDownCounter,Int64Histogram,Int64Gauge,) ingo.opentelemetry.io/otel/metric. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (#7763) - Add
go.opentelemetry.io/otel/semconv/v1.39.0package. The package contains semantic conventions from thev1.39.0version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade fromgo.opentelemetry.io/otel/semconv/v1.38.0.(#7783, #7789)
Changed
- Improve the concurrent performance of
HistogramReservoiringo.opentelemetry.io/otel/sdk/metric/exemplarby 4x. (#7443) - Improve the concurrent performance of
FixedSizeReservoiringo.opentelemetry.io/otel/sdk/metric/exemplar. (#7447) - Improve performance of concurrent histogram measurements in
go.opentelemetry.io/otel/sdk/metric. (#7474) - Improve performance of concurrent synchronous gauge measurements in
go.opentelemetry.io/otel/sdk/metric. (#7478) - Add experimental observability metrics in
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric. (#7492) Exporteringo.opentelemetry.io/otel/exporters/prometheusignores metrics with the scopego.opentelemetry.io/contrib/bridges/prometheus. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (#7688)- Improve performance of concurrent exponential histogram measurements in
go.opentelemetry.io/otel/sdk/metric. (#7702) - The
rpc.grpc.status_codeattribute in the experimental metrics emitted fromgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpcis replaced with therpc.response.status_codeattribute to align with the semantic conventions. (#7854) - The
rpc.grpc.status_codeattribute in the experimental metrics emitted fromgo.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpcis replaced with therpc.response.status_codeattribute to align with the semantic conventions. (#7854)
Fixed
- Fix bad log message when key-value pairs are dropped because of key duplication in
go.opentelemetry.io/otel/sdk/log. (#7662) - Fix
DroppedAttributesonRecordingo.opentelemetry.io/otel/sdk/logto not count the non-attribute key-value pairs dropped because of key duplication. (#7662) - Fix
SetAttributesonRecordingo.opentelemetry.io/otel/sdk/logto not log that attributes are dropped when they are actually not dropped. (#7662) - Fix missing
request.GetBodyingo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpto correctly handle HTTP/2GOAWAYframe. (#7794) WithHostIDdetector ingo.opentelemetry.io/otel/sdk/resourceto use full path forioregcommand on Darwin (macOS). (#7818)
Deprecated
- Deprecate
go.opentelemetry.io/otel/exporters/zipkin. For more information, see the OTel blog post deprecating the Zipkin exporter. (#7670)
[1.39.0/0.61.0/0.15.0/0.0.14] 2025-12-05
Added
- Greatly reduce the cost of recording metrics in
go.opentelemetry.io/otel/sdk/metricusing hashing for map keys. (#7175) - Add
WithInstrumentationAttributeSetoption togo.opentelemetry.io/otel/log,go.opentelemetry.io/otel/metric, andgo.opentelemetry.io/otel/tracepackages. This provides a concurrent-safe and performant alternative toWithInstrumentationAttributesby accepting a pre-constructedattribute.Set. (#7287) - Add experimental observability for the Prometheus exporter in
go.opentelemetry.io/otel/exporters/prometheus. Check thego.opentelemetry.io/otel/exporters/prometheus/internal/xpackage documentation for more information. (#7345) - Add experimental observability metrics in
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#7353) - Add temporality selector functions
DeltaTemporalitySelector,CumulativeTemporalitySelector,LowMemoryTemporalitySelectortogo.opentelemetry.io/otel/sdk/metric. (#7434) - Add experimental observability metrics for simple log processor in
go.opentelemetry.io/otel/sdk/log. (#7548) - Add experimental observability metrics in
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#7459)
... (truncated)
Commits
a3a5317Release v1.40.0 (#7859)77785dachore(deps): update github/codeql-action action to v4.32.1 (#7858)56fa1c2chore(deps): update module github.com/clipperhouse/uax29/v2 to v2.5.0 (#7857)298cbedUpgrade semconv use to v1.39.0 (#7854)3264bf1refactor: modernize code (#7850)fd5d030chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27...8d3b4cbchore(deps): update actions/cache action to v5.0.3 (#7847)91f7cadchore(deps): update github.com/timakin/bodyclose digest to 73d1f95 (#7845)fdad1ebchore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27...c46d3bachore(deps): update golang.org/x/telemetry digest to fcf36f6 (#7843)- Additional commits viewable in compare view
[](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). - Add
- 10591: Support staging new tables with dolt add -p
When using 'dolt add -p' to stage rows from a new table (one that exists in working but not in staging), the workspace table UPDATE mechanism previously failed with 'table not found' because GetTableWriter looked for the table in the staging root where it didn't exist yet.
This change adds ensureTableExistsInStaging() which:- Checks if the table exists in staging (fast path - no-op)
- If not, checks if it exists in working
- If yes, creates an empty table in staging with the same schema
- Updates the session state to reflect the new staging root
The table is created empty (not copied with data) because 'dolt add -p' allows partial staging - each row selected by the user will be inserted individually into the staging table via the workspace table UPDATE.
Also adds unit tests and BATS integration tests for the new functionality.
Example usage: https://gist.github.com/nullun/e88cb2dab9568c6612c98d415a4a2efd
go-mysql-server
- 3455: Do not convert AntiJoins to LeftOuterJoin when inside an Update node
fixes #10600 - 3452: lazy sql-mode string
This PR moves sqlModeString construction to theString()to avoid unnecessary sorting and string operations.
Additionally adds custom comma separating code to avoid library calls and memory allocations.
On my M4 Mac:
Original:232.3 ns/op
Lazy String:135.5 ns/op
Custom Sep:105.3 ns/op - 3448: Move
/guard on new databases to Dolt and addsql.ErrWrongDBNameandsql.SQLErrorto automatically add other error metadata
Parent #10431 - 3439: Bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 in /_integration/go
Bumps filippo.io/edwards25519 from 1.1.0 to 1.1.1.Commits
d1c650aextra: initialize receiver in MultiScalarMult- See full diff in compare view
[](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/go-mysql-server/network/alerts). - 3437: Bump filippo.io/edwards25519 from 1.1.0 to 1.1.1
Bumps filippo.io/edwards25519 from 1.1.0 to 1.1.1.Commits
d1c650aextra: initialize receiver in MultiScalarMult- See full diff in compare view
[](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/go-mysql-server/network/alerts).