# Changelog of Vitess v14.0.0

### Announcement
#### CLI
* deprecation of CreateKeyspace flags [#10488](https://github.com/vitessio/vitess/pull/10488)
#### General
* v14 release notes: Online DDL is production ready [#10310](https://github.com/vitessio/vitess/pull/10310)
### Bug fixes
#### Backup and Restore
* Skip repl config in restore when active reparents disabled [#9675](https://github.com/vitessio/vitess/pull/9675)
#### Build/CI
* Permission fixes for Docker builds [#9619](https://github.com/vitessio/vitess/pull/9619)
* Fix output issue in the do_release script [#9621](https://github.com/vitessio/vitess/pull/9621)
* VReplication V2 test: bypass newly added lag test which is causing flakiness in CI [#9727](https://github.com/vitessio/vitess/pull/9727)
* Repair paths-filter workflows [#10087](https://github.com/vitessio/vitess/pull/10087)
* Make go version check reliable by using double brackets [#10125](https://github.com/vitessio/vitess/pull/10125)
#### Cluster management
* [grpcshim] Fix select race and move to internal package [#9116](https://github.com/vitessio/vitess/pull/9116)
* Use AllPrivs user for table GC transitions [#9690](https://github.com/vitessio/vitess/pull/9690)
* TabletManager: Check for context cancellation in loop within ChangeTabletType() [#9842](https://github.com/vitessio/vitess/pull/9842)
* [topo/helpers] Make CopyShardReplications idempotent [#9849](https://github.com/vitessio/vitess/pull/9849)
* Fix the race between PromoteReplica and replication manager tick [#9859](https://github.com/vitessio/vitess/pull/9859)
* Propagate error from 'updateLocked' to client [#10181](https://github.com/vitessio/vitess/pull/10181)
* Revert semi_sync change to reintroduce enable_semi_sync and remove durability_policy [#10201](https://github.com/vitessio/vitess/pull/10201)
* The flag --online_ddl_check_interval belongs in vtctld [#10320](https://github.com/vitessio/vitess/pull/10320)
* vt/wrangler: fix deleting primary tablet if `Shard` does not exist [#10373](https://github.com/vitessio/vitess/pull/10373)
* topo: cache CellInfo along with conn [#10408](https://github.com/vitessio/vitess/pull/10408)
#### Examples
* demo.go: fix call to ToBytes [#9615](https://github.com/vitessio/vitess/pull/9615)
* Use latest vitess-operator example CRDs [#9751](https://github.com/vitessio/vitess/pull/9751)
#### General
* Sanitize tx serializer log & error messages [#9802](https://github.com/vitessio/vitess/pull/9802)
* Changes for make tools [#10117](https://github.com/vitessio/vitess/pull/10117)
* Sanitize log messages [#10367](https://github.com/vitessio/vitess/pull/10367)
* Rename error sanitizer file to follow naming convention [#10406](https://github.com/vitessio/vitess/pull/10406)
#### Query Serving
* evalengine: numbers [#9623](https://github.com/vitessio/vitess/pull/9623)
* Extract collation data to enable distinct aggregation [#9639](https://github.com/vitessio/vitess/pull/9639)
* Add QueryRowsAffected and QueryRowsReturned to vttablet metrics and deprecate QueryRowCounts [#9656](https://github.com/vitessio/vitess/pull/9656)
* Use the gen4 planner for queries with outer joins [#9657](https://github.com/vitessio/vitess/pull/9657)
* Gen4: make sure to not merge unsharded tables from different keyspaces [#9665](https://github.com/vitessio/vitess/pull/9665)
* Parser fix for CREATE VIEW statement [#9693](https://github.com/vitessio/vitess/pull/9693)
* Add collation parsing to generated columns in Create Table [#9694](https://github.com/vitessio/vitess/pull/9694)
* Fixed missing order/group by, limit, having in derived [#9701](https://github.com/vitessio/vitess/pull/9701)
* Online DDL: resubmitting a migration with same UUID retries it in case it was cancelled or failed. [#9704](https://github.com/vitessio/vitess/pull/9704)
* Query plan/rules: apply for multi-table statement [#9747](https://github.com/vitessio/vitess/pull/9747)
* Add support for uint32 bind var + test [#9757](https://github.com/vitessio/vitess/pull/9757)
* Stop rewriting `JoinCondition` with `USING` [#9767](https://github.com/vitessio/vitess/pull/9767)
* Manage MySQL Replication Status States Properly [#9853](https://github.com/vitessio/vitess/pull/9853)
* Fix `__sq_has_values1` error with `PulloutSubquery` [#9855](https://github.com/vitessio/vitess/pull/9855)
* OnlineDDL executor: route all VReplicationExec through single function [#9861](https://github.com/vitessio/vitess/pull/9861)
* fix: planner panic on derived tables sorting in query builder  [#9869](https://github.com/vitessio/vitess/pull/9869)
* feat: add weightstring for distinct [#9874](https://github.com/vitessio/vitess/pull/9874)
* ORDER BY scoping rules should not be used in group_concat [#9939](https://github.com/vitessio/vitess/pull/9939)
* Fix: Sequence query to ignore reserved and transaction [#9968](https://github.com/vitessio/vitess/pull/9968)
* fix: dual query with exists clause having system table query in it [#9969](https://github.com/vitessio/vitess/pull/9969)
* fix: make concatenate and limit concurrent safe [#9979](https://github.com/vitessio/vitess/pull/9979)
* ApplySchema: allow-zero-in-date embedded as query comment in call to ExecuteFetchAsDba [#9998](https://github.com/vitessio/vitess/pull/9998)
* Fix: reserved connection retry logic when vttablet or mysql is down [#10005](https://github.com/vitessio/vitess/pull/10005)
* gen4: Fix sub query planning when the outer query is a dual query [#10007](https://github.com/vitessio/vitess/pull/10007)
* Fix parsing of bind variables in a few places [#10015](https://github.com/vitessio/vitess/pull/10015)
* Route explain tab plan to the proper Keyspace [#10027](https://github.com/vitessio/vitess/pull/10027)
* Re-add sanitize_log_messages flag and add tests for flags [#10049](https://github.com/vitessio/vitess/pull/10049)
* OnlineDDL: double statement validation upon submission [#10065](https://github.com/vitessio/vitess/pull/10065)
* Fix Gen4 only_full_group_by regression [#10069](https://github.com/vitessio/vitess/pull/10069)
* Fix Gen4 group/order by with derived table [#10074](https://github.com/vitessio/vitess/pull/10074)
* Only start SQL thread temporarily to WaitForPosition if needed [#10104](https://github.com/vitessio/vitess/pull/10104)
* Vitess online ddl: modify a column from textual to non-textual, ignore charset [#10116](https://github.com/vitessio/vitess/pull/10116)
* Fix StreamExecute in Gen4CompareV3 [#10122](https://github.com/vitessio/vitess/pull/10122)
* Do not mutate replication state in WaitSourcePos and ignore tablets with SQL_Thread stopped in ERS [#10148](https://github.com/vitessio/vitess/pull/10148)
* sqlparser: fix canonical formatting for enums [#10149](https://github.com/vitessio/vitess/pull/10149)
* Fix for empty results when no shards can be found to route to [#10152](https://github.com/vitessio/vitess/pull/10152)
* fix: handle reserved connection reset when tx killer has locked the connection [#10153](https://github.com/vitessio/vitess/pull/10153)
* Do not send field query when using reserved connection [#10163](https://github.com/vitessio/vitess/pull/10163)
* Backwards compatible replication status to state transition [#10167](https://github.com/vitessio/vitess/pull/10167)
* sqlparser: Handle case sensitive AST option for table options [#10191](https://github.com/vitessio/vitess/pull/10191)
* Emit the ENGINE field for table options as case sensitive [#10197](https://github.com/vitessio/vitess/pull/10197)
* check for connectionID before adding to querylist [#10212](https://github.com/vitessio/vitess/pull/10212)
* Fix handling of unsigned and zerofill in parser and normalization [#10220](https://github.com/vitessio/vitess/pull/10220)
* Fix parsing of the foreign key constraint actions in different order [#10224](https://github.com/vitessio/vitess/pull/10224)
* Fix handling of VISIBLE or INVISIBLE keyword on indexes [#10243](https://github.com/vitessio/vitess/pull/10243)
* plancache: Lazy sysvar planner functions [#10248](https://github.com/vitessio/vitess/pull/10248)
* evalengine: proper float to integer conversions [#10252](https://github.com/vitessio/vitess/pull/10252)
* Fix formatting for function expressions and booleans [#10255](https://github.com/vitessio/vitess/pull/10255)
* fix: concatenate engine primitive [#10257](https://github.com/vitessio/vitess/pull/10257)
* fix: copy bindvariables in logstats [#10260](https://github.com/vitessio/vitess/pull/10260)
* Move all schemadiff comparisons to canonical form [#10261](https://github.com/vitessio/vitess/pull/10261)
* Do not cache plans that are invalid because of `--no_scatter` [#10279](https://github.com/vitessio/vitess/pull/10279)
* collations: map utf8 to utf8mb3 [#10287](https://github.com/vitessio/vitess/pull/10287)
* Fix parsing the special case convert charset logic [#10288](https://github.com/vitessio/vitess/pull/10288)
* Deprecate flag --online_ddl_check_interval [#10308](https://github.com/vitessio/vitess/pull/10308)
* Fix schema tracking issue when `PRIMARY` tablet changes [#10335](https://github.com/vitessio/vitess/pull/10335)
* Remove normalization of integral length types [#10336](https://github.com/vitessio/vitess/pull/10336)
* Fix failure when Unowned lookup IS NULL [#10346](https://github.com/vitessio/vitess/pull/10346)
* Fix for empty results when no shards can be found to route to [v3] [#10360](https://github.com/vitessio/vitess/pull/10360)
* Revert super_read_only config file changes [#10366](https://github.com/vitessio/vitess/pull/10366)
* OnlineDDL/vitess fix: convert data type to JSON  [#10390](https://github.com/vitessio/vitess/pull/10390)
* OnlineDDL/vrepl: more error codes, spatial types [#10394](https://github.com/vitessio/vitess/pull/10394)
* Online DDL fix: instant is possible for VIRTUAL, not STORED [#10411](https://github.com/vitessio/vitess/pull/10411)
* schemadiff: column name check in CHECK constraint is case insensitive [#10413](https://github.com/vitessio/vitess/pull/10413)
* making log sanitization more precise [#10417](https://github.com/vitessio/vitess/pull/10417)
* v3: Fix issue when no routes are found from a lookup [#10422](https://github.com/vitessio/vitess/pull/10422)
* fix: use vcursor to execute the projection input [#10435](https://github.com/vitessio/vitess/pull/10435)
* Tablet throttler: dynamic ThrottleMetricThreshold [#10439](https://github.com/vitessio/vitess/pull/10439)
* Change use_super_read_only default back to false [#10448](https://github.com/vitessio/vitess/pull/10448)
* fix: scalar aggregation engine primitive [#10465](https://github.com/vitessio/vitess/pull/10465)
* fix: aggregation empty row on join with grouping and aggregations [#10480](https://github.com/vitessio/vitess/pull/10480)
* Backport to release-14: Fix parsing of CAST() statements #10512 and #10514 [#10517](https://github.com/vitessio/vitess/pull/10517)
* Fix casing of vitess migration syntax and comments printing [#10535](https://github.com/vitessio/vitess/pull/10535)
* VReplication: more unrecoverable error codes [#10559](https://github.com/vitessio/vitess/pull/10559)
* [14.0] fix: handle planner_version and planner-version correctly [#10604](https://github.com/vitessio/vitess/pull/10604)
#### VReplication
* Update error description for deprecated command [#9622](https://github.com/vitessio/vitess/pull/9622)
* Support VDiff across DB versions [#9679](https://github.com/vitessio/vitess/pull/9679)
* VReplication Workflows: Use WithDDL while updating time_heartbeat to be backwardly compatible with upgrades to existing cluster [#9700](https://github.com/vitessio/vitess/pull/9700)
* Externalize Lookup VIndexes properly when not stopping after copy [#9771](https://github.com/vitessio/vitess/pull/9771)
* Add TEXT field comparison support to evalengine (for VDiff) [#9790](https://github.com/vitessio/vitess/pull/9790)
* Add CHAR field comparison support to evalengine (for VDiff) [#9800](https://github.com/vitessio/vitess/pull/9800)
* Run WithDDL queries on tablet startup [#9817](https://github.com/vitessio/vitess/pull/9817)
* Check for nil vschema.Table in StreamMigrator [#9828](https://github.com/vitessio/vitess/pull/9828)
* Check if context is cancelled in applyEvents() loop to avoid deadlocks [#9833](https://github.com/vitessio/vitess/pull/9833)
* Change logic to reach desired _vt schema on vreplication startup [#9860](https://github.com/vitessio/vitess/pull/9860)
* VPlayer: use stored/binlogged ENUM index value in WHERE clauses [#9868](https://github.com/vitessio/vitess/pull/9868)
* vstreamer: flatten savepoint events [#9892](https://github.com/vitessio/vitess/pull/9892)
* vstreamer: do not forward savepoint events [#9907](https://github.com/vitessio/vitess/pull/9907)
* VReplication: use strict sql_mode for Online DDL [#9963](https://github.com/vitessio/vitess/pull/9963)
* VStreamer: recompute table plan if a new table is encountered for the same id [#9978](https://github.com/vitessio/vitess/pull/9978)
* Increase max vrepl workflow source definition size from 64KiB to 16MiB [#10018](https://github.com/vitessio/vitess/pull/10018)
* VReplication: maintain original column case for pkCols [#10033](https://github.com/vitessio/vitess/pull/10033)
* Avoid deadlocks related to 0 receiver behavior [#10132](https://github.com/vitessio/vitess/pull/10132)
* SwitchTraffic should switch everything when no tablet_types provided [#10434](https://github.com/vitessio/vitess/pull/10434)
* Cherry pick of VStream API: Fix vtgate memory leaks when context gets cancelled [#10576](https://github.com/vitessio/vitess/pull/10576)
#### VTAdmin
* [vtadmin] Update vtctld dialer to validate connectivity  [#9915](https://github.com/vitessio/vitess/pull/9915)
* [vtadmin-web] Fix default redirect on Tablet view [#10010](https://github.com/vitessio/vitess/pull/10010)
* [VTAdmin] Update dynamic clusters to accept no clusters [#10016](https://github.com/vitessio/vitess/pull/10016)
* [vtadmin] threadsafe dynamic clusters [#10044](https://github.com/vitessio/vitess/pull/10044)
* [vtadmin-web] Add `PORT=14201` to 'npm run local' to avoid CORS errors in dev mode [#10176](https://github.com/vitessio/vitess/pull/10176)
#### VTorc
* BugFix: Resolve Recoveries at the end [#10286](https://github.com/vitessio/vitess/pull/10286)
* Fix panic in VTOrc [#10519](https://github.com/vitessio/vitess/pull/10519)
#### vtexplain
* Case-insensitive planner-version flag in VTExplain [#10086](https://github.com/vitessio/vitess/pull/10086)
* fix: check that all keyspaces loaded successfully before using them [#10396](https://github.com/vitessio/vitess/pull/10396)
### CI/Build
#### Build/CI
* Remove deprecated upgrade-downgrade CI build [#9692](https://github.com/vitessio/vitess/pull/9692)
* Hack to allow `bootstrap.sh` to run cleanly on fresh M1 [#9723](https://github.com/vitessio/vitess/pull/9723)
* Fix `make embed_config` target [#9724](https://github.com/vitessio/vitess/pull/9724)
* Increase async IO threads count in CI [#9744](https://github.com/vitessio/vitess/pull/9744)
* Fix upgrade-downgrade CI workflows running even when Skip label specified [#9784](https://github.com/vitessio/vitess/pull/9784)
* Fix flakiness in TestShardedKeyspace [#9785](https://github.com/vitessio/vitess/pull/9785)
* [grpcvtctldclient] Fix vtctld server initialization in grpcvtctldclient/client_test.go [#9906](https://github.com/vitessio/vitess/pull/9906)
* Address flakiness of vreplication tests [#9935](https://github.com/vitessio/vitess/pull/9935)
* Properly generate vtgate_tablet_healthcheck_cache workflow [#9950](https://github.com/vitessio/vitess/pull/9950)
* Address flakiness of some cluster e2e tests [#9967](https://github.com/vitessio/vitess/pull/9967)
* Track full git sha1 string instead of the short version [#9970](https://github.com/vitessio/vitess/pull/9970)
* Set VTDATAROOT to /tmp/ folder in CI [#9980](https://github.com/vitessio/vitess/pull/9980)
* Flaky TestReparentDuringWorkerCopy fix [#9986](https://github.com/vitessio/vitess/pull/9986)
* Compatibility Fixes for 1.18 [#9992](https://github.com/vitessio/vitess/pull/9992)
* Move Shard 12 and 18 CI tests to self hosted runners [#10025](https://github.com/vitessio/vitess/pull/10025)
* Skip CI workflows based on the list of modified files [#10031](https://github.com/vitessio/vitess/pull/10031)
* Address flakiness of vreplication v2 workflow test [#10051](https://github.com/vitessio/vitess/pull/10051)
* makefile: bump vtprotobuf [#10078](https://github.com/vitessio/vitess/pull/10078)
* Use git command instead of GitHub API to list modified files [#10106](https://github.com/vitessio/vitess/pull/10106)
* Move tests from newfeaturetest to ers package after the release [#10121](https://github.com/vitessio/vitess/pull/10121)
* Remove vtadmin-down.sh from teardown.sh [#10136](https://github.com/vitessio/vitess/pull/10136)
* CODEOWNERS: specify messaging related folders [#10137](https://github.com/vitessio/vitess/pull/10137)
* bootstrap changelog [#10147](https://github.com/vitessio/vitess/pull/10147)
* Automatically comment Pull Request with the review checklist [#10155](https://github.com/vitessio/vitess/pull/10155)
* Applied some format check on the comment_pull_request workflow [#10179](https://github.com/vitessio/vitess/pull/10179)
* Address flakiness of vtgate_vindex.prefixfanout tests [#10216](https://github.com/vitessio/vitess/pull/10216)
* Flakes: Add retries to ZooKeeper unit test around startup [#10228](https://github.com/vitessio/vitess/pull/10228)
* CI: fix flaky test via extended timeout in vrepl_stress_suite [#10231](https://github.com/vitessio/vitess/pull/10231)
* Revert to using XtraBackup 2.4-latest now that 2.4.26 is out [#10241](https://github.com/vitessio/vitess/pull/10241)
* Check for vtadmin JS types drift in CI [#10256](https://github.com/vitessio/vitess/pull/10256)
* Fix `tabletmanager_throttler` flakyness: increase wait time [#10271](https://github.com/vitessio/vitess/pull/10271)
* CI: Add query retries to vttablet process [#10275](https://github.com/vitessio/vitess/pull/10275)
* remove references to MySQL and Percona 5.6 [#10295](https://github.com/vitessio/vitess/pull/10295)
* Aggregate static and other quick CI check actions to reduce #workflows [#10431](https://github.com/vitessio/vitess/pull/10431)
* fixing vrepl_stress_suite flakyness [#10441](https://github.com/vitessio/vitess/pull/10441)
* [14.0] Take into account `github.ref` when doing upgrade-downgrade tests [#10522](https://github.com/vitessio/vitess/pull/10522)
* add vtadmin web files to all lite images [#10581](https://github.com/vitessio/vitess/pull/10581)
#### Cluster management
* Add GuptaManan100 as a codeowner for VTOrc [#9846](https://github.com/vitessio/vitess/pull/9846)
* Flakiness fix for Upgrade Downgrade Backup Manual test [#9957](https://github.com/vitessio/vitess/pull/9957)
* fix endtoend onlineddl flakyness caused by --heartbeat_on_demand_duration [#10236](https://github.com/vitessio/vitess/pull/10236)
#### Documentation
* Add single self-hosted runner information [#9954](https://github.com/vitessio/vitess/pull/9954)
#### General
* docker: cleanup of release.sh [#9867](https://github.com/vitessio/vitess/pull/9867)
* ci: upgrade to Go 1.18 [#9893](https://github.com/vitessio/vitess/pull/9893)
* 1.18: rename interface{} to any [#9914](https://github.com/vitessio/vitess/pull/9914)
* Add Matt Lord to CODEOWNERS [#9920](https://github.com/vitessio/vitess/pull/9920)
* Upgrade main to `go1.18.1` [#10101](https://github.com/vitessio/vitess/pull/10101)
* Upgrade to `go1.18.3` [#10447](https://github.com/vitessio/vitess/pull/10447)
#### Governance
* Add @notfelineit to CODEOWNERS [#9613](https://github.com/vitessio/vitess/pull/9613)
* Update the comment for review checklist with an item for CI workflows [#10471](https://github.com/vitessio/vitess/pull/10471)
#### Query Serving
* More testing for vreplication unique key violation protection [#9988](https://github.com/vitessio/vitess/pull/9988)
* unit test: sort map before converting to string [#10119](https://github.com/vitessio/vitess/pull/10119)
* Fix to --heartbeat_on_demand_duration race condition [#10247](https://github.com/vitessio/vitess/pull/10247)
* OnlineDDL: adding an endtoend test to validate partial shard REVERT [#10338](https://github.com/vitessio/vitess/pull/10338)
#### TabletManager
* Alternate fix for flaky TestReparentDuringWorkerCopy [#10006](https://github.com/vitessio/vitess/pull/10006)
* Fix flakiness in TestHealthCheck [#10008](https://github.com/vitessio/vitess/pull/10008)
#### VTAdmin
* Add CI workflow for vtadmin-web unit tests [#9739](https://github.com/vitessio/vitess/pull/9739)
#### VTorc
* Also run VTOrc tests against MySQL 8.0 [#9974](https://github.com/vitessio/vitess/pull/9974)
### Dependabot
#### Examples
* build(deps): bump gopkg.in/yaml.v2 from 2.2.5 to 2.2.8 in /examples/are-you-alive [#9429](https://github.com/vitessio/vitess/pull/9429)
#### web UI
* build(deps): bump is-my-json-valid from 2.12.4 to 2.20.6 in /web/vtctld2 [#9602](https://github.com/vitessio/vitess/pull/9602)
### Documentation
#### Build/CI
* Tweak backport checklist item wording in pull_request_template.md [#10083](https://github.com/vitessio/vitess/pull/10083)
#### CLI
* [vtctldclient] Update CLI docs for usages, flags, and aliases [#10502](https://github.com/vitessio/vitess/pull/10502)
#### Documentation
* Update release notes with web/vtctld2 deprecation announcement and flag. [#9735](https://github.com/vitessio/vitess/pull/9735)
* Update v14 summary with the latest change to `JoinCondition` rewriting [#9786](https://github.com/vitessio/vitess/pull/9786)
* Add help text for LegacyVtctlCommand and VtctldCommand [#9837](https://github.com/vitessio/vitess/pull/9837)
* Add durability policy changes to the summary [#10392](https://github.com/vitessio/vitess/pull/10392)
#### Examples
* Fix commands in readme files to use double dashes for arguments [#10389](https://github.com/vitessio/vitess/pull/10389)
#### Governance
* update maintainers [#9825](https://github.com/vitessio/vitess/pull/9825)
* Add @ajm188 to codeowners for CLI-related packages [#9847](https://github.com/vitessio/vitess/pull/9847)
* Add systay as owner of vtexplain [#10403](https://github.com/vitessio/vitess/pull/10403)
* docs: added to the release notes [#10468](https://github.com/vitessio/vitess/pull/10468)
#### Query Serving
* Release notes on query serving [#10548](https://github.com/vitessio/vitess/pull/10548)
#### VTAdmin
* [vtadmin] Document known issue with node versions 17+ [#10483](https://github.com/vitessio/vitess/pull/10483)
#### VTorc
* Improve explanation of MySQLTopologyUser and MySQLReplicaUser so that their difference is clearer [#9743](https://github.com/vitessio/vitess/pull/9743)
### Enhancement
#### Build/CI
* Check for proto drift in the CI [#9644](https://github.com/vitessio/vitess/pull/9644)
* make generate_ci_workflows: mysql80 workflows for selected tests [#9740](https://github.com/vitessio/vitess/pull/9740)
* Improve upgrade downgrade workflows' strategy [#9745](https://github.com/vitessio/vitess/pull/9745)
* Add vitess/lite ubi8 images for mysql80, including for arm64 [#9830](https://github.com/vitessio/vitess/pull/9830)
* Unit test to confirm that the mysqlctl rice box is current [#10182](https://github.com/vitessio/vitess/pull/10182)
* Hints to git cli and github diff to hide diffs in proto generated files by default [#10306](https://github.com/vitessio/vitess/pull/10306)
#### CLI
* [vtctldclient] Add entrypoint for GetVersion rpc [#9994](https://github.com/vitessio/vitess/pull/9994)
#### Cluster management
* Change semi-sync information to use the parameter passed and deprecate enable_semi_sync [#9725](https://github.com/vitessio/vitess/pull/9725)
* Filter candidates which cannot make forward progress after ERS [#9765](https://github.com/vitessio/vitess/pull/9765)
* [vtctldserver] Add locking checks to Delete{Keyspace,Shard} [#9777](https://github.com/vitessio/vitess/pull/9777)
* [topo] ShardReplicationFix typed responses [#9876](https://github.com/vitessio/vitess/pull/9876)
* Improve network partitions handling [#9905](https://github.com/vitessio/vitess/pull/9905)
* tablet lag throttler: small API improvements [#10045](https://github.com/vitessio/vitess/pull/10045)
* OnlineDDL: skip GetSchema where possible [#10107](https://github.com/vitessio/vitess/pull/10107)
* Refresh ephemeral information before cluster operations in VTOrc [#10115](https://github.com/vitessio/vitess/pull/10115)
* On demand heartbeats via `--heartbeat_on_demand_duration`, used by the tablet throttler [#10198](https://github.com/vitessio/vitess/pull/10198)
* Adds DurabilityPolicy to the KeyspaceInfo in the topo and the associated RPCs [#10221](https://github.com/vitessio/vitess/pull/10221)
* Refactor Durability Policy implementation and usage to read the durability policy from the keyspace [#10375](https://github.com/vitessio/vitess/pull/10375)
* Fail if durability policy provided for snapshot keyspaces [#10395](https://github.com/vitessio/vitess/pull/10395)
* Use Durability Policy in the topo server in VTOrc and deprecate Durability config [#10423](https://github.com/vitessio/vitess/pull/10423)
* Adds RPCs to vttablet that vtorc requires [#10464](https://github.com/vitessio/vitess/pull/10464)
#### Documentation
* Add Matt Lord to maintainers [#10072](https://github.com/vitessio/vitess/pull/10072)
#### Evalengine
* evalengine: Use field information when doing type calculation on columns [#9807](https://github.com/vitessio/vitess/pull/9807)
#### Examples
* Add consul-topo for local example [#9806](https://github.com/vitessio/vitess/pull/9806)
* Add vtadmin to local example by default [#10430](https://github.com/vitessio/vitess/pull/10430)
* Halve request and double limit for RAM in the example cluster [#10450](https://github.com/vitessio/vitess/pull/10450)
#### General
* Binlog event parsing: better analysis ; support for semi-sync [#9596](https://github.com/vitessio/vitess/pull/9596)
* Support views in Online DDL [#9606](https://github.com/vitessio/vitess/pull/9606)
* [VEP-4, phase 1] Flag Deprecation Warnings [#9733](https://github.com/vitessio/vitess/pull/9733)
* Table lifecycle: support fast DROP TABLE introduced in MySQL 8.0.23 [#9778](https://github.com/vitessio/vitess/pull/9778)
* Fix rendering type in issue templates [#9836](https://github.com/vitessio/vitess/pull/9836)
* Flavor capabilities: MySQL GR and more [#10451](https://github.com/vitessio/vitess/pull/10451)
#### Query Serving
* Harmonize error codes for pool timeouts expiring across all pools [#9483](https://github.com/vitessio/vitess/pull/9483)
* Store innodbRowsRead in a Counter instead of a Gauge [#9609](https://github.com/vitessio/vitess/pull/9609)
* Improve performance of information schema query. [#9632](https://github.com/vitessio/vitess/pull/9632)
* OnlineDDL: reject duplicate UUID with different migration_context [#9637](https://github.com/vitessio/vitess/pull/9637)
* Reduce the number of reserved connections when setting system variables [#9641](https://github.com/vitessio/vitess/pull/9641)
* OnlineDDL: 'vitess' strategy, synonym for 'online' [#9642](https://github.com/vitessio/vitess/pull/9642)
* Gen4: Rework how aggregation is planned [#9643](https://github.com/vitessio/vitess/pull/9643)
* evalengine: More functions! [#9673](https://github.com/vitessio/vitess/pull/9673)
* Support for ALTER TABLE ... PARTITION BY ... [#9683](https://github.com/vitessio/vitess/pull/9683)
* OnlineDDL: force (once) vreplication's WithDDL to run before running a vitess migration [#9702](https://github.com/vitessio/vitess/pull/9702)
* Push projection to union [#9703](https://github.com/vitessio/vitess/pull/9703)
* Make gen4 the default planner for release 14 [#9710](https://github.com/vitessio/vitess/pull/9710)
* Cleanup of parsing of Partitions and additional parsing support [#9712](https://github.com/vitessio/vitess/pull/9712)
* Introducing schemadiff, a declarative diff for table/view CREATE statements [#9719](https://github.com/vitessio/vitess/pull/9719)
* Online DDL vitess migration's cut-over: query buffering [#9755](https://github.com/vitessio/vitess/pull/9755)
* Online DDL declarative migrations now use schemadiff, removing tengo [#9772](https://github.com/vitessio/vitess/pull/9772)
* Online DDL: ready_to_complete hint column [#9813](https://github.com/vitessio/vitess/pull/9813)
* Add parsing support for prepare statements [#9818](https://github.com/vitessio/vitess/pull/9818)
* mysql: add a flag to handle EnableQueryInfo [#9820](https://github.com/vitessio/vitess/pull/9820)
* Online DDL: vitess migrations cut-over to have zero race conditions [#9832](https://github.com/vitessio/vitess/pull/9832)
* Add parsing support for Trim grammar function [#9834](https://github.com/vitessio/vitess/pull/9834)
* Add parsing support for LATERAL keyword [#9843](https://github.com/vitessio/vitess/pull/9843)
* Add parsing support for JSON Utility Functions [#9850](https://github.com/vitessio/vitess/pull/9850)
* Remove the `Gateway` interface [#9852](https://github.com/vitessio/vitess/pull/9852)
* feat: make the join columns output easier to read [#9863](https://github.com/vitessio/vitess/pull/9863)
* Gen4: Add UPDATE planning [#9871](https://github.com/vitessio/vitess/pull/9871)
* Add parsing support for JSON_TABLE() [#9879](https://github.com/vitessio/vitess/pull/9879)
* Add parsing support for JSON value creators functions [#9880](https://github.com/vitessio/vitess/pull/9880)
* fix: allow multiple distinct columns on single shards [#9940](https://github.com/vitessio/vitess/pull/9940)
* Add parsing support for Json schema validation functions [#9971](https://github.com/vitessio/vitess/pull/9971)
* Add parsing support for JSON Search Functions [#9990](https://github.com/vitessio/vitess/pull/9990)
* deps: upgrade grpc and protobuf [#10024](https://github.com/vitessio/vitess/pull/10024)
* feat: allow more complex expressions to be used in outer queries [#10034](https://github.com/vitessio/vitess/pull/10034)
* schemadiff: load, normalize, validate and compare schemas [#10048](https://github.com/vitessio/vitess/pull/10048)
* Add parsing support for JSON value modification and attribute functions [#10062](https://github.com/vitessio/vitess/pull/10062)
* Always reset reserved shard session on CODE_UNAVAILABLE [#10063](https://github.com/vitessio/vitess/pull/10063)
* Adds parsing for NOW in DEFAULT clause [#10085](https://github.com/vitessio/vitess/pull/10085)
* Gen4 feature: optimize OR queries to IN [#10090](https://github.com/vitessio/vitess/pull/10090)
* Relax singleton-context constraint for pending non-singleton-context reverts [#10114](https://github.com/vitessio/vitess/pull/10114)
* Add parsing support for Partition Definitions [#10127](https://github.com/vitessio/vitess/pull/10127)
* feat gen4: allow pushing aggregations inside derived tables [#10128](https://github.com/vitessio/vitess/pull/10128)
* schemadiff: support for RangeRotationStrategy diff hint [#10131](https://github.com/vitessio/vitess/pull/10131)
* Avoid enabling reserved connection on show query [#10138](https://github.com/vitessio/vitess/pull/10138)
* Add support for non aggregated columns in `OrderedAggregate` [#10139](https://github.com/vitessio/vitess/pull/10139)
* schemadiff: CanonicalStatementString(), utilize sqlparser.CanonicalString() [#10142](https://github.com/vitessio/vitess/pull/10142)
* feat: make gen4 plan subsharding queries better [#10151](https://github.com/vitessio/vitess/pull/10151)
* schemadiff: EntityDiff has a 'Entities() (from Entity, to Entity)' function [#10161](https://github.com/vitessio/vitess/pull/10161)
* Introducing a SQL syntax to control and view Online DDL throttling [#10162](https://github.com/vitessio/vitess/pull/10162)
* feat: optimize EXISTS queries through AST rewriting [#10174](https://github.com/vitessio/vitess/pull/10174)
* schemadiff: logically Apply() a diff to a CreateTable, CreateView or to a Schema [#10183](https://github.com/vitessio/vitess/pull/10183)
* Using LCS to achieve shortest column reordering list [#10184](https://github.com/vitessio/vitess/pull/10184)
* enhancement: handle advisory locks  [#10186](https://github.com/vitessio/vitess/pull/10186)
* schemadiff: normalize() table. Set names to all keys [#10188](https://github.com/vitessio/vitess/pull/10188)
* schemadiff: validate() table structure at the end of apply() [#10189](https://github.com/vitessio/vitess/pull/10189)
* schemadiff: schema is immutable through Apply() [#10190](https://github.com/vitessio/vitess/pull/10190)
* VReplication: use PK equivalent (PKE) if no PK found [#10192](https://github.com/vitessio/vitess/pull/10192)
* Add parsing support for Window Functions [#10199](https://github.com/vitessio/vitess/pull/10199)
* schemadiff: normalize table options case [#10200](https://github.com/vitessio/vitess/pull/10200)
* Allow updating unowned lookup vindex columns. [#10207](https://github.com/vitessio/vitess/pull/10207)
* partial dml execution logic ehancement [#10223](https://github.com/vitessio/vitess/pull/10223)
* gen4: JOIN USING planning [#10226](https://github.com/vitessio/vitess/pull/10226)
* schemadiff: partitions validations [#10229](https://github.com/vitessio/vitess/pull/10229)
* Add parsing support for Subpartition Definitions [#10232](https://github.com/vitessio/vitess/pull/10232)
* schemadiff: analyze and apply ADD PARTITION and DROP PARTITION statements [#10234](https://github.com/vitessio/vitess/pull/10234)
* Add convenience functions for working with schemadiff objects [#10238](https://github.com/vitessio/vitess/pull/10238)
* Add parsing support for expressions in index definitions [#10240](https://github.com/vitessio/vitess/pull/10240)
* Update the parsing support for JSON_VALUE [#10242](https://github.com/vitessio/vitess/pull/10242)
* schemadiff: support functional indexes [#10244](https://github.com/vitessio/vitess/pull/10244)
* Fix formatting of character set annotation on string literals [#10245](https://github.com/vitessio/vitess/pull/10245)
* schemadiff: use ParseStrictDDL whenever expecting a DDL statement [#10246](https://github.com/vitessio/vitess/pull/10246)
* Fix parsing of encryption attribute for create database [#10249](https://github.com/vitessio/vitess/pull/10249)
* Add support for parsing MATCH in a foreign key definition [#10250](https://github.com/vitessio/vitess/pull/10250)
* Add parsing support for additional index and table options [#10251](https://github.com/vitessio/vitess/pull/10251)
* Handle additional DDL in column definitions [#10253](https://github.com/vitessio/vitess/pull/10253)
* evalengine: CASE expressions [#10262](https://github.com/vitessio/vitess/pull/10262)
* vt/sqlparser: support SRID [#10267](https://github.com/vitessio/vitess/pull/10267)
* Improve dealing with check constraints [#10268](https://github.com/vitessio/vitess/pull/10268)
* Add parsing and schemadiff support for ALTER TABLE ALTER CHECK [#10269](https://github.com/vitessio/vitess/pull/10269)
* Add unary utf8mb3 charset marker [#10274](https://github.com/vitessio/vitess/pull/10274)
* Allow updating the subsequent diff [#10289](https://github.com/vitessio/vitess/pull/10289)
* Improve the formatting for partitioning [#10291](https://github.com/vitessio/vitess/pull/10291)
* Add additional normalization rules for schemadiff [#10296](https://github.com/vitessio/vitess/pull/10296)
* schemadiff: RangeRotationDistinctStatements partitioning hint [#10309](https://github.com/vitessio/vitess/pull/10309)
* Remove internal savepoint post query execution [#10311](https://github.com/vitessio/vitess/pull/10311)
* feat: use column offsets when HAVING predicate has aggregation [#10312](https://github.com/vitessio/vitess/pull/10312)
* Improve parser and schemadiff support for ALTER TABLE [#10313](https://github.com/vitessio/vitess/pull/10313)
* Online DDL: fast (and correct) RANGE PARTITION operations, 1st iteration [#10315](https://github.com/vitessio/vitess/pull/10315)
* Add support for additional encoding configurations [#10321](https://github.com/vitessio/vitess/pull/10321)
* Add parsing support for Regular Expressions [#10322](https://github.com/vitessio/vitess/pull/10322)
* schemadiff: validate columns referenced by generated columns [#10328](https://github.com/vitessio/vitess/pull/10328)
* schemadiff: case insensitive col/index/partition name comparison [#10330](https://github.com/vitessio/vitess/pull/10330)
* [gen4] More aggregation support [#10332](https://github.com/vitessio/vitess/pull/10332)
* Add better int normalization [#10340](https://github.com/vitessio/vitess/pull/10340)
* Additional schemadiff improvements for indexes [#10345](https://github.com/vitessio/vitess/pull/10345)
* Structured schemadiff errors [#10356](https://github.com/vitessio/vitess/pull/10356)
* Add validation of check constraints [#10357](https://github.com/vitessio/vitess/pull/10357)
* schemadiff: validate columns referenced by FOREIGN KEY [#10359](https://github.com/vitessio/vitess/pull/10359)
* Aggregation on top of LIMIT [#10361](https://github.com/vitessio/vitess/pull/10361)
* Add support for parsing ARRAY in cast / convert operations [#10362](https://github.com/vitessio/vitess/pull/10362)
* Online DDL: support for CHECK CONSTRAINTS [#10369](https://github.com/vitessio/vitess/pull/10369)
* schemadiff: constraint name diff hints strategies [#10380](https://github.com/vitessio/vitess/pull/10380)
* Replace 'CREATE TABLE LIKE' with programmatic copy [#10381](https://github.com/vitessio/vitess/pull/10381)
* Streaming implementation of Projection engine primitive [#10384](https://github.com/vitessio/vitess/pull/10384)
* feat: do not use lookup vindexes for IS NULL predicates [#10388](https://github.com/vitessio/vitess/pull/10388)
* Online DDL: support INSTANT DDL special plan, flag protected (flag undocumented for now) [#10402](https://github.com/vitessio/vitess/pull/10402)
* feat: make v3 not plan IS NULL queries against a lookup vindex [#10412](https://github.com/vitessio/vitess/pull/10412)
* Online DDL: support Instant DDL for change of column's DEFAULT [#10414](https://github.com/vitessio/vitess/pull/10414)
* Parsing Support for XML functions [#10438](https://github.com/vitessio/vitess/pull/10438)
* Formalize MySQL capabilities by flavor/version [#10445](https://github.com/vitessio/vitess/pull/10445)
* fix: change planner_version to planner-version everywhere [#10453](https://github.com/vitessio/vitess/pull/10453)
* [14.0] Schema tracking acl error logging [#10591](https://github.com/vitessio/vitess/pull/10591)
* [Backport 14.0] enable schema tracking by default  [#10595](https://github.com/vitessio/vitess/pull/10595)
#### TabletManager
* messaging: support vt_message_cols to limit cols [#9670](https://github.com/vitessio/vitess/pull/9670)
* Table lifecycle: support views [#9776](https://github.com/vitessio/vitess/pull/9776)
#### VReplication
* OnlineDDL: delete _vt.vreplication entry as part of CLEANUP operation [#9638](https://github.com/vitessio/vitess/pull/9638)
* Tablet server/VReplication: use information_schema.columns to get the list of columns instead of "select * from table"  [#9794](https://github.com/vitessio/vitess/pull/9794)
* Add `--drop_constraints` to MoveTables [#9904](https://github.com/vitessio/vitess/pull/9904)
* Support throttling vstreamer copy table work on source tablets [#9923](https://github.com/vitessio/vitess/pull/9923)
* Improve escape handling for vindex materializer [#9929](https://github.com/vitessio/vitess/pull/9929)
* VReplication: fail on unrecoverable errors [#9973](https://github.com/vitessio/vitess/pull/9973)
* Prefer using REPLICA tablets when selecting vreplication sources [#10040](https://github.com/vitessio/vitess/pull/10040)
* Improve Tablet Refresh Behavior in VReplication Traffic Switch Handling [#10058](https://github.com/vitessio/vitess/pull/10058)
* VReplication: use db_filtered user for vstreams [#10080](https://github.com/vitessio/vitess/pull/10080)
* MoveTables: adjust datetimes when importing from non-UTC sources into UTC targets [#10102](https://github.com/vitessio/vitess/pull/10102)
* VStream API: allow cells to be specified for picking source tablets to stream from [#10294](https://github.com/vitessio/vitess/pull/10294)
* Vdiff2: initial release [#10382](https://github.com/vitessio/vitess/pull/10382)
* release-14.0 backport: Fail VReplication workflows on errors that persist and unrecoverable errors [#10573](https://github.com/vitessio/vitess/pull/10573)
* Backport: VDiff2: Support Resuming VDiffs [#10589](https://github.com/vitessio/vitess/pull/10589)
#### VTAdmin
* [vtadmin-web] Upgrade to tailwindcss v3 [#9648](https://github.com/vitessio/vitess/pull/9648)
* [vtadmin-web] Add REACT_APP_READONLY_MODE flag [#9731](https://github.com/vitessio/vitess/pull/9731)
* [VTAdmin] URL decode cookies [#9866](https://github.com/vitessio/vitess/pull/9866)
* [vtadmin] custom discovery resolver [#9977](https://github.com/vitessio/vitess/pull/9977)
* [vtadmin-web] Add /vschema route to Keyspace detail view + QueryErrorPlaceholder and QueryLoadingPlaceholder components [#10021](https://github.com/vitessio/vitess/pull/10021)
* [vtadmin] grpc healthserver + channelz [#10038](https://github.com/vitessio/vitess/pull/10038)
* [Dynamic Clusters] No Duplicates [#10043](https://github.com/vitessio/vitess/pull/10043)
* [vtadmin] full dynamic cluster config [#10071](https://github.com/vitessio/vitess/pull/10071)
* [VTAdmin] Replace changed clusters when using Dynamic Discovery [#10129](https://github.com/vitessio/vitess/pull/10129)
* [vtadmin] non-blocking resolver [#10205](https://github.com/vitessio/vitess/pull/10205)
* [vtadmin] Add "Replication Status" view to Tablet page [#10266](https://github.com/vitessio/vitess/pull/10266)
* [vtadmin] Add support for 'allow_primary' when deleting a tablet [#10304](https://github.com/vitessio/vitess/pull/10304)
* [vtadmin] Add CreateKeyspace bindings + form UI [#10316](https://github.com/vitessio/vitess/pull/10316)
* [vtadmin] tablet topopools + other cleanup [#10325](https://github.com/vitessio/vitess/pull/10325)
* [vtadmin] Add keyspace/advanced view + ReloadSchemaKeyspace control [#10329](https://github.com/vitessio/vitess/pull/10329)
* [vtadmin] Add loading placeholder for entity table views + update default redirect to /schemas [#10331](https://github.com/vitessio/vitess/pull/10331)
* [vtadmin] cluster Closer implementation + dynamic Cluster bugfix [#10355](https://github.com/vitessio/vitess/pull/10355)
#### VTCombo
* Add flag to vtcombo to load a json-encoded test topology file [#9633](https://github.com/vitessio/vitess/pull/9633)
#### VTorc
* Revocation phase using durability policies [#9659](https://github.com/vitessio/vitess/pull/9659)
* VTOrc: Refactor and reload of ephemeral information for remaining recovery functions [#10150](https://github.com/vitessio/vitess/pull/10150)
* vtorc: more auditing in GracefulPrimaryTakeover [#10285](https://github.com/vitessio/vitess/pull/10285)
#### vttestserver
* vtcombo: Add the ability to specify routing rules in test topology [#9695](https://github.com/vitessio/vitess/pull/9695)
* vttestserver: add enable_system_settings option [#9779](https://github.com/vitessio/vitess/pull/9779)
#### web UI
* [vtctld] Add 'enable_vtctld_ui' flag to vtctld to explicitly enable (or disable) the vtctld2 UI [#9614](https://github.com/vitessio/vitess/pull/9614)
### Feature Request
#### Cluster management
* [vtctldserver] Migrate `Backup` RPC to vtctldserver/client [#9798](https://github.com/vitessio/vitess/pull/9798)
* [vtctldclient] Add entrypoint for `ApplySchema` [#9829](https://github.com/vitessio/vitess/pull/9829)
* [vtctldserver] Migrate `BackupShard` RPC [#9857](https://github.com/vitessio/vitess/pull/9857)
* [vtctldserver] Migrate `RemoveBackup` RPC [#9865](https://github.com/vitessio/vitess/pull/9865)
* [vtctldserver] Migrate `RestoreFromBackup` RPC [#9873](https://github.com/vitessio/vitess/pull/9873)
* [vtctldserver] Migrate `ShardReplicationFix` RPC [#9878](https://github.com/vitessio/vitess/pull/9878)
* [vtctldserver] Migrate `SourceShard{Add,Delete}` RPCs [#9886](https://github.com/vitessio/vitess/pull/9886)
* [vtctldserver] ExecuteFetchAs{App,DBA} [#9890](https://github.com/vitessio/vitess/pull/9890)
* [vtctldserver] Migrate `ShardReplication{Add,Remove}` RPCs [#9899](https://github.com/vitessio/vitess/pull/9899)
* [vtctldserver] Migrate GetPermissions PR#9903 [#10013](https://github.com/vitessio/vitess/pull/10013)
#### Observability
* [vtadmin] Add prom metrics endpoint support [#10334](https://github.com/vitessio/vitess/pull/10334)
#### Query Serving
* mysql: allow parsing the 'info' field of MySQL packets [#9651](https://github.com/vitessio/vitess/pull/9651)
* evalengine: Conversions [#9698](https://github.com/vitessio/vitess/pull/9698)
* Add support for insert using select [#9748](https://github.com/vitessio/vitess/pull/9748)
* Add parsing support for Multi INDEX HINTS [#9811](https://github.com/vitessio/vitess/pull/9811)
* sqlparser: introduce custom formatting options [#10068](https://github.com/vitessio/vitess/pull/10068)
#### VTAdmin
* [VTAdmin] Tablet Actions (vtctld2 Parity) [#9601](https://github.com/vitessio/vitess/pull/9601)
* [VTAdmin][vtctldserver] Keyspace Functions [#9667](https://github.com/vitessio/vitess/pull/9667)
* Allow --no-rbac flag that allows users to not pass rbac config [#9972](https://github.com/vitessio/vitess/pull/9972)
* [vtadmin] grpc dynamic clusters [#10050](https://github.com/vitessio/vitess/pull/10050)
* [vtadmin] schema cache [#10120](https://github.com/vitessio/vitess/pull/10120)
* [vtadmin] cell apis [#10227](https://github.com/vitessio/vitess/pull/10227)
* [vtadmin] reload schema [#10300](https://github.com/vitessio/vitess/pull/10300)
* [vtadmin] reparenting actions [#10351](https://github.com/vitessio/vitess/pull/10351)
* add vtadmin docker image [#10543](https://github.com/vitessio/vitess/pull/10543)
### Internal Cleanup
#### Build/CI
* Update the issue templates [#9605](https://github.com/vitessio/vitess/pull/9605)
* Remove usage of additional uuid package [#10307](https://github.com/vitessio/vitess/pull/10307)
#### CLI
* [vtctl] Deprecate query commands [#9934](https://github.com/vitessio/vitess/pull/9934)
* [vtctl] Deprecate Throttler RPCs [#9962](https://github.com/vitessio/vitess/pull/9962)
* [vtadmin] Remove deprecated dynamic cluster flag [#10067](https://github.com/vitessio/vitess/pull/10067)
* Update vtctl help output to use double dashes for long flag names [#10405](https://github.com/vitessio/vitess/pull/10405)
#### Cluster management
* Remove the DurabilityParams argument to the durability interface [#9718](https://github.com/vitessio/vitess/pull/9718)
* Internal cleanup for choosing primary in ERS [#9775](https://github.com/vitessio/vitess/pull/9775)
* Move deprecation warning to just before we actually invoke the legacy command path [#9787](https://github.com/vitessio/vitess/pull/9787)
* Online DDL: cleanup old vtctld+topo flow [#9816](https://github.com/vitessio/vitess/pull/9816)
* Rename ApplySchemaRequest.request_context=>migration_context [#9824](https://github.com/vitessio/vitess/pull/9824)
* rename master_alias to primary_alias in reparent_journal table [#10098](https://github.com/vitessio/vitess/pull/10098)
* Use the `HealthCheckImpl` in `vtctld` instead of the `LegacyHealthCheck` [#10254](https://github.com/vitessio/vitess/pull/10254)
* Cleanup: removed legacy, unused code (online DDL paths in topo) [#10379](https://github.com/vitessio/vitess/pull/10379)
* Addition of more logging to ERS and tests to PRS [#10425](https://github.com/vitessio/vitess/pull/10425)
#### Documentation
* all: fix some typos [#9815](https://github.com/vitessio/vitess/pull/9815)
#### Evalengine
* evalengine: more comprehensive type coverage [#9804](https://github.com/vitessio/vitess/pull/9804)
#### Examples
* Examples: fix warnings [#9875](https://github.com/vitessio/vitess/pull/9875)
* Migrate remaining vtctldclient commands in local example [#9894](https://github.com/vitessio/vitess/pull/9894)
* [vtadmin] Improve vtadmin-{up,down}.sh scripts for the local example [#10081](https://github.com/vitessio/vitess/pull/10081)
#### General
* Support sanitizing potentially sensitive information in log messages [#9550](https://github.com/vitessio/vitess/pull/9550)
* Update maintainer email address for Andrew Mason [#9709](https://github.com/vitessio/vitess/pull/9709)
* Remove unmaintained vagrant files [#9768](https://github.com/vitessio/vitess/pull/9768)
* [VEP-4, phase 1] Flag cleanup in `go/cmd` [#9896](https://github.com/vitessio/vitess/pull/9896)
* Add VS Code's __debug_bin to .gitignore [#10305](https://github.com/vitessio/vitess/pull/10305)
* fix: lint error [#10440](https://github.com/vitessio/vitess/pull/10440)
#### Query Serving
* Delete discovery gateway [#9500](https://github.com/vitessio/vitess/pull/9500)
* Remove queryserver-config-terse-errors impact on log messages [#9634](https://github.com/vitessio/vitess/pull/9634)
* evalengine: use sqltypes [#9646](https://github.com/vitessio/vitess/pull/9646)
* Add a comment on how to use set for a counter [#9664](https://github.com/vitessio/vitess/pull/9664)
* evalengine: Value cleanups [#9773](https://github.com/vitessio/vitess/pull/9773)
* Split aggregation in scalar and ordered aggregation [#9810](https://github.com/vitessio/vitess/pull/9810)
* refactor: move all remaining queries to plan builder [#9982](https://github.com/vitessio/vitess/pull/9982)
* Minor fix requested by linter [#9989](https://github.com/vitessio/vitess/pull/9989)
* collations/hack: cleanup dependencies [#10039](https://github.com/vitessio/vitess/pull/10039)
* Reduce shift-reduce conflicts in the grammar by using Precedence [#10053](https://github.com/vitessio/vitess/pull/10053)
* remove set_var session field from proto [#10135](https://github.com/vitessio/vitess/pull/10135)
* refactor: removed last reserved field from vtgate session [#10140](https://github.com/vitessio/vitess/pull/10140)
* refactor: move the Subshard opcode [#10195](https://github.com/vitessio/vitess/pull/10195)
* fix: filter was not using the vcursor buffering execution [#10391](https://github.com/vitessio/vitess/pull/10391)
#### TabletManager
* Adds comments to UnserveCommon to find potential Deadlock [#9942](https://github.com/vitessio/vitess/pull/9942)
* Fix Flaky TestTopoCustomRule [#10002](https://github.com/vitessio/vitess/pull/10002)
* delete RPCs that were deprecated in 13.0 [#10099](https://github.com/vitessio/vitess/pull/10099)
#### VReplication
* Rename drop_constraints to drop_foreign_keys on MoveTables [#10017](https://github.com/vitessio/vitess/pull/10017)
* remove changeMasterToPrimary, we no longer need it [#10100](https://github.com/vitessio/vitess/pull/10100)
* Ensure all legacy sharding commands are clearly deprecated [#10281](https://github.com/vitessio/vitess/pull/10281)
#### VTAdmin
* [vtadmin-web] Update postcss to v8.4.6 [#9612](https://github.com/vitessio/vitess/pull/9612)
* [VTAdmin] Simplify JSON Discovery [#9618](https://github.com/vitessio/vitess/pull/9618)
* [vtadmin-web] Upgrade stylelint + related dependencies to latest [#9654](https://github.com/vitessio/vitess/pull/9654)
* [vtadmin-web] Update msw to latest (v0.36.8) [#9737](https://github.com/vitessio/vitess/pull/9737)
* chore(deps): Bump node-forge from 1.2.0 to 1.3.0 in /web/vtadmin [#9953](https://github.com/vitessio/vitess/pull/9953)
* [vtadmin] threadsafe vtsql [#10000](https://github.com/vitessio/vitess/pull/10000)
* [vtsql] Remove vtsql.PingContext check from dial calls [#10037](https://github.com/vitessio/vitess/pull/10037)
* [vtadmin-web] Update to react-scripts@5.0.1 [#10082](https://github.com/vitessio/vitess/pull/10082)
* [vtadmin] Refactor api.getSchemas => cluster.GetSchemas [#10108](https://github.com/vitessio/vitess/pull/10108)
* [vtadmin] Remove Tablets option for GetSchema(s) [#10111](https://github.com/vitessio/vitess/pull/10111)
* [vtadmin-web] Remove placeholder links from NavRail [#10180](https://github.com/vitessio/vitess/pull/10180)
* [vtadmin-web] Remove unused icon SVGs [#10206](https://github.com/vitessio/vitess/pull/10206)
* [vtadmin] Tidy up /settings (née /debug) page [#10218](https://github.com/vitessio/vitess/pull/10218)
* [vtadmin] Remove explicit Dial-ing for vtctldclient proxy [#10233](https://github.com/vitessio/vitess/pull/10233)
* [vtadmin] Removing explicit Dial-ing for vtsql proxy [#10237](https://github.com/vitessio/vitess/pull/10237)
* [vtadmin] `GetCell{Infos,Aliases}`: Add missing topoReadPool management [#10273](https://github.com/vitessio/vitess/pull/10273)
* [vtadmin] proper alias types for tablet RPCs [#10290](https://github.com/vitessio/vitess/pull/10290)
* [vtadmin] Rehome DangerAction component in a common folder [#10293](https://github.com/vitessio/vitess/pull/10293)
* [vtadmin] Fix warning 'div cannot appear as a descendant of p' [#10302](https://github.com/vitessio/vitess/pull/10302)
* Mark web/vtadmin/src/proto/** as generated files in .gitattributes [#10303](https://github.com/vitessio/vitess/pull/10303)
* [vtadmin] Further generalize DangerAction component [#10319](https://github.com/vitessio/vitess/pull/10319)
* [vtadmin] Further generalize DangerAction into ActionPanel [#10323](https://github.com/vitessio/vitess/pull/10323)
* [vtadmin] Remove source-map-explorer dependency [#10339](https://github.com/vitessio/vitess/pull/10339)
* [vtadmin] Refactor getTabletForAction [#10341](https://github.com/vitessio/vitess/pull/10341)
* [vtadmin] Update ejs, async, and webpack-dev-server dev dependencies [#10342](https://github.com/vitessio/vitess/pull/10342)
* [vtadmin] Remove mutex, now that vtexplain has no global state [#10387](https://github.com/vitessio/vitess/pull/10387)
* [vtadmin] Rename reparent-related RPCs, endpoints, methods, RBAC actions [#10404](https://github.com/vitessio/vitess/pull/10404)
* [vtadmin] Rename ERS/PRS pools+flags properly [#10460](https://github.com/vitessio/vitess/pull/10460)
#### VTorc
* Remove logging in GetDurabilityPolicy [#10516](https://github.com/vitessio/vitess/pull/10516)
#### vtctl
* Fixes #8277: vtctld logs leak pii http headers [#9669](https://github.com/vitessio/vitess/pull/9669)
#### vtexplain
* Vtexplain no globals [#10374](https://github.com/vitessio/vitess/pull/10374)
* replace planner-version with planner_version in vtexplain [#10420](https://github.com/vitessio/vitess/pull/10420)
#### web UI
* [VTAdmin Web] Make Protos [#10042](https://github.com/vitessio/vitess/pull/10042)
### Performance
#### Build/CI
* Replace OpenSSL usage for test certificates with Go crypto [#9999](https://github.com/vitessio/vitess/pull/9999)
#### Examples
* region_example: sleep 5s before switching reads to allow copy to finish [#9937](https://github.com/vitessio/vitess/pull/9937)
#### General
* sqlescape: Improve performance of EscapeID [#9840](https://github.com/vitessio/vitess/pull/9840)
#### Query Serving
* Improve performance of hex type decoding [#9625](https://github.com/vitessio/vitess/pull/9625)
* Micro benchmarks for setting system variables [#9681](https://github.com/vitessio/vitess/pull/9681)
* evalengine: Optimize NullSafeComparison [#9728](https://github.com/vitessio/vitess/pull/9728)
* evalengine: Decimals v2 Electric Boogaloo [#9749](https://github.com/vitessio/vitess/pull/9749)
* sqlparser: cache comment parsing [#10014](https://github.com/vitessio/vitess/pull/10014)
#### Schema Tracker
* Improve performance of the `DetectSchemaChange` query [#10416](https://github.com/vitessio/vitess/pull/10416)
### Release
#### Build/CI
* Updating 13.0.0 release notes on main [#9759](https://github.com/vitessio/vitess/pull/9759)
* Rework how the `release notes` labels are handled by the CI [#10508](https://github.com/vitessio/vitess/pull/10508)
* Rework the generation of the release notes [#10510](https://github.com/vitessio/vitess/pull/10510)
* Post release 14.0.0 updates [#10600](https://github.com/vitessio/vitess/pull/10600)
#### General
* Moving dev to 14.0.0-SNAPSHOT [#9611](https://github.com/vitessio/vitess/pull/9611)
* Addition of release notes for v13.0.1 [#10097](https://github.com/vitessio/vitess/pull/10097)
* add caller_id to 13.0.0 release notes [#10124](https://github.com/vitessio/vitess/pull/10124)
* Release notes documents for `v12.0.4` on `main` [#10350](https://github.com/vitessio/vitess/pull/10350)
* [14.0] Update and prepare the `v14.0.0` summary [#10569](https://github.com/vitessio/vitess/pull/10569)
* Revert snapshot incrementation in release-14.0 [#10605](https://github.com/vitessio/vitess/pull/10605)
### Testing
#### Build/CI
* More aggressive tests for vitess migration cut-over [#9956](https://github.com/vitessio/vitess/pull/9956)
* Skip end-to-end test if binary is below a certain major version [#9975](https://github.com/vitessio/vitess/pull/9975)
* Deflake connkiller tests [#10001](https://github.com/vitessio/vitess/pull/10001)
* Temp: Pin XtraBackup version used at 2.4.24 for 5.7 tests [#10194](https://github.com/vitessio/vitess/pull/10194)
* fix tablegc flaky test [#10230](https://github.com/vitessio/vitess/pull/10230)
#### CLI
* [VEP-4, part 1] Flag cleanup in `go/mysql` and some endtoend tests [#9910](https://github.com/vitessio/vitess/pull/9910)
* [VEP4, phase 1] Update flags in `endtoend/recovery` [#9911](https://github.com/vitessio/vitess/pull/9911)
* [VEP4, phase 1] Update flags in `endtoend/schemadiff` [#9912](https://github.com/vitessio/vitess/pull/9912)
* [VEP4, phase 1] Update flags and imports for `endtoend/{sharded,sharding}` [#9913](https://github.com/vitessio/vitess/pull/9913)
* [VEP 4, phase 1] Cleanup flags in `endtoend/vault` (and some comments in `endtoend/tabletmanager`) [#9916](https://github.com/vitessio/vitess/pull/9916)
* [VEP4, phase 1] fix flags in tests `endtoend/versionupgrade` [#9917](https://github.com/vitessio/vitess/pull/9917)
* [VEP4, phase 1] [endtoend/vreplication] update flags in tests [#9918](https://github.com/vitessio/vitess/pull/9918)
* [VEP4, phase 1] [endtoend/vtcombo] fix flags in tests [#9919](https://github.com/vitessio/vitess/pull/9919)
* [VEP4, phase1] Cleanup flags in `endtoend/vtgate` and `endtoend/vtorc` [#9930](https://github.com/vitessio/vitess/pull/9930)
* [VEP4, phase1] fix flags in tests in `endtoend/worker` and strings in `go/trace` [#9931](https://github.com/vitessio/vitess/pull/9931)
#### Cluster management
* Replace InitShardPrimary usage in tests by PlannedReparentShard [#9680](https://github.com/vitessio/vitess/pull/9680)
#### General
* Add unit test for the demo app [#9766](https://github.com/vitessio/vitess/pull/9766)
* test: use `T.TempDir` to create temporary test directory [#10433](https://github.com/vitessio/vitess/pull/10433)
#### Query Serving
* Add e2e test for the TabletManager GetSchema RPC [#9658](https://github.com/vitessio/vitess/pull/9658)
* vtexplain: added multicol test to show subshard routing [#9697](https://github.com/vitessio/vitess/pull/9697)
* Compare Vitess against MySQL in E2E tests [#9965](https://github.com/vitessio/vitess/pull/9965)
* endtoend: improve assertionsin message_test [#10046](https://github.com/vitessio/vitess/pull/10046)
* Flaky test fix: TestFoundRows [#10235](https://github.com/vitessio/vitess/pull/10235)
* Make the tests explicit for the SET variables for MySQL 5.7 [#10263](https://github.com/vitessio/vitess/pull/10263)
* fix: vtexplain commit order flaky [#10264](https://github.com/vitessio/vitess/pull/10264)
* test refactor: extract const literal to file [#10358](https://github.com/vitessio/vitess/pull/10358)
* test: refactor and enabled vschema ddl test [#10437](https://github.com/vitessio/vitess/pull/10437)
* Divide query serving upgrade downgrade tests in two groups to limit disk usage per workflow [#10452](https://github.com/vitessio/vitess/pull/10452)
#### VReplication
* deflake TestCanSwitch by switching from exact string match to loose regex [#9926](https://github.com/vitessio/vitess/pull/9926)
#### VTAdmin
* [vtadmin] Ensure we close the proxy to prevent red-herring 'error' messages [#9964](https://github.com/vitessio/vitess/pull/9964)
* [vtadmin|tests] Add mutex to prevent data races in tests using cluster/resolver [#10041](https://github.com/vitessio/vitess/pull/10041)
* [vtadmin] tablet topotools tests [#10333](https://github.com/vitessio/vitess/pull/10333)
* [vtadmin] Fix data race in vtadmin [#10376](https://github.com/vitessio/vitess/pull/10376)
* [vtadmin] Add infrastructure for generating authz tests for vtadmin [#10397](https://github.com/vitessio/vitess/pull/10397)
* [vtadmin] authz tests part1 [#10415](https://github.com/vitessio/vitess/pull/10415)
* [vtadmin] Refactor authztestgen template to allow multiple test clusters [#10428](https://github.com/vitessio/vitess/pull/10428)
* [vtadmin] authz tests - getters part1 [#10432](https://github.com/vitessio/vitess/pull/10432)
* [vtadmin] authz tests - getters part2 [#10444](https://github.com/vitessio/vitess/pull/10444)
* [vtadmin] authz tests -  getters part3 [#10449](https://github.com/vitessio/vitess/pull/10449)
* [vtadmin] authz tests - tablet actions [#10457](https://github.com/vitessio/vitess/pull/10457)
* [backport] [vtadmin] Add remaining authz tests [#10487](https://github.com/vitessio/vitess/pull/10487)
* [vtadmin/tests] Serialize Schema test cases to avoid cache backfill races [#10538](https://github.com/vitessio/vitess/pull/10538)
* [vtadmin] fix flaky GetSchemas test cases [#10555](https://github.com/vitessio/vitess/pull/10555)
#### VTorc
* Remove the use_super_read_only flag in VTOrc tests [#9672](https://github.com/vitessio/vitess/pull/9672)
