[VECTOR_FLOAT16] Implement feature extension and version negotiation for Vector v2 support#2868
[VECTOR_FLOAT16] Implement feature extension and version negotiation for Vector v2 support#2868muskan124947 merged 14 commits intomainfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2868 +/- ##
============================================
+ Coverage 60.52% 60.58% +0.06%
- Complexity 4898 4904 +6
============================================
Files 151 151
Lines 34788 34822 +34
Branches 5829 5833 +4
============================================
+ Hits 21056 21098 +42
+ Misses 10916 10910 -6
+ Partials 2816 2814 -2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
This PR extends the Microsoft SQL Server JDBC driver’s vector feature support to introduce an explicit vectorTypeSupport version model, including v2 (float32 + float16) and client–server negotiation of supported vector versions.
Changes:
- Introduces a
VectorTypeSupportenum and TDS constants for vector feature extension, wiring them into connection properties and feature negotiation during login. - Adds client–server vector version negotiation in
SQLServerConnection, with a trackednegotiatedVectorVersionand a getter, and updates resource strings and public APIs (ISQLServerConnection,ISQLServerDataSource, pool proxy) to document v2 support. - Updates tests and helpers (e.g.,
VectorTestand property metadata) to recognize"v2"as a validvectorTypeSupportvalue and to support float16-specific behavior.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java |
Adds VectorTypeSupport enum mapping logical values to TDS versions, updates the vectorTypeSupport driver property default, and exposes the allowed values via SQLServerDriverPropertyInfo for configuration tooling. |
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java |
Reworks vector-type configuration to use VectorTypeSupport, adds negotiatedVectorVersion state, integrates vector version negotiation into feature extension ACK handling, and exposes getNegotiatedVectorVersion(). |
src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java |
Extends TDS constants for vector support to define explicit v1 and v2 values and updates the maximum supported version to 2. |
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerResource.java |
Updates resource strings for vectorTypeSupport to document the new valid value "v2" and keep error messages aligned with the property’s semantics. |
src/main/java/com/microsoft/sqlserver/jdbc/ISQLServerConnection.java |
Updates the setVectorTypeSupport / getVectorTypeSupport Javadoc to describe v2, aligning the public connection interface with the extended vector support options. |
src/main/java/com/microsoft/sqlserver/jdbc/ISQLServerDataSource.java |
Mirrors the vectorTypeSupport documentation updates on the DataSource API to include v2 and clarify behavior. |
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java |
Propagates and documents the extended vectorTypeSupport property through the pooled connection proxy. |
src/test/java/com/microsoft/sqlserver/jdbc/datatypes/VectorTest.java |
Extends the test helper connection factory to accept "v2" as a valid vectorTypeSupport value while otherwise preserving existing vector behavior tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java
Outdated
Show resolved
Hide resolved
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerResource.java
Outdated
Show resolved
Hide resolved
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
src/test/java/com/microsoft/sqlserver/jdbc/datatypes/VectorTest.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 12 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
src/test/java/com/microsoft/sqlserver/jdbc/datatypes/VectorTest.java
Outdated
Show resolved
Hide resolved
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java
Outdated
Show resolved
Hide resolved
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Description
For upcoming VECTOR_FLOAT16 support in the Microsoft JDBC Driver for SQL Server, this PR introduces the initial framework for vector type support handling on the client side, enabling controlled negotiation of vector capabilities between client and server.
The changes focus on making vector support explicit, extensible, and future-proof, in preparation for additional vector versions and data types.
Vector Version Negotiation Flow
Impact