Vitess
v23.0.6Storage & DataA maintenance release with correctness fixes and dependency updates. The `/debug/vrlog` removal and newly enforced safety limits affect operators using those paths.
Action needed (2)
breakingRecursion-depth limit on the streaming recursive CTE path
A recursion-depth limit is enforced on the streaming recursive CTE path.
breakingStored-procedure safety checks on the streaming
CALLpathStored-procedure safety checks are enforced on the streaming
CALLpath.
Check if affected (1)
breakingThe
/debug/vrlogendpoint, removedApplies if you use
/debug/vrlog.The
/debug/vrlogendpoint no longer exists in this release.
Plan ahead (1)
deprecatedThe
--vreplication-enable-http-logflag, deprecatedremoval planned in v26Applies if you configure
--vreplication-enable-http-log.The
--vreplication-enable-http-logflag is now a deprecated no-op and is scheduled for removal in v26.
All 35 other recorded changesfixes 29 · value changes 4 · constraints 1 · defaults 1
fixes (29)
reparentutil: order reparent candidates by GTID dominance for a consistent sort (#20728) [#20757](https://github.com/vitessio/vitess/pull/20757)- mysql/json: fix MarshalTo discarding accumulated output for nested blob and bit values (#20625) [#20655](https://github.com/vitessio/vitess/pull/20655)
- VDiff: stop pre-seeding a bogus category in TableDiffPhaseTimings (#20713) [#20716](https://github.com/vitessio/vitess/pull/20716)
- Properly handle vstream filter predicates with multi-col PKs (#20858) [#20864](https://github.com/vitessio/vitess/pull/20864)
- vstreamer: don't drop a SET column's 64th member (#20450) [#20455](https://github.com/vitessio/vitess/pull/20455)
- VReplication: reconcile in-memory workflow state metric from the persisted row (#20442) [#20500](https://github.com/vitessio/vitess/pull/20500)
- binlog: escape JSON diff paths when generating diff SQL (#20461) [#20528](https://github.com/vitessio/vitess/pull/20528)
- workflow: escape tenant id and column name in getTenantClause (#20413) [#20532](https://github.com/vitessio/vitess/pull/20532)
- VReplication: Avoid sending mixed batch of row changes to bulk insert or bulk delete in vplayer batch mode (#20565) [#20587](https://github.com/vitessio/vitess/pull/20587)
- VReplication: only build a bulk-delete plan for insertNormal table plans (#20889) [#20920](https://github.com/vitessio/vitess/pull/20920)
- VReplication: don't count throttled time in the vplayer stall deadline (#20925) [#20949](https://github.com/vitessio/vitess/pull/20949)
- Preserve query hints in field/impossible queries (#20366) [#20398](https://github.com/vitessio/vitess/pull/20398)
- vtgate: copy bindVars per source in streaming Concatenate (#20436) [#20490](https://github.com/vitessio/vitess/pull/20490)
- evalengine: don't append a NUL byte to TO_BASE64 output at exact 57 byte multiples (#20474) [#20502](https://github.com/vitessio/vitess/pull/20502)
- mysql: encode zero DATE/DATETIME/TIMESTAMP values as zero-length in the binary protocol (#20460) [#20506](https://github.com/vitessio/vitess/pull/20506)
- vtgate: copy execute options per scatter call for FetchLastInsertId (#20439) [#20523](https://github.com/vitessio/vitess/pull/20523)
- vtgate: do not autocommit per-chunk in streaming insert-select (#20497) [#20525](https://github.com/vitessio/vitess/pull/20525)
- evalengine: round DOUBLE ties half to even in ROUND() like MySQL (#20476) [#20530](https://github.com/vitessio/vitess/pull/20530)
- grpcvtgateconn: stop mutating shared dial options slice (#20580) [#20583](https://github.com/vitessio/vitess/pull/20583)
- Fix ExecuteMulti timeout context reuse (#20445) [#20606](https://github.com/vitessio/vitess/pull/20606)
- evalengine: stop RPAD growing its operand in place (#20697) [#20707](https://github.com/vitessio/vitess/pull/20707)
- evalengine: stop the binary bitwise operators writing over and marking their result (#20696) [#20709](https://github.com/vitessio/vitess/pull/20709)
- evalengine: collapse the VM stack when a later LOCATE or SUBSTRING operand is NULL (#20645) [#20714](https://github.com/vitessio/vitess/pull/20714)
- vttablet: roll back canceled schema reload on a non-cancelable context (#20385) [#20400](https://github.com/vitessio/vitess/pull/20400)
- vreplication: prevent vttablet panic on malformed
RowChangeimages (#20377) [#20408](https://github.com/vitessio/vitess/pull/20408) - txthrottler: don't panic on target_replication_lag_sec of 1 (#20554) [#20558](https://github.com/vitessio/vitess/pull/20558)
- vttablet: perform an initial heartbeat read when opening the heartbeat reader (#20868) [#20905](https://github.com/vitessio/vitess/pull/20905)
reparentutil: keep nil-alias tablets out of candidate ordering (#20762) [#20767](https://github.com/vitessio/vitess/pull/20767)- evalengine: use MySQL 1-based ordinal for ENUM in numeric context (#20454) [#20458](https://github.com/vitessio/vitess/pull/20458)
value changes (4)
- Upgrade the Golang version to
go1.[#20519](https://github.com/vitessio/vitess/pull/20519)25. 12 - Upgrade the Golang version to
go1.[#20835](https://github.com/vitessio/vitess/pull/20835)25. 13 - go/mysql: streaming errors no longer surface as connection loss (#20383) [#20540](https://github.com/vitessio/vitess/pull/20540)
go/mysql: send ERR instead of teardown after an OK carryingSERVER_MORE_RESULTS_EXISTS(#20563) [#20666](https://github.com/vitessio/vitess/pull/20666)
constraints (1)
- vtgate: support prepared statements with a leading WITH clause (#20665) [#20705](https://github.com/vitessio/vitess/pull/20705)
defaults (1)
- mysqlctl: force TZ=UTC for mysqlbinlog during point-in-time restore (#20463) [#20508](https://github.com/vitessio/vitess/pull/20508)
A weekly email arrives when a release needs action. Like the breaking changes in this release.