Merged PRs
dolt
- 12354: Fix merge-preview schema order when rekeying the ancestor
Preserve the(base, ours, theirs)order returned byapplySchemaFallbackswhen binding and returning conflict schemas. This letsConflictBaseSchemarekey the actual ancestor and prevents shifted values fromdolt_preview_merge_conflictsafter both branches change the primary key.
Existing normal/prepared regressions fail before and pass after; the original schema-layout regressions and the full Dolt engine suite also pass against GMS main.
Follow-up to #12333 and #12334. Addresses the inherited Dolt integration failures observed on GMS #4117. - 12348: Preserve inline indexes when writing temporary tables
The first write to a temporary table could erase its inline indexes because the row editor still used the pre-index schema. Refresh the schema and write session after creating an index, with MySQL-only regressions for CTAS, subsequent writes, and UNIQUE enforcement.
go-mysql-server
- 4117: Report actual column collations in SHOW FULL COLUMNS
SHOW FULL COLUMNSreports the effective column collation instead of the default, including for ENUM and SET. Binary SQL types and binary-charset ENUM/SET retain NULL.
Adds one compact shared regression covering 21 columns, inherited and alternate collations, views, aliases, and filtering. Collation, query, view, and modify-column engine suites pass; metadata was also checked against MySQL 8.4.11 and a locally built Dolt CLI.
Fixes #12344 - 4109: Resolve inherited defaults in indexed CREATE TABLE ... SELECT
Resolve inherited stored defaults before analyzingCREATE TABLE ... SELECTwith inline indexes, avoidingplan is not resolvedwhile preserving the defaults. Adds a MySQL-specific regression verified against MySQL 8.4. - 4100: Preserve index lookups during join replanning
PreserveIndexedTableAccessnodes during join replanning so indexed-only tables retain their lookup. This prevents a panic inDELETEqueries combiningIN,NOT EXISTS, andORDER BY ... LIMIT.
Fixes #12235 - 4099: sql/expression/function: unwrap out-of-band blob arguments at use
Fix #12263 - 4098: sql: check generated SET target by table, not name
Fix #12238 - 4094: Support unary bitwise complement
Support unary~for numeric and binary operands, preserving full-width masks in mixed signed/unsigned bit operations.
Related to #12284.
vitess
- 505: sqlparser: left-recurse comparisons so chains group left
Fix #12345
Close #504
Block dolthub/go-mysql-server#4118 - 502: fix(mysql): honor GTID payloads regardless of request flags
Debezium's MySQL binlog client sendsCOM_BINLOG_DUMP_GTIDwith flags0and a valid binary SID block. The parser currently discards that checkpoint unlessBINLOG_THROUGH_GTIDis set; Dolt consequently replays historical transactions, which can fail Debezium when old DDL is applied to its current schema snapshot. See dolthub/dolt#12241 for the wire-level reproduction and MySQL history.
This backports vitessio/vitess#17580:- Read the GTID payload independently of the flag, before handling nonblocking EOF.
- Set
BINLOG_THROUGH_GTIDon outgoing requests. - Port the SID and request-flag test changes using this fork's existing test conventions.
The fork requires two adaptations: retainNewMysql56GTIDSetFromSIDBlockinstead of upstream's historical textual decoder, and omit upstream's filename-dependent flag branch because this sender always uses an empty filename. The backport also bounds-checks the declared payload length and adds parser regressions covering flags0,2, and4, zero-length/empty SID payloads, nonblocking requests, and malformed/truncated payloads.
Validation on Apple Silicon macOS: - Passed
go test ./go/mysql -run '^(TestComBinlogDump.*|TestSIDs|TestMysql56GTIDSet.*)$' -count=1with Go 1.27.3. - Built Dolt 2.6.1 with this patch and passed the issue's isolated wire-protocol reproduction for both flags
0and4; each excluded the checkpoint and delivered a new row. Stock 2.6.1 fails by replaying transaction 1. - The complete
go test ./go/mysql -count=1run failedTestServer,TestClearTextServer, andTestDialogServerbecauseVT_MYSQL_ROOTis unset andmysqldis unavailable. Native Linux and full Debezium startup were not tested.
Dolt will need to update its Vitess dependency after this is merged.