Documentation Home
MySQL 9.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.4Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


14.21 Vector Functions

MySQL 9.0 supports SQL functions to work with VECTOR values. These functions are described in this section.

Table 14.31 Vector Functions

Name Description
STRING_TO_VECTOR() Get the binary value of the VECTOR column represented by a conforming string
VECTOR_DIM() Get the length of a vector (that is, the number of entries it contains)
VECTOR_TO_STRING() Get the string representation of a VECTOR column, given its value as a binary string

  • STRING_TO_VECTOR(string)

    Converts a string representation of a vector to a binary one. The expected format of the string consists of a list one or more comma-separated float values, encased in square brackets ([ ]). Values may be expressed using decimal or scientific notation. Since the argument is a string, it must be quoted.

    TO_VECTOR() is a synonym for this function.

    Examples:

    mysql> SELECT STRING_TO_VECTOR("[1.05, -17.8, 32]");
    +---------------------------------------+
    | STRING_TO_VECTOR("[1.05, -17.8, 32]") |
    +---------------------------------------+
    | 0x6666863F66668EC100000042            |
    +---------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT TO_VECTOR("[1.05, -17.8, 32, 123.456]");
    +-----------------------------------------+
    | TO_VECTOR("[1.05, -17.8, 32, 123.456]") |
    +-----------------------------------------+
    | 0x6666863F66668EC10000004279E9F642      |
    +-----------------------------------------+
    1 row in set (0.00 sec)

    VECTOR_TO_STRING() is the inverse of this function:

    mysql> SELECT VECTOR_TO_STRING(STRING_TO_VECTOR("[1.05, -17.8, 32]"));
    +---------------------------------------------------------+
    | VECTOR_TO_STRING(STRING_TO_VECTOR("[1.05, -17.8, 32]")) |
    +---------------------------------------------------------+
    | [1.05000e+00,-1.78000e+01,3.20000e+01]                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
  • VECTOR_DIM(vector)

    Given a VECTOR column value, this function returns the number of entries the vector contains.

    Example:

    mysql> SELECT VECTOR_DIM(0x0040004000800080);
    +--------------------------------+
    | VECTOR_DIM(0x0040004000800080) |
    +--------------------------------+
    |                              2 |
    +--------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT VECTOR_DIM(TO_VECTOR('[2, 3, 5]') );
    +-------------------------------------+
    | VECTOR_DIM(TO_VECTOR('[2, 3, 5]') ) |
    +-------------------------------------+
    |                                   3 |
    +-------------------------------------+
    1 row in set (0.00 sec)

    An argument to this function that cannot be parsed as a vector value raises an error.

  • VECTOR_TO_STRING(vector)

    Given the binary representation of a VECTOR column value, this function returns its string representation, which is in the same format as described for the argument of the STRING_TO_VECTOR() function.

    FROM_VECTOR() is accepted as a synonym for this function.

    Examples:

    mysql> SELECT VECTOR_TO_STRING(0x00000040000040400000A0400000E040);
    +------------------------------------------------------+
    | VECTOR_TO_STRING(0x00000040000040400000A0400000E040) |
    +------------------------------------------------------+
    | [2.00000e+00,3.00000e+00,5.00000e+00,7.00000e+00]    |
    +------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT FROM_VECTOR(0x00000040000040400000A040);
    +-----------------------------------------+
    | FROM_VECTOR(0x00000040000040400000A040) |
    +-----------------------------------------+
    | [2.00000e+00,3.00000e+00,5.00000e+00]   |
    +-----------------------------------------+
    1 row in set (0.00 sec)

    An argument to this function that cannot be parsed as a vector value raises an error.

    The maximum size of the output of this function is 262128 (16 * 16383) bytes.