VECTOR_ SUBVECTOR
Warning
SingleStore 9.0 gives you the opportunity to preview, evaluate, and provide feedback on new and upcoming features prior to their general availability. In the interim, SingleStore 8.9 is recommended for production workloads, which can later be upgraded to SingleStore 9.0.
On this page
Derives a vector expression from another vector expression.
It is a scalar function.
Syntax
VECTOR_SUBVECTOR(vector_expression, start_position, length)
Arguments
-
vector_
: An expression that evaluates to a vector.expression The vector must be encoded as a blob containing packed single-precision or double-precision floating-point numbers in little-endian byte order. -
start_
: A 0-indexed number to determine where to start count.position A positive index counts from the beginning of the vector. A negative index counts from the end of the vector. -
length: Length of required subvector
Return Type
A blob containing packed single-precision floating-point numbers in little-endian byte order.
Remarks
If the input is NULL
, NULL
will be returned.
You can specify the data type of the vector elements in which this operation is performed on the vector by adding a suffix to the function._
.
Suffix |
Data Type |
---|---|
|
8-bit signed integer |
|
16-bit signed integer |
|
32-bit signed integer |
|
64-bit signed integer |
|
32-bit floating-point number (IEEE standard format) |
|
64-bit floating-point number (IEEE standard format) |
Examples
CREATE TABLE vsv_t (x BLOB);INSERT INTO vsv_t VALUES (JSON_ARRAY_PACK('[1,2,3,4,5]'));
SELECT JSON_ARRAY_UNPACK (VECTOR_SUBVECTOR(x,2,2)) AS x from vsv_t;
+-------+
| x |
+-------+
| [3,4] |
+-------+
SELECT JSON_ARRAY_UNPACK (VECTOR_SUBVECTOR(x,-2,2)) AS x from vsv_t;
+-------+
| x |
+-------+
| [4,5] |
+-------+
How to Use the Vector Data Type
Currently, VECTOR_
is not supported with the vector data type.
Using VECTOR_
with the vector data type will result in an error.
SELECT vector_subvector(position, 1, 2) FROM vector_exps;
ERROR 1940 ER_VECTOR_FUNCTION_ERROR: Error with a vector function:
Function `vector_subvector` is not supported with VECTOR datatype.
There is a way to use VECTOR_
with a vector data type.
Example
Set the position column to use vectors and the vector data type:
SET @pos = '[1,2,3,4]':>vector(4);
Cast to a blob data type:
SELECT vector_subvector(@pos:>blob, 1,2);
+------------------------------------+
| vector_subvector(@pos:>blob, 1, 2) |
+------------------------------------+
| @@@ |
+------------------------------------+
Cast to a vector data type:
SELECT vector_subvector(@pos:>blob, 1, 2):>vector(2);
+-----------------------------------------------+
| vector_subvector(@pos:>blob, 1, 2):>vector(2) |
+-----------------------------------------------+
| [2,3] |
+-----------------------------------------------+
Last modified: January 26, 2024