5dd052d386
[Function](array) support array_range function ( #13547 )
...
* array_range with 3 impl
* [Function](array) support array_range function
* update
* update code
2022-10-28 08:40:24 +08:00
235c105554
[feature-array](array-type) Add array function array_enumerate ( #13612 )
...
Add array function array_enumerate
2022-10-25 15:12:11 +08:00
3ca8bfaf30
[Function](array) support array_difference function ( #13440 )
2022-10-21 10:57:37 +08:00
5913c7c52c
[feature-wip](array-type) add function array_slice ( #11054 )
...
array_slice function returns a slice of the array.
2022-07-27 18:43:52 +08:00
3744321f01
[feature-wip](array-type) add function array_union/array_except/array_intersect ( #10781 )
...
Add array_union/array_except/array_intersect function.
2022-07-22 13:50:13 +08:00
2d5aca18fb
[feature-wip](array) add the array_sort function ( #10598 )
...
Co-authored-by: hucheng01 <hucheng01@baidu.com >
2022-07-18 10:52:42 +08:00
cc84cfcc0e
[feature-wip](array-type) add function array_remove ( #10385 )
...
Description:
array_remove function remove all elements in array which is equal to the target.
2022-07-15 17:57:49 +08:00
eb079950cb
[feature-wip] (array-type) add the array_distinct function ( #10388 )
...
* add the array_distinct function
* add the support for decimal and update variable names
* add docs and regression test for array_distinct function
Co-authored-by: hucheng01 <hucheng01@baidu.com >
2022-07-12 17:02:42 +08:00
ec6620ae3e
[feature-wip](array-type) add function arrays_overlap ( #10233 )
2022-06-30 08:12:29 +08:00
5e47b03595
[feature-wip](array-type) Add array aggregation functions ( #10108 )
2022-06-17 11:07:49 +08:00
6fab1cbf3c
[feature-wip](array-type) Add array functions size and cardinality ( #9921 )
...
Co-authored-by: cambyzju <zhuxiaoli01@baidu.com >
2022-06-09 15:03:03 +08:00
4d516bece8
[feature-wip](array-type)Add element_at and subscript functions ( #8597 )
...
Describe the overview of changes.
1. add function element_at;
2. support element_subscript([]) to get element of array, col_array[N] <==> element_at(col_array, N);
3. return error message instead of BE crash while array function execute failed;
element_at(array, index) desc:
> Returns element of array at given **(1-based)** index.
If **index < 0**, accesses elements from the last to the first.
Returns NULL if the index exceeds the length of the array or the array is NULL.
Usage example:
1. create table with ARRAY type column and insert some data:
```
+------+------+--------+
| k1 | k2 | k3 |
+------+------+--------+
| 1 | 2 | [1, 2] |
| 2 | 3 | NULL |
| 4 | NULL | [] |
| 3 | NULL | NULL |
+------+------+--------+
```
2. enable vectorized:
```
set enable_vectorized_engine=true;
```
3. element_subscript([]) usage example:
```
> select k1,k3,k3[1] from array_test;
+------+--------+----------------------------+
| k1 | k3 | %element_extract%(`k3`, 1) |
+------+--------+----------------------------+
| 3 | NULL | NULL |
| 1 | [1, 2] | 1 |
| 2 | NULL | NULL |
| 4 | [] | NULL |
+------+--------+----------------------------+
```
4. element_at function usage example:
```
> select k1,k3 from array_test where element_at(k3, -1) = 2;
+------+--------+
| k1 | k3 |
+------+--------+
| 1 | [1, 2] |
+------+--------+
```
2022-04-02 12:03:56 +08:00
71ce3c4a6e
[feature-wip](array-type) Add codes and UT for array_contains and array_position functions ( #8401 ) ( #8589 )
...
array_contains function Usage example:
1. create table with ARRAY column, and insert some data:
```
> select * from array_test;
+------+------+--------+
| k1 | k2 | k3 |
+------+------+--------+
| 1 | 2 | [1, 2] |
| 2 | 3 | NULL |
| 4 | NULL | [] |
| 3 | NULL | NULL |
+------+------+--------+
```
2. enable vectorized:
```
> set enable_vectorized_engine=true;
```
3. select with array_contains:
```
> select k1,array_contains(k3,1) from array_test;
+------+-------------------------+
| k1 | array_contains(`k3`, 1) |
+------+-------------------------+
| 3 | NULL |
| 1 | 1 |
| 2 | NULL |
| 4 | 0 |
+------+-------------------------+
```
4. also we can use array_contains in where condition
```
> select * from array_test where array_contains(k3,1);
+------+------+--------+
| k1 | k2 | k3 |
+------+------+--------+
| 1 | 2 | [1, 2] |
+------+------+--------+
```
5. array_position usage example
```
> select k1,k3,array_position(k3,2) from array_test;
+------+--------+-------------------------+
| k1 | k3 | array_position(`k3`, 2) |
+------+--------+-------------------------+
| 3 | NULL | NULL |
| 1 | [1, 2] | 2 |
| 2 | NULL | NULL |
| 4 | [] | 0 |
+------+--------+-------------------------+
```
2022-03-22 15:42:40 +08:00