VECTOR_ SUB
On this page
The VECTOR_ function subtracts the second vector from the first vector and returns a vector which is the result of that subtraction.
Syntax
VECTOR_SUB(vector_expression, vector_expression)
Arguments
-
vector_: An expression that evaluates to a vector.expression Vectors can be stored in SingleStore using the BLOBtype (Binary String Types).
Return Type
If both arguments are BLOBs, then the return type will be by default a BLOB that contains a vector encoded as 32-bit floating point numbers (F32).BLOB that contains a vector encoded using the type of the suffix.
Using VECTOR_ SUB with Vectors as BLOBs
The following examples and descriptions show the use of VECTOR_ with arguments that are both vectors stored as BLOBs.
Example 1 - BLOB Arguments
Create a table with a column of type BLOB to store the vectors.vec and type BLOB, will store the vectors.BLOBs, hence the column of type BLOB named vec.
Then use the JSON_ built-in function to easily insert properly formatted vectors.
CREATE TABLE vectors_b (id int, vec BLOB not null);INSERT INTO vectors_b VALUES (1, JSON_ARRAY_PACK('[0.1, 0.8, 0.2, 0.555]'));INSERT INTO vectors_b VALUES (2, JSON_ARRAY_PACK('[0.45, 0.55, 0.495, 0.5]'));
The following query subtracts the vector '[0. from the vectors in the vectors_ table and uses HEX to view the results in hexadecimal format.
SET @qv = JSON_ARRAY_PACK('[0.1,0.1,0.1,0.1]');SELECT id, HEX(VECTOR_SUB(vec, @qv)) as vector_subFROM vectors_bORDER BY id;
+------+----------------------------------+
| id | vector_sub |
+------+----------------------------------+
| 1 | 000000003333333FCDCCCC3DC3F5E83E |
| 2 | 3333B33E6766E63E713DCA3ECDCCCC3E |
+------+----------------------------------+Formatting Binary Vector Data for BLOBs
When using the BLOB type for vector operations, vector data can be formatted using JSON_.BLOBs.BLOB containing packed numbers in little-endian byte order.BLOBs can be of any length; however, the input blob length must be divisible by the size of the packed vector elements .
Related Topics
Last modified: July 30, 2024