You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
12354: Fix merge-preview schema order when rekeying the ancestor
Preserve the (base, ours, theirs) order returned by applySchemaFallbacks when binding and returning conflict schemas. This lets ConflictBaseSchema rekey the actual ancestor and prevents shifted values from dolt_preview_merge_conflicts after 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 COLUMNS reports 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 analyzing CREATE TABLE ... SELECT with inline indexes, avoiding plan is not resolved while preserving the defaults. Adds a MySQL-specific regression verified against MySQL 8.4.
4100: Preserve index lookups during join replanning
Preserve IndexedTableAccess nodes during join replanning so indexed-only tables retain their lookup. This prevents a panic in DELETE queries combining IN, NOT EXISTS, and ORDER 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.
502: fix(mysql): honor GTID payloads regardless of request flags
Debezium's MySQL binlog client sends COM_BINLOG_DUMP_GTID with flags 0 and a valid binary SID block. The parser currently discards that checkpoint unless BINLOG_THROUGH_GTID is 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_GTID on outgoing requests.
Port the SID and request-flag test changes using this fork's existing test conventions.
The fork requires two adaptations: retain NewMysql56GTIDSetFromSIDBlock instead 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 flags 0, 2, and 4, 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=1 with Go 1.27.3.
Built Dolt 2.6.1 with this patch and passed the issue's isolated wire-protocol reproduction for both flags 0 and 4; 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=1 run failed TestServer, TestClearTextServer, and TestDialogServer because VT_MYSQL_ROOT is unset and mysqld is unavailable. Native Linux and full Debezium startup were not tested.
Dolt will need to update its Vitess dependency after this is merged.
Closed Issues
12344: SHOW FULL COLUMNS reports the default collation for an explicitly collated column
12345: Chained comparisons fail to parse unless the first comparison is parenthesized