Skip to content

Latest commit

 

History

History
571 lines (569 loc) · 52.5 KB

changelog.md

File metadata and controls

571 lines (569 loc) · 52.5 KB

Changelog of Vitess v19.0.0

Announcement

General

  • summary: updated summary with 19.0 changes #15132

Bug fixes

Backup and Restore

  • MysqlCtl: implement missing ReadBinlogFilesTimestamps function #14525
  • Replication: Have the DB flavor process waiting for a pos #14745
  • [release-19.0 backport] Mysqld: capture mysqlbinlog std error output (#15278) #15379

Build/CI

  • Update create_release.sh #14492
  • Set minimal tokens for auto_approve_pr #14534
  • Run Go deps upgrade every week #14910

CLI

  • Fix anonymous paths in cobra code-gen #14185
  • [release-19.0] Fix some binaries to print the versions (#15306) #15310
  • [release-19.0] tablet: remove max-waiters setting (#15323) #15325

Cluster management

  • Fix Panic in PRS due to a missing nil check #14656
  • Fix hearbeatWriter Close being stuck if waiting for a semi-sync ACK #14823
  • Block replication and query RPC calls until wait for dba grants has completed #14836
  • Fix the parser to allow multiple strings one after the other #15076

Docker

  • [Docker] Fix VTadmin build #14363

Evalengine

  • evalengine: Misc bugs #14351
  • datetime: obey the evalengine's environment time #14358
  • Fix nullability checks in evalengine #14556
  • evalengine: Handle zero dates correctly #14610
  • evalengine: Fix the min / max calculation for decimals #14614
  • evalengine: Fix week overflow #14859
  • evalengine: Return evalTemporal types for current date / time #15079
  • mysql/datetime: Improve TIME parsing logic #15135

Examples

  • examples: fix flag syntax for zkctl #14469

General

  • viper: register dynamic config with both disk and live #14453
  • Protect ExecuteFetchAsDBA against multi-statements, excluding a sequence of CREATE TABLE|VIEW. #14954
  • Use the correct parser for truncation #14985
  • Fix log format error in vttls.go #15035

Observability

  • Fix #14414: resilient_server metrics name/prefix logic is inverted, leading to no metrics being recorded #14415

Online DDL

  • Online DDL: timeouts for all gRPC calls #14182
  • OnlineDDL: fix scenarios where migration hangs instead of directly failing #14290
  • schemadiff: fix missing DROP CONSTRAINT in duplicate/redundant constraints scenario. #14387
  • [release-19.0] VReplication/OnlineDDL: reordering enum values (#15103) #15352

Query Serving

  • bugfix: use the proper interface for comment directives #14267
  • evalengine: Use the right unknown type to initialize #14313
  • engine: fix race when reading fields in Concatenate #14324
  • tabletserver: do not consolidate streams on primary tablet when consolidator mode is notOnPrimary #14332
  • Planner bugfix #14365
  • semantics: Fix missing union pop from scoper #14401
  • fix: mismatch in column count and value count #14417
  • Make column resolution closer to MySQL #14426
  • vtgate/engine: Fix race condition in join logic #14435
  • Bug fix: Use target tablet from health stats cache when checking replication status #14436
  • Ensure hexval and int don't share BindVar after Normalization #14451
  • Make connection killing resilient to MySQL hangs #14500
  • planbuilder bugfix: expose columns through derived tables #14501
  • Fix missing query serving error code #14520
  • Fix type coercion in cascading non-literal updates #14524
  • Type Cast all update expressions in verify queries #14555
  • expression rewriting: enable more rewrites and limit CNF rewrites #14560
  • bug fix: stop all kinds of expressions from cnf-exploding #14585
  • fix concurrency on stream execute engine primitives #14586
  • bugfix: do not rewrite an expression twice #14641
  • txserializer: change log message based on dry run #14651
  • Vindexes: Pass context in consistent lookup handleDup #14653
  • Fail correlated subquery in planning phase instead of a runtime error #14701
  • bugfix: use the original expression and not the alias #14704
  • Fix RegisterNotifier to use a copy of the tables to prevent data races #14716
  • fix: flush tables with read lock to run only with reserved connection #14720
  • TabletServer: Handle nil targets properly everywhere #14734
  • bugfix: don't panic when missing schema information #14787
  • schemadiff: allow char->varchar FK reference type matching #14849
  • sqlparser: FORCE_CUTOVER is a non-reserved keyword #14885
  • Improve err extraction logic #14887
  • Add nil check to prevent panics #14902
  • evalengine bugfix: handle nil evals correctly when coercing values #14906
  • Vttablet panic in requests Wait #14924
  • schemadiff: fix diffing of textual columns with implicit charsets #14930
  • bugfix: Columns alias expanding #14935
  • Fix panic for unknown columns in foreign key managed mode #15025
  • Fix subquery cloning and dependencies #15039
  • Fix buffer_drain_concurrency not doing anything #15042
  • Copy expression types to avoid weight_strings and derived tables #15069
  • Improve efficiency and accuracy of mysqld.GetVersionString #15096
  • mysql: Ensure we set up the initial collation correctly #15115
  • make sure to handle unsupported collations well #15134
  • [release-19.0] make sure to handle unsupported collations well #15143
  • [release-19.0] fix: ignore internal tables in schema tracking (#15141) #15147
  • [release-19.0] Planner Bug: Joins inside derived table (#14974) #15177
  • [release-19.0] TxThrottler: dont throttle unless lag (#14789) #15196
  • [release-19.0] bugfix: wrong field type returned for SUM (#15192) #15206
  • [release-19.0] Avoid rewriting unsharded queries and split semantic analysis in two (#15217) #15230
  • [release-19.0] Fix Delete with multi-tables related by foreign keys (#15218) #15255
  • [release-19.0] sqlparser: use integers instead of literals for Length/Precision (#15256) #15269
  • [release-19.0] Fix Go routine leaks in streaming calls (#15293) #15301
  • [release-19.0] planner: support union statements with ctes (#15312) #15324
  • [release-19.0] Column alias expanding on ORDER BY (#15302) #15329
  • [release-19.0] go/vt/discovery: use protobuf getters for SrvVschema (#15343) #15346
  • [release-19.0] SHOW VITESS_REPLICATION_STATUS: Only use replication tracker when it's enabled (#15348) #15362
  • [release-19.0] Bugfix: GROUP BY/HAVING alias resolution (#15344) #15377

Schema Tracker

  • discovery: fix crash with nil server vschema #15086

TabletManager

  • mysqlctl: Cleanup stale socket lockfile #14553
  • mysqlctl: Fix cleaning up the stale lock file #14600
  • tabletserver: Skip wait for DBA grants for external tablets #14629
  • mysqlctl: Error out on stale socket #14650

Throttler

  • Throttler: set timeouts on gRPC communication and on topo communication #14165
  • examples: rm heartbeat flags #14980
  • [release-19.0] Throttler: fix nil pointer dereference error (#15180) #15181

Topology

  • Ignore non-Shard keys in FindAllShardsInKeyspace List impl #15117

VReplication

  • VReplication: error on vtctldclient commands w/o tablet types #14294
  • VDiff: wait for shard streams of one table diff to complete for before starting that of the next table #14345
  • Vtctld SwitchReads: fix bug where writes were also being switched as part of switching reads when all traffic was switched using SwitchTraffic #14360
  • VDiff tablet selection: pick non-serving tablets in Reshard workflows #14413
  • VDiff: "show all" should only report vdiffs for the specified keyspace and workflow #14442
  • VReplication: Properly Handle FK Constraints When Deferring Secondary Keys #14543
  • Materializer: normalize schema via schemadiff on --atomic-copy #14636
  • VReplication TableStreamer: Only stream tables in tablestreamer (ignore views) #14646
  • VDiff: Fix vtctldclient limit bug #14778
  • VReplication: Guard against unsafe _vt.vreplication writes #14797
  • VReplication SwitchWrites: Properly return errors in SwitchWrites #14800
  • VReplication: Update singular workflow in traffic switcher #14826
  • Flakes: Fix flaky vtctl unit test TestMoveTables #14886
  • VReplication: send unique key name to rowstreamer, which can then use with FORCE INDEX #14916
  • VDiff: Make max diff duration upgrade/downgrade safe #14995
  • [release-19.0] VReplication: disable foreign_key_checks for bulk data cleanup (#15261) #15265
  • [release-19.0] VReplication: Make Target Sequence Initialization More Robust (#15289) #15308

VTCombo

  • [release-19.0] Correctly set log_dir default in vtcombo (#15153) #15155

vtctl

  • VReplication: Add missing info to vtctldclient workflow SHOW output #14225

vtctldclient

  • vtctldclient: Apply tablet type filtering for keyspace+shard in GetTablets #14467

vtexplain

  • [release-19.0] vtexplain: Fix setting up the column information (#15275) #15282
  • [release-19.0] vtexplain: Ensure memory topo is set up for throttler (#15279) #15285

vttestserver

  • [release-19.0] Revert unwanted logging change to vttestserver (#15148) #15150
  • [release-19.0] use proper mysql version in the vttestserver images (#15235) #15239

CI/Build

Backup and Restore

  • Incremental backup: fix race condition in reading 'mysqlbinlog' output #14330

Build/CI

  • Enhance PR template + CI workflow for backport labels. #14779
  • Update MySQL apt package and GPG signature #14785
  • fix: build on delete operator #14833
  • CI: Adjust FOSSA API secret name #14918
  • CI: Tweak our code coverage profile behavior #14967
  • Fix relevant files listing for endtoend CI #15104
  • [release-19.0] Remove concurrency group for check labels workflow (#15197) #15209
  • [release-19.0] Update toolchain version in go.mod (#15245) #15246

Docker

  • Vitess MySQL Docker Image #14158
  • Build and push Docker vitess/vttestserver DockerHub from GitHub Actions #14314
  • Add vtexplain and vtbackup to base docker auto-build #14318

Evalengine

  • Fix codegen command with the right type #14376

General

  • [main] Upgrade the Golang version to go1.21.2 #14193
  • [main] Upgrade the Golang version to go1.21.3 #14231
  • [main] Upgrade the Golang version to go1.21.4 #14488
  • [main] Upgrade the Golang version to go1.21.5 #14689
  • connpool: fix racy test #14731
  • [release-19.0] Upgrade the Golang version to go1.22.0 #15169
  • [release-19.0] Upgrade the Golang version to go1.22.1 #15406

Online DDL

  • onlineddl_vrepl_stress: fix flakiness caused by timeouts #14295
  • OnlineDDL: reduce vrepl_stress workload in forks #14302
  • Online DDL: fix endtoend test dropping foreign key #14522
  • VTGate/foreign keys stress test: add tests for 'standard' replica #14747

VTAdmin

  • Update vtadmin dependencies #14336
  • Fix stray vtadmin package-lock.json content #14350

VTorc

  • docker: add dedicated vtorc container #14126

Dependabot

General

  • Bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 #14239
  • Bump golang.org/x/net from 0.14.0 to 0.17.0 #14260
  • Bump google.golang.org/grpc from 1.55.0-dev to 1.59.0 #14364
  • build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 #14814

Java

  • build(deps): bump com.google.guava:guava from 30.1.1-jre to 32.0.0-jre in /java #14759
  • build(deps): bump io.netty:netty-handler from 4.1.93.Final to 4.1.94.Final in /java #14863

VTAdmin

  • Bump @cypress/request and cypress in /vitess-mixin/e2e #14038
  • Bump postcss from 8.4.21 to 8.4.31 in /web/vtadmin #14173
  • Bump @babel/traverse from 7.21.4 to 7.23.2 in /web/vtadmin #14304
  • Bump @adobe/css-tools from 4.3.1 to 4.3.2 in /web/vtadmin #14654
  • build(deps-dev): bump vite from 4.2.3 to 4.5.2 in /web/vtadmin #15001

Documentation

CLI

  • Bypass cobra completion commands so they still function #14217

Documentation

  • release notes: edit summary for consistency #14319
  • release notes: add FK import to summary #14518
  • 19.0 release notes: ExecuteFetchAsDBA breaking change #15021

General

  • Add summary changes for recent PRs #14598
  • Add summary changes to indicate MySQL 5.7 is EOL and Vitess is dropping support for it in v19 #14663

Enhancement

Backup and Restore

  • increase vtctlclient backupShard command success rate #14604
  • Backup: --incremental-from-pos supports backup name #14923
  • Incremental backup: do not error on empty backup #15022

Build/CI

  • CI: Re-enable FOSSA scan and add Codecov #14333
  • Automatic approval of vitess-bot clean backports #14352
  • Tell shellcheck to follow sourced files #14377
  • Add step to static check to ensure consistency of GHA workflows #14724
  • Add release-19.0 to the auto go upgrade #15157
  • [release-19.0] Update paths filter action (#15254) #15264

CLI

  • VReplication: Add traffic state to vtctldclient workflow status output #14280
  • vtctldclient,grpcvtctldserver ApplySchema: return unknown params from grpcvtctldserver.ApplySchema, log them in vtctldclient.ApplySchema #14672

Cluster management

  • Add HealthCheck's healthy map to the VTGate UI #14521
  • Make vttablet wait for vt_dba user to be granted privileges #14565
  • Add wait for reading mycnf to prevent race #14626
  • Add log for error to help debug #14632
  • Take replication lag into account while selecting primary candidate #14634
  • Postpone waiting for dba grants after restore has succeeded #14680
  • vtctldclient: --strict rejects unknown vindex params in ApplyVSchema #14862
  • Respect tolerable replication lag even when the new primary has been provided in PRS #15090
  • [release-19.0] go/vt/wrangler: pass reparent options structs (#15251) #15286

Docker

  • Build and push Docker vitess/lite to DockerHub from GitHub Actions #14243
  • Build and push Docker vitess/base and component images to DockerHub from GitHub Actions #14271
  • Be more explicit in release notes regarding the deprecation of certain vitess/lite tags #15040

Evalengine

  • evalengine: Improve the typing situation for functions #14533
  • evalengine: Implement SUBSTRING #14899
  • evalengine: Implement FROM_DAYS #15058
  • evalengine: Implement TO_DAYS #15065
  • evalengine: Add MID alias #15066
  • evalEngine: Implement TIME_TO_SEC #15094

Examples

  • Tools: Remove dependencies installed by make tools #14309
  • Deprecate mysqld in vitess/lite and use mysql:8.0.30 image for the operator #14990

General

  • build: Allow compilation on Windows #14718

Observability

  • Debug vars: Expose build version in /debug/vars #14713
  • [servenv] optional pprof endpoints #14796
  • vtgate: increment vtgate_warnings counter for non atomic commits #15010
  • query_executor: Record WaitingForConnection stat in all cases #15073

Online DDL

  • Online DDL: support DROP FOREIGN KEY statement #14338
  • Online DDL: revert considerations for migrations with foreign key constraints #14368
  • Enable Online DDL foreign key support (also in vtgate stress tests) when backing MySQL includes appropriate patch #14370
  • Online DDL: lint DDL strategy flags #14373
  • schemadiff: remove table name from auto-generated FK constraint name #14385
  • TableGC: speed up GC process via RequestChecks(). Utilized by Online DDL for artifact cleanup #14431
  • Support fast_analyze_table variable, introduced in public MySQL fork #14494
  • Online DDL: edit CONSTRAINT names in CREATE TABLE #14517
  • Online DDL: support migration cut-over backoff and forced cut-over #14546
  • ApplySchema: log selected flags #14798
  • schemadiff: using MySQL capabilities to analyze a SchemaDiff and whether changes are applicable instantly/immediately. #14878
  • OnlineDDL to use schemadiff version capabilities; refactor some flavor code. #14883
  • schemadiff: formalize InstantDDLCapability #14900

Query Serving

  • add option for warming reads to mirror primary read queries onto replicas from vtgates to warm bufferpools #13206
  • Add support for new lock syntax in MySQL8 #13965
  • gen4: Support explicit column aliases on derived tables #14129
  • Gracefully shutdown VTGate instances #14219
  • Mark non-unique lookup vindex as backfill to ignore vindex selection #14227
  • UNION column type coercion #14245
  • Add support for common table expressions #14321
  • Add cycle detection for foreign keys #14339
  • feat: support invisible columns #14366
  • Add support for more queries #14369
  • schemadiff: identify a FK sequential execution scenario, and more #14397
  • Add support for AVG on sharded queries #14419
  • Use hash joins when nested loop joins are not feasible #14448
  • Make Foreign_key_checks a Vitess Aware variable #14484
  • Add SHOW VSCHEMA KEYSPACES query #14505
  • Support unlimited number of ORs in ExtractINFromOR #14566
  • planbuilder: push down ordering through filter #14583
  • refactor the INSERT engine primitive #14606
  • Optimise hash joins #14644
  • schemadiff: granular foreign key reference errors #14682
  • schemadiff: pursue foreign key errors and proceed to build schema #14705
  • schemadiff: additional FK column type matching rules #14751
  • Fix order by and group by normalization #14764
  • reduce NOWAIT usage to tables with unique keys for foreign key plans #14772
  • vtgate: record warning for partially successful cross-shard commits #14848
  • Added support for group_concat and count distinct with multiple expressions #14851
  • Multi Table Delete Planner Support #14855
  • Improve sharded query routing for tuple list #14892
  • Make Schema Tracking case-sensitive #14904
  • Explain Statement plan improvement #14928
  • planner: support cross shard DELETE with LIMIT/ORDER BY #14959
  • transaction_mode variable to return flag default if unset #15032
  • evalengine: Implement LAST_DAY #15038
  • schemadiff: analyze and report foreign key loops/cycles #15062
  • Add support for multi table deletes with foreign keys #15081
  • Add support for delete planning with limits in presence of foreign keys #15097

TabletManager

  • Allow for passing in the MySQL shutdown timeout #14568

Throttler

  • Tablet throttler: post 18 refactoring, race condition fixes, unit & race testing, deprecation of HTTP checks #14181

VReplication

  • vreplication timeout query optimizer hints #13840
  • VReplication: Ensure that RowStreamer uses optimal index when possible #13893
  • go/vt/wrangler: add len(qr.Rows) check to no streams found log msg #14062
  • Migrate CreateLookupVindex and ExternalizeVindex to vtctldclient #14086
  • set vreplication net read and net write timeout session vars to high values #14203
  • allow tablet picker to exclude specified tablets from its candidate list #14224
  • VReplication: Add --all-cells flag to create sub-commands #14341
  • go/vt/wrangler: reduce VReplicationExec calls when getting copy state #14375
  • VStream: Skip vindex keyrange filtering when we can #14384
  • implement --max-report-sample-rows for VDiff #14437
  • VReplication VPlayer: support statement and transaction batching #14502
  • Snapshot connection: revert to explicit table locks when FTWRL is unavailable #14578
  • VReplication: Improve replication plan error messages #14752
  • VDiff: Support a max diff time for tables #14786
  • VDiff: Support diffing tables without a defined Primary Key #14794

VTAdmin

  • Optimize the GetWorkflows RPC #14212

vtctldclient

  • Support cluster bootstrapping in vtctldclient #14315

vttestserver

  • Make vttestserver docker image work with vtctldclient #14665

Feature Request

Build/CI

  • Automatically update the Golang dependencies using a CRON #14891

Cluster management

  • [release-19.0] [vtctldclient] Add GetShardReplication (#15389) #15390

Evalengine

  • evalengine: implement AggregateEvalTypes #15085

Query Serving

  • Cache stream query plans in vttablet #13264
  • Foreign key on update action with non literal values #14278
  • Replace into statement plan with foreign keys : unsharded #14396
  • Enable REPLACE INTO engine and Fix Foreign key locking issue #14532
  • Add foreign key support for insert on duplicate key update #14638
  • Multi Table Delete Support: join with reference table #14784
  • schemadiff: EnumReorderStrategy, checking if enum or set values change ordinal #15106

VReplication

  • Provide subset of shards for certain VReplication Commands #14873

VTAdmin

  • vtadmin onlineddl endpoints #15114
  • [release-19.0] vtadmin onlineddl endpoints (#15114) #15144

Internal Cleanup

Backup and Restore

  • vtbackup: Fix copy pasta typo in option description #14664

Build/CI

  • Typo fix and remove unsupported branch for go version upgrade matrix #14896
  • Reduce the frequency of the golang dependency upgrade CRON #15008
  • Remove codebeat badge #15116

CLI

  • Make vtctldclient mount command more standard #14281
  • remove deprecated flags from the codebase #14544
  • cleanup deprecated flag types in tabletenv #14733

Cluster management

  • Enable verbose logging for some more RPCs #14770
  • go/vt/topo: add error value to GetTablet logs #14846

Docker

  • Remove MYSQL_FLAVOR from all Docker images #14159

Documentation

  • Fix broken link in docker readme #14222
  • Mention roadmap planning/modification in the release process #14254

Evalengine

  • refactor: introduce evalengine type and use it #14292
  • sqlparser: export all Expr interfaces #14371
  • evalengine: Proper support for bit literals #14374
  • evalengine: fix numeric coercibility #14473
  • evalengine: Internal cleanup and consistency fixes #14854

General

  • chore: unnecessary use of fmt.Sprintf #14328
  • Miscellaneous typo fixes to comments #14472
  • Refactor: use NonEmpty() instead of !IsEmpty() #14499
  • Fix license header typo #14630
  • go/vt/vtgate: fix nilness issues #14685
  • go/vt/vttablet: fix nilness issues #14686
  • go/vt/vtadmin: fix nilness issues #14687
  • go/cache: fix nilness issues and unused code #14688
  • Keyspace ServedFrom: remove this deprecated attribute and related code #14694
  • go/vt/topo: fix nilness issues and unused variables #14709
  • go/vt/wrangler: fix nilness issues and unused variable #14710
  • go/vt/vtctl: fix nilness issues and error scopes #14711
  • mysql: Refactor out usage of servenv #14732
  • Remove servenv usage and config flags from collations #14781
  • Remove unused EventStreamer #14783
  • Cleanup of dead code #14799
  • go: resolve various nilness issues #14803
  • sqlparser: Refactor out servenv and inject everywhere #14822
  • Allow for building 32 bit libraries for subparts #14841
  • Improve links in README #14867
  • Use one canonical style for unlimited queries #14870
  • Fix a number of CodeQL warnings #14882
  • Update Go dependencies #14888
  • Modify the release instructions to properly clone Vitess when using the vtop examples #14889
  • Dead code cleanup #14894
  • Refactor out more usage of servenv for mysql version #14938
  • refac: deprecate vitess/go/maps2 for golang.org/x/exp/maps #14960
  • vtenv: Introduce vtenv for passing in collation & parser information #14994

Observability

  • Remove some logs that are logging excessively on large clusters #14825
  • vstreamer: rm excessive logging #14856

Online DDL

  • New unified internal table names format, part 1: identifying and accepting new format tables #14613

Query Serving

  • Use panic instead of errors inside the operator package #14085
  • sqlparser: normalize IndexInfo #14177
  • refactor plan test cases #14192
  • Rename BinaryIsAtVersion to BinaryIsAtLeastAtVersion #14269
  • Refactor: foreign key in semantic analysis phase #14273
  • Rename Foreign Key enum values in VSchema and drop FK_ prefix #14274
  • Refactor: New operator InsertionSelection to adhere to the operator model #14286
  • refactor: move more code from logical plans to ops #14287
  • evalengine: serialize to SQL #14337
  • vindexes: Efficient unicode hashing #14395
  • tx throttler: remove unused topology watchers #14412
  • sqlparser: Use KEY instead of INDEX for normalized form #14416
  • tx_throttler: delete topo watcher metric instead of deprecating #14445
  • Remove excessive VTGate logging of default planner selection #14554
  • refactor: minor cleanups in planner code #14642
  • planbuilder: clean up code #14657
  • Pass on vindex errors with wrap than overriding them #14737
  • refactor: remove more errors from operator planning #14767
  • Change variable name for better readability #14771
  • go/cache: use generics and remove unused API #14850
  • Export convertMySQLVersionToCommentVersion to use it in vitess-operator #14988
  • [release-19.0] schemadiff: Clean up MySQL version from diff hints (#15210) #15213

TabletManager

  • logging: log time taken for tablet initialization only once #14597
  • Replace use of WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS with WAIT_FOR_EXECUTED_GTID_SET #14612

Throttler

  • MaxReplicationLagModule.recalculateRate no longer fills the log #14875

VReplication

  • VReplication: VTTablet flag cleanup #14297

vtctl

  • Move all examples to vtctldclient #14226

vtctldclient

  • Fix typo for --cells flag help description in ApplyRoutingRules #14721

Performance

Evalengine

General

  • Replace usages of bytes.Buffer with strings.Builder #14539
  • [release-19.0] prevent vtctld from creating tons of S3 connections (#15296) #15401

Query Serving

  • Improved Connection Pooling #14034
  • schemadiff: improved heuristic for dependent migration permutation evaluation time #14249
  • mysql/conn: do not allocate during writes #14482
  • Use GetTabletsByCell in healthcheck #14693
  • mysql: do not allocate in parseOKPacket #15067
  • mysql: remove more allocations from parseOKPacket #15082

Throttler

  • Throttler: Use tmclient pool for CheckThrottler tabletmanager RPC #14979

Topology

  • go/vt/topo: enable concurrency for FindAllShardsInKeyspace #14670
  • Improve TopoServer Performance and Efficiency For Keyspace Shards #15047

Regression

Query Serving

  • use aggregation engine over distinct engine when overlapping order by #14359
  • Performance Fixes for Vitess 18 #14383
  • tuple: serialized form #14392
  • planbuilder: use OR for not in comparisons #14607
  • add foreign key as part of set statement when reserved connection is needed #14696
  • fix: insert on duplicate key update missing BindVars #14728
  • Subquery inside aggregration function #14844
  • [release-19.0] Fix routing rule query rewrite (#15253) #15259

Throttler

  • [release-19.0] Enable 'heartbeat_on_demand_duration' in local/examples (#15204) #15292

vttestserver

  • [release-19.0] Fix logging issue when running in Docker with the syslog daemon disabled (#15176) #15186

Release

CLI

  • [main] Add vtctldclient info to the 18.0 summary (#14259) #14265

Documentation

  • Add release instructions for Milestones #14175
  • Update v17 Release notes with a Breaking Change #14215

General

  • add release-18.0 to golang upgrade #14133
  • moving main to 19.0 snapshot #14137
  • update release notes on main after releases #14171
  • tooling: don't add bots to authors list #14411
  • move release notes of 18 to main #14474
  • v18.0.1 release notes to main #14579
  • port release notes of v18.0.2, v17.0.5 and v16.0.7 to main #14840
  • [release-19.0] Code Freeze for v19.0.0-RC1 #15137
  • [release-19.0] Release of v19.0.0-RC1 #15139
  • [release-19.0] Bump to v19.0.0-SNAPSHOT after the v19.0.0-RC1 release #15165
  • [release-19.0] Code Freeze for v19.0.0 #15358

Testing

Backup and Restore

  • Add a retry to remove the vttablet directory during upgrade/downgrade backup tests #14753

Build/CI

  • Flakes: Shutdown vttablet before mysqld in backup tests #14647
  • Tests: Fix vdiff test breakage from concurrent merge #14865
  • Flakes: De-flake TestGatewayBufferingWhenPrimarySwitchesServingState #14968
  • Remove usage of additional test package #15007
  • Revert "exclude test from race" #15014
  • Added missing tests for the sqltypes package #15056

CLI

  • Fixed bug in flagutil package and added tests #15046

General

  • Reduce wait time in test helpers #14476
  • go/vt/tlstest: fix nilness issues #14812
  • Add logging for failing tests in CI #14821
  • bytes2: Add tests for StringUnsafe and Reset methods #14940
  • Tests: Add test in syslogger for LOG_EMERG level #14942
  • Add required tests for go/acl #14943
  • Add missing test for go/bucketpool #14944
  • test: adds test for acl #14956
  • tests: improve coverage for go/bytes2/buffer.go #14958
  • tests: add tests for go/list #14962
  • tests: add tests for go/json2 #14964
  • tests: add tests for go/protoutil/duration #14965
  • tests: add tests to go/mathutil #14969
  • tests: add tests for vitess/go/cmd/zk/internal/zkfilepath #14970
  • unit test for go/sets/set.go #14973
  • Add required tests for go/mysql/hex #14976
  • Remove AppendFloat from go/mysql/format and add required tests #14986
  • tests: add tests for go/sqlescape #14987
  • tests: add tests for go/slice #14989
  • tests: Add tests for go/textutil #14991
  • tests: increase coverage for multiple files in vitess/go/stats to 100% #14997
  • tests: add tests for zkfs utilities #15002
  • Add missing tests for go/event/syslogger #15005
  • fix: Unescape(Escape(str)) now returns the original string #15009
  • tests: add tests for go/vt/hook #15015
  • Added unit tests for the tools/codegen package #15016
  • Added unit tests for the tools/releases package #15017
  • tests: Add tests for go/vt/external #15023
  • Move test files to regular names again #15037
  • Add required tests for go/unicode2 #15051
  • tests: add tests for go/mathstats #15054
  • Added tests for the go/vt/callinfo package #15059
  • Added tests for the vt/logz package #15060
  • Add required tests for go/tb #15063
  • [release-19.0] modernize various tests (#15184) #15198

Query Serving

  • Fix data race in TestWarmingReads #14187
  • vtgate: Allow more errors for the warning check #14421
  • vtgate: Allow additional errors in warnings test #14461
  • Foreign Key Fuzzer Benchmark #14542
  • test: enable test in downgrade testing #14625
  • Refactor Upgrade downgrade tests #14782
  • Add check to avoid runtime error and add tests for go/mysql/fastparse #15000
  • tests: add tests for vt/vtgate/engine/opcode #15045
  • tests: add tests to go/vt/vtgate/semantics/bitset #15049
  • Added test for AnalyzeStrict #15126

Throttler

  • Throttler: refactor global configuration setting as throttler member #14853
  • Throttler: fix race conditions in Operate() termination and in tests #14971

Topology

  • FlakyFix: TestZk2Topo #14162

VReplication

  • VReplication: extended e2e test for workflows with tables containing foreign key constraints #14327
  • TestStreamMigrateMainflow: fix panic in test #14420
  • Flaky TestFKExtWorkflow: fix Foreign Key stress test flakiness #14714
  • Some VReplication e2e Refactoring #14735
  • Test: Take test host/runner specs into account for VDiff diff duration test #14868
  • vtctldclient CLI validation: Add e2e test to check that options to the vtctldclient commands are supported #14957
  • [release-19.0] VtctldClient Reshard: add e2e tests to confirm CLI options and fix discovered issues. (#15353) #15364

vtctl

  • Reduce flakiness in TestShardReplicationPositions #14708