Extended Protocol Packet Metadata
On this page
SingleStore uses the same format of column definition packet when communicating between the client and the server as the MySQL protocol.BSON and VECTOR.
By default, SingleStore does not send extended metadata in the protocol packet for backward compatibility.BSON and VECTOR type columns are sent to the clients as LONGBLOB and VARCHAR, respectively.
Extended protocol packet metadata is supported in SingleStore version 8.
Note: The MariaDB C library does not support extended metadata format.
Enable Extended Metadata
To enable sending extended metadata in the protocol packet for BSON and VECTOR data types:
SET SESSION enable_extended_types_metadata = TRUE;
enable_ is a session variable that can be set globally.
Extended Metadata Format
The packet metadata for extended types has the following structure:
|
Type |
Name |
Description |
|---|---|---|
|
|
catalog |
Catalog name. |
|
|
database |
Database name |
|
|
table |
Virtual table name |
|
|
org_ |
Physical table name |
|
|
name |
Virtual column name |
|
|
org_ |
Physical column name |
|
|
|
Length of the fixed length fields. |
|
|
character_ |
The column character set. |
|
|
column_ |
Maximum length of the field in bytes. |
|
|
type |
Column type. |
|
|
flags | |
|
|
decimals |
Number of decimal places. |
|
|
unused |
Two unused zero-bytes. |
|
|
type code of extended datatype |
Type code of the extended type. |
where, lenenc represents a length-encoded string.
For VECTOR types, the protocol packet metadata contains the following additional bytes:
|
Type |
Name |
Description |
|---|---|---|
|
|
number of vector elements |
Dimension of the |
|
|
type of vector elements |
The type of elements in the vector data. |
For VECTOR Types
For VECTOR types, the protocol packet metadata contains the following 6 bytes in addition to the default 12 bytes:
-
1 byte: Specifies the type code.
This value is 2forVECTORdata types. -
4 bytes: Specifies the dimension (number of elements) of the vector data.
-
1 byte: Specifies the type of elements in the vector data.
It can have the following values based on the type of the vector elements: Value
Vector Element Type
1F322F643I84I165I326I64
For example, the protocol packet metadata for a VECTOR(23) type column (starting from the "Length of the fixed length field" byte) is:
|
Extended Types Disabled |
Extended Types Enabled |
|---|---|
|
0c 3f 00 ff ff ff ff fd 90 00 00 00 00 |
12 3f 00 ff ff ff ff fd 90 00 00 00 00 02 17 00 00 00 01 |
where the extended bytes represent the following:
-
02: Type code forVECTORtype. -
17 00 00 00: Dimension (length) of the vector data, i.e. , 23. -
01: Vector element type, i.e. , F32.
For BSON Types
For BSON types, the protocol packet metadata contains 1 byte in addition to the default 12 bytes.1 for BSON types.
Last modified: February 25, 2025