You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In MySQL 9.0, Oracle has decided to add a new data type, called VECTOR. This stores a vector of floating point values natively in different table types.
While we are still a very long way out to supporting MySQL 9.0 to be used with Vitess in a cluster setup, Vitess is also used for other purposes.
The Vitess parser for example can be used standalone, as well as the Vitess MySQL protocol parser. This means that Vitess is used as part of the MySQL ecosystem also as more of a client than a server. In general, when there's a breaking change like this protocol addition, it's important to add client side support everywhere downstream before a server would start using it.
I have submitted already a PR to the Go MySQL driver for this new type (see go-sql-driver/mysql#1609) and to various other open source projects.
Given the above mentioned usages of Vitess also as a client, I believe it to be prudent to add at least the basic support for the type in Vitess. This means that we can parse the new table definition with a VECTOR type and can handle the type showing up in the protocol and binary logs. With those things in place, usages of Vitess as a library are as compatible moving forward as we can.
It also means that when we start support MySQL 9.x at some point in the future, we don't have to worry about then also delaying it because of a lack of client side support and in older versions for upgrades etc.
See also #14717 for a more general issue about Vitess usage as a library that also links to various other efforts we have done in this area. A concrete tool that would work with MySQL 9.0 schemas once this is fixed is https://github.com/planetscale/schemadiff.
To be explicit, these changes don't mean any immediate full support in Vitess for MySQL 9.0 (as we're still also working on 8.4) support, but it's done in preparation for the future to avoid compatibility problems in that future.
Use Case(s)
Prepare for the new VECTOR type being used in the MySQL ecosystem and allow it being used in the future with Vitess.
The text was updated successfully, but these errors were encountered:
In MySQL 9.0, Oracle has decided to add a new data type, called
VECTOR
. This stores a vector of floating point values natively in different table types.While we are still a very long way out to supporting MySQL 9.0 to be used with Vitess in a cluster setup, Vitess is also used for other purposes.
The Vitess parser for example can be used standalone, as well as the Vitess MySQL protocol parser. This means that Vitess is used as part of the MySQL ecosystem also as more of a client than a server. In general, when there's a breaking change like this protocol addition, it's important to add client side support everywhere downstream before a server would start using it.
I have submitted already a PR to the Go MySQL driver for this new type (see go-sql-driver/mysql#1609) and to various other open source projects.
Given the above mentioned usages of Vitess also as a client, I believe it to be prudent to add at least the basic support for the type in Vitess. This means that we can parse the new table definition with a
VECTOR
type and can handle the type showing up in the protocol and binary logs. With those things in place, usages of Vitess as a library are as compatible moving forward as we can.It also means that when we start support MySQL 9.x at some point in the future, we don't have to worry about then also delaying it because of a lack of client side support and in older versions for upgrades etc.
See also #14717 for a more general issue about Vitess usage as a library that also links to various other efforts we have done in this area. A concrete tool that would work with MySQL 9.0 schemas once this is fixed is https://github.com/planetscale/schemadiff.
To be explicit, these changes don't mean any immediate full support in Vitess for MySQL 9.0 (as we're still also working on 8.4) support, but it's done in preparation for the future to avoid compatibility problems in that future.
Use Case(s)
Prepare for the new
VECTOR
type being used in the MySQL ecosystem and allow it being used in the future with Vitess.The text was updated successfully, but these errors were encountered: