Vitess
v23.0.6Storage & Data2026년 9월 3일
정확성 수정과 의존성 업데이트를 중심으로 한 유지보수 릴리스입니다. `VRLog` 제거와 새로 적용된 안전성 제한은 관련 기능을 사용하는 운영자의 확인이 필요합니다.
조치 필요 (2)
breaking스트리밍 재귀
CTE경로의 재귀 깊이 제한 적용스트리밍 재귀
CTE경로에 재귀 깊이 제한을 적용합니다.breaking스트리밍
CALL경로의 저장 프로시저 안전성 검사 적용스트리밍
CALL경로에 저장 프로시저 안전성 검사를 적용합니다.
영향 확인 (1)
breaking
/debug/vrlog엔드포인트 제거/debug/vrlog를 사용하는 경우에 적용됩니다./debug/vrlog엔드포인트가 더 이상 존재하지 않습니다.
미리 준비 (1)
deprecated
--vreplication-enable-http-log플래그 사용 중단v26에서 제거 예정--vreplication-enable-http-log를 설정한 경우에 적용됩니다.--vreplication-enable-http-log플래그는 이제 아무 동작도 하지 않는 사용 중단 상태이며,v26에서 제거됩니다.
그 외 기록된 변경 35건 전체fixes 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)
Vitess 스택에 추가
조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 브레이킹 체인지 같은 것들입니다.