This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
Summary
AI summarydolt, go-mysql-server, vitess updates include race‑condition fix, adaptive‑value ordering, NOT VALID constraint support, and index name generator
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Adds support for NOT VALID on foreign key and check constraints. Adds support for NOT VALID on foreign key and check constraints. Source: llm_adapter@2026-06-06 Confidence: high |
— |
| Feature | Low |
Implements IndexNameGenerator interface for custom index name generation. Implements IndexNameGenerator interface for custom index name generation. Source: llm_adapter@2026-06-06 Confidence: high |
— |
| Dependency | Low |
Bumps fslock in go.mod and adopts fallible New() requiring explicit Close(). Bumps fslock in go.mod and adopts fallible New() requiring explicit Close(). Source: llm_adapter@2026-06-06 Confidence: high |
— |
| Performance | Low |
Ensures adaptive‑encoded values are stored in lexical order for Doltgres compatibility. Ensures adaptive‑encoded values are stored in lexical order for Doltgres compatibility. Source: llm_adapter@2026-06-06 Confidence: high |
— |
| Bugfix | Medium |
Preserves table comment when PRIMARY KEY is a separate clause during indexed table creation. Preserves table comment when PRIMARY KEY is a separate clause during indexed table creation. Source: llm_adapter@2026-06-06 Confidence: high |
— |
| Bugfix | Medium |
Fixes race condition in acquiring auto increment locks. Fixes race condition in acquiring auto increment locks. Source: llm_adapter@2026-06-06 Confidence: low |
— |
| Bugfix | Low |
Corrects ALTER TABLE comment operation to return proper OK result schema. Corrects ALTER TABLE comment operation to return proper OK result schema. Source: llm_adapter@2026-06-06 Confidence: high |
— |
Full changelog
Merged PRs
dolt
- 11176: go/store/{val,prolly/tree}: Implement ValueContext for the places where we need a Context.
dolthub/driver directly consumes these values and has the abilityt to pass the correct Context instance. - 11172: bug fix for race condition in acquiring auto increment locks
The global auto increment tracker had a race condition in Next(). In interleaved mode (the default), a necessary table-level lock was not being taken, leading to a non-atomic get-increment-set race between two concurrent sessions. This was due to the lock mode being stored in the struct itself and only set during some code paths. The fix sets the lock mode value at startup.
The new test reliably reproduced the race condition before this patch. - 11170: fix: persist table comment on indexed table creation
SeparatePRIMARY KEYclause routes creation throughCreateIndexedTablewhich never sets schema comment.- Thread
commentthroughCreateIndexedTable
Fix dolthub/dolt#11163
Close dolthub/dolt#11175
- Thread
- 11168: add test for
ALTER TABLEcomment on primary key table
Fix dolthub/dolt#11164 - 11155: support NOT VALID for foreign key and check constraints
Depends on https://github.com/dolthub/vitess/pull/471 and https://github.com/dolthub/go-mysql-server/pull/3573 - 11149: Implement
IndexNameGeneratorinterface
Depends on: https://github.com/dolthub/go-mysql-server/pull/3571 - 11110: go/go.mod: Bump fslock, adopt fallible fslock.New() and the requirement to Close() the *Lock instance.
- 11001: Store adaptive-encoded values in lexical order
In Dolt, all adaptive-encoded values are stored in an arbitrary order according to their raw bytes.
This isn't a problem for Dolt, because keys on columns that will be adaptively encoded post 2.0 (TEXT, BLOB) all require a key prefix length, which is used by the secondary index to order the keys correctly.func compareAdaptiveValue(l, r AdaptiveValue) int { return bytes.Compare(l, r) }
But for Doltgres, it's possible to create indexes on TEXT and VARCHAR (no length) columns without a key prefix length. This means that adaptive-encoded values must be stored in a canonical order independent of whether the value is stored inline or out-of-band. Otherwise, various SQL engine optimizations, like removing the Sort operation on an index range scan, would not yield correct results in Doltgres. There are also many other known and unknown assumptions in Dolt and go-mysql-server that break if values in indexed columns are not stored in a consistent order. Additionally, enforcing a canonical order for such columns makes it possible to bring these enhancements to Dolt in the future (by relaxing MySQL's constraints on key lengths), or in new products we might build.
This PR sorts adaptive encoded values by adding a ValueStore param to theCompare()interface. It is unused except when comparing adaptive values.
The downside to this change is that we must perform 1 or 2 additional disk reads for each comparison of out-of-band values. This is a large performance penalty but is unavoidable, and should (we think) happen in a small minority of cases.
go-mysql-server
- 3579: make hashjoin compatible with doltgres
doltgres has different equality expressions, which prevented hashjoins from getting considered during join planning. - 3578: fix: retain table comment when primary key is a separate clause
CREATE TABLE ... COMMENT='c'dropped the comment whenPRIMARY KEYwas given as a separate clause.- Add a
commentparameter toIndexedTableCreator.CreateIndexedTableand thread it through the executor.
Block dolthub/dolt#11170
- Add a
- 3577: fix: return ok result schema for
ALTER TABLEcomment
AlterTableCommentyields anOkResultrow but reported the table schema, so schema-driven renderers (i.e. Dolt) formatted theOkResultagainst the first column and failed.
Block dolthub/dolt#11168
Fix dolthub/dolt#11164 - 3575: decompose tuple inequalities
This PR extends the tuple in filter decomposition logic to cover tuples in equallities and inequalities. - 3574: Ensure SchemaObjectNameValidator is used when a table is renamed
- 3573: support NOT VALID on foreign key and check constraints
Depends on https://github.com/dolthub/vitess/pull/471 - 3571: Add
IndexNameGeneratorinterface
NewIndexNameGeneratorinterface allows databases to customize the logic that generates index names when they aren't explicitly specified. - 3570: improvements to time to wire format
Should useapd.Decimal.Append()and faster way to append time strings.
Benchmarks: https://github.com/dolthub/dolt/pull/11130#issuecomment-4580541049 - 3568: bug fix for non-found search paths
- 3563: Introduce
SchemaObjectNameValidatorinterface
To support custom Postgresql logic for Doltgres, a new interface calledRelationNameValidatoris added.
vitess
- 471: add not valid on fkey and check constraints
- 470: Expand the set of function call expressions that can be used as a column default value without requiring parentheses.
These forms are not valid MySQL but are accepted by MariaDB. We should also accept them in order to have better compatibility with schemas created for MariaDB.
Closed Issues
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Beta — feedback welcome: [email protected]