Files
greptimedb/tests/cases/standalone/common/function/vector/vector.result
xiaoniaoyouhuajiang 50b521c526 feat: add vec_dim function (#5587)
* feat:add `vec_dim` function

* delete unused imports

* Modified to be implemented correctly

* fix comment

* add order for sqlness test
2025-02-27 15:54:48 +00:00

329 lines
14 KiB
Plaintext

SELECT vec_to_string(parse_vec('[1.0, 2.0]'));
+----------------------------------------------+
| vec_to_string(parse_vec(Utf8("[1.0, 2.0]"))) |
+----------------------------------------------+
| [1,2] |
+----------------------------------------------+
SELECT vec_to_string(parse_vec('[1.0, 2.0, 3.0]'));
+---------------------------------------------------+
| vec_to_string(parse_vec(Utf8("[1.0, 2.0, 3.0]"))) |
+---------------------------------------------------+
| [1,2,3] |
+---------------------------------------------------+
SELECT vec_to_string(parse_vec('[]'));
+--------------------------------------+
| vec_to_string(parse_vec(Utf8("[]"))) |
+--------------------------------------+
| [] |
+--------------------------------------+
SELECT vec_to_string(vec_add('[1.0, 2.0]', '[3.0, 4.0]'));
+---------------------------------------------------------------+
| vec_to_string(vec_add(Utf8("[1.0, 2.0]"),Utf8("[3.0, 4.0]"))) |
+---------------------------------------------------------------+
| [4,6] |
+---------------------------------------------------------------+
SELECT vec_to_string(vec_add(parse_vec('[1.0, 2.0]'), '[3.0, 4.0]'));
+--------------------------------------------------------------------------+
| vec_to_string(vec_add(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[3.0, 4.0]"))) |
+--------------------------------------------------------------------------+
| [4,6] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_add('[1.0, 2.0]', parse_vec('[3.0, 4.0]')));
+--------------------------------------------------------------------------+
| vec_to_string(vec_add(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[3.0, 4.0]")))) |
+--------------------------------------------------------------------------+
| [4,6] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_mul('[1.0, 2.0]', '[3.0, 4.0]'));
+---------------------------------------------------------------+
| vec_to_string(vec_mul(Utf8("[1.0, 2.0]"),Utf8("[3.0, 4.0]"))) |
+---------------------------------------------------------------+
| [3,8] |
+---------------------------------------------------------------+
SELECT vec_to_string(vec_mul(parse_vec('[1.0, 2.0]'), '[3.0, 4.0]'));
+--------------------------------------------------------------------------+
| vec_to_string(vec_mul(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[3.0, 4.0]"))) |
+--------------------------------------------------------------------------+
| [3,8] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_mul('[1.0, 2.0]', parse_vec('[3.0, 4.0]')));
+--------------------------------------------------------------------------+
| vec_to_string(vec_mul(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[3.0, 4.0]")))) |
+--------------------------------------------------------------------------+
| [3,8] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_sub('[1.0, 1.0]', '[1.0, 2.0]'));
+---------------------------------------------------------------+
| vec_to_string(vec_sub(Utf8("[1.0, 1.0]"),Utf8("[1.0, 2.0]"))) |
+---------------------------------------------------------------+
| [0,-1] |
+---------------------------------------------------------------+
SELECT vec_to_string(vec_sub('[-1.0, -1.0]', '[1.0, 2.0]'));
+-----------------------------------------------------------------+
| vec_to_string(vec_sub(Utf8("[-1.0, -1.0]"),Utf8("[1.0, 2.0]"))) |
+-----------------------------------------------------------------+
| [-2,-3] |
+-----------------------------------------------------------------+
SELECT vec_to_string(vec_sub('[1.0, 1.0]', parse_vec('[1.0, 2.0]')));
+--------------------------------------------------------------------------+
| vec_to_string(vec_sub(Utf8("[1.0, 1.0]"),parse_vec(Utf8("[1.0, 2.0]")))) |
+--------------------------------------------------------------------------+
| [0,-1] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_sub('[-1.0, -1.0]', parse_vec('[1.0, 2.0]')));
+----------------------------------------------------------------------------+
| vec_to_string(vec_sub(Utf8("[-1.0, -1.0]"),parse_vec(Utf8("[1.0, 2.0]")))) |
+----------------------------------------------------------------------------+
| [-2,-3] |
+----------------------------------------------------------------------------+
SELECT vec_to_string(vec_sub(parse_vec('[1.0, 1.0]'), '[1.0, 2.0]'));
+--------------------------------------------------------------------------+
| vec_to_string(vec_sub(parse_vec(Utf8("[1.0, 1.0]")),Utf8("[1.0, 2.0]"))) |
+--------------------------------------------------------------------------+
| [0,-1] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_sub(parse_vec('[-1.0, -1.0]'), '[1.0, 2.0]'));
+----------------------------------------------------------------------------+
| vec_to_string(vec_sub(parse_vec(Utf8("[-1.0, -1.0]")),Utf8("[1.0, 2.0]"))) |
+----------------------------------------------------------------------------+
| [-2,-3] |
+----------------------------------------------------------------------------+
SELECT vec_elem_sum('[1.0, 2.0, 3.0]');
+---------------------------------------+
| vec_elem_sum(Utf8("[1.0, 2.0, 3.0]")) |
+---------------------------------------+
| 6.0 |
+---------------------------------------+
SELECT vec_elem_sum('[-1.0, -2.0, -3.0]');
+------------------------------------------+
| vec_elem_sum(Utf8("[-1.0, -2.0, -3.0]")) |
+------------------------------------------+
| -6.0 |
+------------------------------------------+
SELECT vec_elem_sum(parse_vec('[1.0, 2.0, 3.0]'));
+--------------------------------------------------+
| vec_elem_sum(parse_vec(Utf8("[1.0, 2.0, 3.0]"))) |
+--------------------------------------------------+
| 6.0 |
+--------------------------------------------------+
SELECT vec_elem_sum(parse_vec('[-1.0, -2.0, -3.0]'));
+-----------------------------------------------------+
| vec_elem_sum(parse_vec(Utf8("[-1.0, -2.0, -3.0]"))) |
+-----------------------------------------------------+
| -6.0 |
+-----------------------------------------------------+
SELECT vec_to_string(vec_div('[1.0, 2.0]', '[3.0, 4.0]'));
+---------------------------------------------------------------+
| vec_to_string(vec_div(Utf8("[1.0, 2.0]"),Utf8("[3.0, 4.0]"))) |
+---------------------------------------------------------------+
| [0.33333334,0.5] |
+---------------------------------------------------------------+
SELECT vec_to_string(vec_div(parse_vec('[1.0, 2.0]'), '[3.0, 4.0]'));
+--------------------------------------------------------------------------+
| vec_to_string(vec_div(parse_vec(Utf8("[1.0, 2.0]")),Utf8("[3.0, 4.0]"))) |
+--------------------------------------------------------------------------+
| [0.33333334,0.5] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_div('[1.0, 2.0]', parse_vec('[3.0, 4.0]')));
+--------------------------------------------------------------------------+
| vec_to_string(vec_div(Utf8("[1.0, 2.0]"),parse_vec(Utf8("[3.0, 4.0]")))) |
+--------------------------------------------------------------------------+
| [0.33333334,0.5] |
+--------------------------------------------------------------------------+
SELECT vec_to_string(vec_div('[1.0, -2.0]', parse_vec('[0.0, 0.0]')));
+---------------------------------------------------------------------------+
| vec_to_string(vec_div(Utf8("[1.0, -2.0]"),parse_vec(Utf8("[0.0, 0.0]")))) |
+---------------------------------------------------------------------------+
| [inf,-inf] |
+---------------------------------------------------------------------------+
SELECT vec_elem_product('[1.0, 2.0, 3.0, 4.0]');
+------------------------------------------------+
| vec_elem_product(Utf8("[1.0, 2.0, 3.0, 4.0]")) |
+------------------------------------------------+
| 24.0 |
+------------------------------------------------+
SELECT vec_elem_product('[-1.0, -2.0, -3.0, 4.0]');
+---------------------------------------------------+
| vec_elem_product(Utf8("[-1.0, -2.0, -3.0, 4.0]")) |
+---------------------------------------------------+
| -24.0 |
+---------------------------------------------------+
SELECT vec_elem_product(parse_vec('[1.0, 2.0, 3.0, 4.0]'));
+-----------------------------------------------------------+
| vec_elem_product(parse_vec(Utf8("[1.0, 2.0, 3.0, 4.0]"))) |
+-----------------------------------------------------------+
| 24.0 |
+-----------------------------------------------------------+
SELECT vec_elem_product(parse_vec('[-1.0, -2.0, -3.0, 4.0]'));
+--------------------------------------------------------------+
| vec_elem_product(parse_vec(Utf8("[-1.0, -2.0, -3.0, 4.0]"))) |
+--------------------------------------------------------------+
| -24.0 |
+--------------------------------------------------------------+
SELECT vec_to_string(vec_norm('[0.0, 2.0, 3.0]'));
+--------------------------------------------------+
| vec_to_string(vec_norm(Utf8("[0.0, 2.0, 3.0]"))) |
+--------------------------------------------------+
| [0,0.5547002,0.8320503] |
+--------------------------------------------------+
SELECT vec_to_string(vec_norm('[1.0, 2.0, 3.0]'));
+--------------------------------------------------+
| vec_to_string(vec_norm(Utf8("[1.0, 2.0, 3.0]"))) |
+--------------------------------------------------+
| [0.26726124,0.5345225,0.8017837] |
+--------------------------------------------------+
SELECT vec_to_string(vec_norm('[7.0, 8.0, 9.0]'));
+--------------------------------------------------+
| vec_to_string(vec_norm(Utf8("[7.0, 8.0, 9.0]"))) |
+--------------------------------------------------+
| [0.5025707,0.5743665,0.64616233] |
+--------------------------------------------------+
SELECT vec_to_string(vec_norm('[7.0, -8.0, 9.0]'));
+---------------------------------------------------+
| vec_to_string(vec_norm(Utf8("[7.0, -8.0, 9.0]"))) |
+---------------------------------------------------+
| [0.5025707,-0.5743665,0.64616233] |
+---------------------------------------------------+
SELECT vec_to_string(vec_norm(parse_vec('[7.0, -8.0, 9.0]')));
+--------------------------------------------------------------+
| vec_to_string(vec_norm(parse_vec(Utf8("[7.0, -8.0, 9.0]")))) |
+--------------------------------------------------------------+
| [0.5025707,-0.5743665,0.64616233] |
+--------------------------------------------------------------+
SELECT vec_to_string(vec_sum(v))
FROM (
SELECT '[1.0, 2.0, 3.0]' AS v
UNION ALL
SELECT '[-1.0, -2.0, -3.0]' AS v
UNION ALL
SELECT '[4.0, 5.0, 6.0]' AS v
);
+---------------------------+
| vec_to_string(vec_sum(v)) |
+---------------------------+
| [4,5,6] |
+---------------------------+
SELECT vec_to_string(vec_product(v))
FROM (
SELECT '[1.0, 2.0, 3.0]' AS v
UNION ALL
SELECT '[-1.0, -2.0, -3.0]' AS v
UNION ALL
SELECT '[4.0, 5.0, 6.0]' AS v
);
+-------------------------------+
| vec_to_string(vec_product(v)) |
+-------------------------------+
| [-4,-20,-54] |
+-------------------------------+
SELECT vec_dim('[7.0, 8.0, 9.0, 10.0]');
+----------------------------------------+
| vec_dim(Utf8("[7.0, 8.0, 9.0, 10.0]")) |
+----------------------------------------+
| 4 |
+----------------------------------------+
SELECT v, vec_dim(v)
FROM (
SELECT '[1.0, 2.0, 3.0]' AS v
UNION ALL
SELECT '[-1.0]' AS v
UNION ALL
SELECT '[4.0, 5.0, 6.0]' AS v
) Order By vec_dim(v) ASC;
+-----------------+------------+
| v | vec_dim(v) |
+-----------------+------------+
| [-1.0] | 1 |
| [1.0, 2.0, 3.0] | 3 |
| [4.0, 5.0, 6.0] | 3 |
+-----------------+------------+
SELECT v, vec_dim(v)
FROM (
SELECT '[1.0, 2.0, 3.0]' AS v
UNION ALL
SELECT '[-1.0]' AS v
UNION ALL
SELECT '[7.0, 8.0, 9.0, 10.0]' AS v
) Order By vec_dim(v) ASC;
+-----------------------+------------+
| v | vec_dim(v) |
+-----------------------+------------+
| [-1.0] | 1 |
| [1.0, 2.0, 3.0] | 3 |
| [7.0, 8.0, 9.0, 10.0] | 4 |
+-----------------------+------------+