Backwards Incompatible Changes
There are no incompatible changes in this version.
Merged PRs
dolt
- 9758: Add support for VECTOR column type
This PR implements the changes required for Dolt to support VECTOR column types (implemented in GMS in dolthub/go-mysql-server#3162)
Actually managing storage read/writes was the easy part and pretty much worked out of the box.
The most extensive changes are to the algorithm for creating vector indexes, which previously assumed that every vector was represented as a 20-byte Hash and represented paths through the tree as multiple 20-byte hashes concatenated to each other. Since VECTOR columns are stored using adaptive encoding, they may be a hash but may also be a variable-length byte buffer. Thus, the index builder needed to be smarter and represent these paths as a proper tuple. Doing it this way also allowed me to clean up the index building code in a way that is hopefully both more readable and eliminates some unnecessary memory copies. I added some clarifying comments, but it could potentially benefit from even more comments.
The other big change was to the test suites. The vector index tests had some hardcoded assumptions about the representation of vectors that needed to be fixed, so I used this as an opportunity to clean that up to.
go-mysql-server
- 3187: Allow aggregate/window functions with match expressions
fixes #6556
Seems like the scoping issue has already been fixed. - 3167: Bump go-sql-driver/mysql
The current version of go-sql-driver/mysql that we depend on doesn't support the type tag for vector types. Bumping this dependency allows us to send and receive vector types along the wire. - 3162: Add support for VECTOR type
This PR adds a VECTOR type to GMS. Vectors are arrays of 32-bit floats.
It also adds several functions that take vectors as arguments, including converting vectors to and from strings, and functions for computing distances between vectors.
Finally, it ensures that vector types work correctly when passed to existing functions (such as BIT_LENGTH, MD5, etc.)
vitess
- 431: /go.mod: bump go to 1.24.6
- 426: Length-encode vector values when sent on the wire.
GMS uses Vitess code to encode responses into the MySQL wire format.
Testing for this change is in the corresponding GMS PR.
Closed Issues
- 9762: dolt_log is "not supported while in a detached head state"