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
The current SQL Client driver in DAB 2.0.x is Microsoft.Data.SqlClient version 5.2.3. 2. SQL Client version 6.1.0 introduces the SqlVector type, extending System.Data.SqlDbTypes. We must upgrade. #3422
Vector data type
In SQL (Azure SQL Database and SQL Server 2025+), the VECTOR datatype is an ordered array of FLOAT32 values (single-precision floating point numbers). Float16 is a coming feature and is outside the scope of this feature.
The goal of this feature is to make VECTOR a first-class supported SQL type in Data API builder (DAB). Tables, views, and stored procedures that contain vector columns or parameters should no longer be excluded from configuration, metadata discovery, or runtime execution.
DAB treats VECTOR like any other supported SQL type such as INT or VARCHAR.
Working sample table
CREATETABLEembeddings (
id INTPRIMARY KEY,
embedding VECTOR(1536)
)
Behavior
Configuration
Note
No configuration changes are required.
DAB discovers vector columns and parameters through normal database metadata inspection.
Important
The current SQL Client driver in DAB 2.0.x is Microsoft.Data.SqlClient version 5.2.3. 2. SQL Client version 6.1.0 introduces the SqlVector type, extending System.Data.SqlDbTypes. We must upgrade. #3422
Vector data type
In SQL (Azure SQL Database and SQL Server 2025+), the
VECTORdatatype is an ordered array ofFLOAT32values (single-precision floating point numbers). Float16 is a coming feature and is outside the scope of this feature.The goal of this feature is to make
VECTORa first-class supported SQL type in Data API builder (DAB). Tables, views, and stored procedures that contain vector columns or parameters should no longer be excluded from configuration, metadata discovery, or runtime execution.DAB treats
VECTORlike any other supported SQL type such asINTorVARCHAR.Working sample table
Behavior
Configuration
Note
No configuration changes are required.
DAB discovers vector columns and parameters through normal database metadata inspection.
{ "entities": { "embeddings": { "source": { "object": "dbo.embeddings", "type": "table" } } } }Metadata
DAB trusts the metadata reported by the database.
If SQL reports a column or parameter as
VECTOR, DAB treats it as a vector.If SQL reports a different type, DAB treats it as that type.
DAB does not inspect values or attempt to infer vector semantics.
Dimensions
Vector dimensions are treated as an implementation detail.
DAB does not expose vector dimensions through:
The vector value is represented only as an array of numbers.
Read
GraphQL
GraphQL type
REST
Response
{ "value": [ { "id": 1, "embedding": [0.01, 0.23, -0.17, 0.56, 0.88] }, { "id": 2, "embedding": [-0.04, 0.39, 0.27, -0.95, 0.02] } ] }Write
GraphQL
REST
Request
{ "id": 3, "embedding": [0.10, 0.45, -0.06, 0.08, -0.23] }Response
{ "id": 3, "embedding": [0.10, 0.45, -0.06, 0.08, -0.23] }Stored procedures
Vector parameters are supported.
SQL
CREATE PROCEDURE SearchEmbeddings @embedding VECTOR(1536) AS BEGIN SELECT * FROM embeddings; ENDRequest
{ "embedding": [0.10, 0.45, -0.06, 0.08, -0.23] }Stored procedure result sets containing vector columns are also supported.
OpenAPI
Vector columns are represented as arrays of numbers.
{ "type": "array", "items": { "type": "number" } }Null values
Nullable vector columns are supported.
{ "embedding": null }Query behavior
Vector columns participate in normal DAB operations.
Supported operations include:
DAB does not introduce vector-specific operators or query semantics.
Query validation remains the responsibility of the database provider.
Docs Info
Vector values can be large.
For example, a
VECTOR(1536)column contains 1,536 floating-point values for each row. Large vectors can increase:Applications should request and return vector values only when required.
Non-goals
The following are outside the scope of this feature:
Playground