mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-08 06:12:55 +00:00
feat: Add VEC_PRODUCT, VEC_ELEM_PRODUCT, VEC_NORM. (#5303)
* feat: Add `vec_product(col)` function. * feat: Add `vec_elem_product` function * feat: Add `vec_norm` function.
This commit is contained in:
@@ -158,3 +158,75 @@ SELECT vec_to_string(vec_div('[1.0, -2.0]', parse_vec('[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] |
|
||||
+--------------------------------------------------------------+
|
||||
|
||||
|
||||
@@ -37,3 +37,21 @@ SELECT vec_to_string(vec_div(parse_vec('[1.0, 2.0]'), '[3.0, 4.0]'));
|
||||
SELECT vec_to_string(vec_div('[1.0, 2.0]', parse_vec('[3.0, 4.0]')));
|
||||
|
||||
SELECT vec_to_string(vec_div('[1.0, -2.0]', parse_vec('[0.0, 0.0]')));
|
||||
|
||||
SELECT vec_elem_product('[1.0, 2.0, 3.0, 4.0]');
|
||||
|
||||
SELECT vec_elem_product('[-1.0, -2.0, -3.0, 4.0]');
|
||||
|
||||
SELECT vec_elem_product(parse_vec('[1.0, 2.0, 3.0, 4.0]'));
|
||||
|
||||
SELECT vec_elem_product(parse_vec('[-1.0, -2.0, -3.0, 4.0]'));
|
||||
|
||||
SELECT vec_to_string(vec_norm('[0.0, 2.0, 3.0]'));
|
||||
|
||||
SELECT vec_to_string(vec_norm('[1.0, 2.0, 3.0]'));
|
||||
|
||||
SELECT vec_to_string(vec_norm('[7.0, 8.0, 9.0]'));
|
||||
|
||||
SELECT vec_to_string(vec_norm('[7.0, -8.0, 9.0]'));
|
||||
|
||||
SELECT vec_to_string(vec_norm(parse_vec('[7.0, -8.0, 9.0]')));
|
||||
|
||||
Reference in New Issue
Block a user