d03bb4ba7b
[Optimize](function) Optimize locate function by compare across strings ( #20290 )
...
Optimize locate function by compare across strings. about 90% speed up test by sum()
2023-06-05 12:43:14 +08:00
59a0f80233
[Improve](array-function)Improve array function intersect ( #20085 )
...
now we just support array function with 2 arrays , but intersect operator can support more than 2 arrays
2023-06-05 10:38:48 +08:00
d68f3f3b3d
[Feature](array-functions)improve array functions for array_last_index ( #20294 )
...
Now we just support array_first_index for lambda input , but no array_last_index
2023-06-02 13:54:03 +08:00
519f01133a
[feature](decimal)support cast rounding half up and div precision increment in decimalv3. ( #19811 )
2023-06-01 13:09:58 +08:00
ff05217a1e
[regression](p0) fix test for array_enumerate_uniq ( #20231 )
2023-05-30 22:14:19 +08:00
bb12a1cb49
[Enhance](array function) add support for DecimalV3 for array_enumerate_uniq() ( #17724 )
2023-05-30 13:09:19 +08:00
55ccddb62c
[Conf](decimalv3) enable decimalv3 by default
2023-05-29 15:38:31 +08:00
f54a068d82
[feature](function) add json->operator convert to json_extract ( #19899 )
2023-05-27 12:45:45 +08:00
43aa062fb1
[Chore](hash-join) remove useless conditions and add some case ( #20050 )
2023-05-26 14:45:24 +08:00
ee34b6de2d
[Refact] (serde) refact mysql serde with data type ( #19543 )
...
refact mysql output (de)serialize with data type serde , avoid accoriding switch case Primitive type writed in mysqlWriter
2023-05-26 14:11:17 +08:00
9945067e3c
[Bug](function) make VcompoundPred optimization work well ( #19870 )
...
make VcompoundPred optimization work well
#19818 this pr try to enable VcompoundPred optimization but get wrong result on tpcds q28.
The reason is some nullable logic on mysql need special handling.
mysql [regression_test_tpcds_sf1_p1]>select null and false;
+----------------+
| NULL AND FALSE |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)
mysql [regression_test_tpcds_sf1_p1]>select null and true;
+---------------+
| NULL AND TRUE |
+---------------+
| NULL |
+---------------+
1 row in set (0.00 sec)
mysql [regression_test_tpcds_sf1_p1]>select null or false;
+---------------+
| NULL OR FALSE |
+---------------+
| NULL |
+---------------+
1 row in set (0.00 sec)
mysql [regression_test_tpcds_sf1_p1]>select null or true;
+--------------+
| NULL OR TRUE |
+--------------+
| 1 |
+--------------+
1 row in set (0.00 sec)
2023-05-22 18:32:17 +08:00
d64be9565d
[Bug](function) fix function in get wrong result when input const column ( #19791 )
...
fix function in get wrong result when input const column
2023-05-22 10:58:29 +08:00
67dc68630b
[Improve](complex-type)improve array/map/struct creating and function with decimalv3 ( #19830 )
2023-05-19 17:43:36 +08:00
88ca4f3e6b
[feature](like) make like regexp used as a sql function ( #19755 )
2023-05-18 10:03:12 +08:00
1d05feea1b
[Feature](Nereids) add executable function to support fold constant for functions ( #18209 )
...
1. Add date-time functions for fold constant for Nereids.
This is the list of executable date-time function nereids supports up to now:
- now()
- now(int)
- current_timestamp()
- current_timestamp(int)
- localtime()
- localtimestamp()
- curdate()
- current_date()
- curtime()
- current_time()
- date_{add/sub}(),{years/months/days/hours/minutes/seconds}_{add/sub}()
- datediff()
- {date/datev2}()
- {year/quarter/month/day/hour/minute/second}()
- dayof{year/month/week}()
- date_format()
- date_trunc()
- from_days()
- last_day()
- to_monday()
- from_unixtime()
- unix_timestamp()
- utc_timestamp()
- to_date()
- to_days()
- str_to_date()
- makedate()
2. solved problem:
- enable datev2/datetimev2 default.
- refactor Nereids foldConstantOnFE and support fold nested expression.
- separate the executable into multi-files for easily-reading and adding new functions
2023-05-17 21:26:31 +08:00
48ec530d2c
[fix](functions) fix least/greatest function coredump bug ( #19462 )
...
fix least/greatest function coredump bug
2023-05-17 14:12:52 +08:00
325a1d4b28
[vectorized](function) support array_count function ( #18557 )
...
support array_count function.
array_count:Returns the number of non-zero and non-null elements in the given array.
2023-05-16 17:00:01 +08:00
e9392780a9
[fix](nereids)fix some nereids planner bugs ( #19509 )
...
1.some encrypt and decrypt functions have wrong blockEncryptionMode
2.topN node should compare tuples from intermediate_row_desc with first_sort_slot.tuple_id
3.must keep the limit if it's an uncorrelated in-subquery with limit on sort, like select a from t1 where a in ( select b from t2 order by xx limit yy )
2023-05-12 09:06:16 +08:00
39ec8aa64c
[refactor](complex-type) refactor array/map/struct literal to not invoke execute() function in prepare state ( #19068 )
2023-05-11 18:44:37 +08:00
834bf2eab7
[feature](array) Add array_last lambda function ( #18388 )
...
Add array_last lambda function
2023-05-11 13:15:54 +08:00
47edc5a06e
[fix](functions) Support nullable column for multi_string functions ( #19498 )
2023-05-11 01:13:13 +08:00
5473795a51
[Bug](scan) forbiden push down in predicate when in_state->use_set is false ( #19471 )
...
forbiden push down in predicate when in_state->use_set is false
2023-05-10 11:12:20 +08:00
4c6ca88088
Revert "[refactor](function) ignore DST for function from_unixtime ( #19151 )" ( #19333 )
...
This reverts commit 9dd6c8f87b73db238bfd38fb1d76f3796910f398.
2023-05-06 16:33:58 +08:00
9dd6c8f87b
[refactor](function) ignore DST for function from_unixtime ( #19151 )
2023-05-05 11:51:49 +08:00
20395ce501
[feature](array_function): add support for array_cum_sum function ( #18231 )
2023-04-27 09:57:13 +08:00
d037938a4c
[vectorzied](function) fix year_floor get result is incorrectly ( #19006 )
2023-04-26 11:39:22 +08:00
17b59df8dd
[fix](function) Array_map compared offset rows one by one ( #18406 )
...
Array_map 's multi columns compare not only nested data rows to be equal,but also the offsets data must equal each other.
2023-04-25 19:12:19 +08:00
ab2a6864bc
[function](json) Json unquote ( #18037 )
2023-04-24 10:33:29 +08:00
b75f4c97f3
[function](string) support char function ( #18878 )
...
* [function](string) support char function
* fix
2023-04-22 08:36:48 +08:00
ec1ab1a3d2
[Improve](GEO)wkb input and output are represented as hexadecimal strings And delete EWKB ( #18721 )
2023-04-21 15:11:18 +08:00
0b074ade02
[fix](const column) fix coredump caused by const column for some functions ( #18737 )
2023-04-18 13:57:55 +08:00
6b351a2818
[vectorzied](function) fix array_map function analyzed failed with order by clause ( #18676 )
...
* [vectorzied](function) fix array_map function analyzed failed with order by clause
* add test
2023-04-18 12:01:44 +08:00
5300b21db7
[Bug](DECIMALV3) report failure if a decimal value is overflow ( #18336 )
2023-04-17 13:18:14 +08:00
092d81f88a
[BugFix](functions) fix multi_search_all_positions #18682
2023-04-17 08:32:57 +08:00
8751f08d5a
[bugfix](GEO)fix precision problem ( #18642 )
2023-04-14 10:39:19 +08:00
2f64a8b387
[feature](GEO)Support read/write WKB/EWKB to gis types ( #18526 )
...
Support mutual conversion from wkb and gis types.also compatible with EWKB format
https://cwiki.apache.org/confluence/display/DORIS/DSIP-033%3A+More+GEO+functions
2023-04-13 16:25:18 +08:00
df0aaece1d
[Function](test) add some test cases for agg functions ( #18610 )
2023-04-13 10:23:41 +08:00
d57371da13
[feature](struct-type) support basic struct constructor function ( #18190 )
...
This commit will support struct and named_struct function.
2023-04-13 09:18:00 +08:00
1238f6de97
[bug](array) fix be core in array_with_constant/array_repeat function when the first argument is nullable ( #18404 )
...
fix be core in array_with_constant/array_repeat function when the first argument is nullable
2023-04-11 19:46:41 +08:00
101737023c
[Bug](round) fix wrong scale for round-like function ( #18507 )
2023-04-11 09:36:59 +08:00
0517616242
[vectorized](function) support array_repeat function to be compatible with hive syntax ( #18028 )
...
---------
Co-authored-by: zhangyu209 <zhangyu209@meituan.com >
2023-04-08 15:50:28 +08:00
d881d71cd1
[Bug](cast) Fix bug for cast function between datetimev2 and string ( #18442 )
...
Fix bug for cast function between datetimev2 and string
2023-04-07 22:02:15 +08:00
c32adba1cf
[Refactor](Pipeline) Refactor pipeline code to improve coverage ( #18376 )
...
Refactor pipeline code to improve coverage
2023-04-07 13:09:44 +08:00
550c8aa648
[Bug](DECIMALV3) fix wrong decimal scale returned by function round ( #18375 )
2023-04-06 14:44:21 +08:00
8b85c55117
[vectorized](function) Support array_shuffle and shuffle function. ( #18116 )
...
---------
Co-authored-by: zhangyu209 <zhangyu209@meituan.com >
2023-04-04 08:53:13 +08:00
961f5d1bb7
[feature](function)Add St_Angle/St_Azimuth function ( #18293 )
...
Add St_Angle/St_azimuth function:
St_Angle:
Enter three point, which represent two intersecting lines. Returns the angle between these lines. Point 2 and point 1 represent the first line and point 2 and point 3 represent the second line. The angle between these lines is in radians, in the range [0, 2pi). The angle is measured clockwise from the first line to the second line.
`
mysql> SELECT ST_Angle(ST_Point(1, 0),ST_Point(0, 0),ST_Point(0, 1));
+----------------------------------------------------------------------+
| st_angle(st_point(1.0, 0.0), st_point(0.0, 0.0), st_point(0.0, 1.0)) |
+----------------------------------------------------------------------+
| 4.71238898038469 |
+----------------------------------------------------------------------+
1 row in set (0.04 sec)
`
St_azimuth:
Enter two point, and returns the azimuth of the line segment formed by points 1 and 2. The azimuth is the angle in radians measured between the line from point 1 facing true North to the line segment from point 1 to point 2.
`
mysql> SELECT st_azimuth(ST_Point(0, 0),ST_Point(1, 0));
+----------------------------------------------------+
| st_azimuth(st_point(0.0, 0.0), st_point(1.0, 0.0)) |
+----------------------------------------------------+
| 1.5707963267948966 |
+----------------------------------------------------+
1 row in set (0.04 sec)
2023-04-03 13:01:59 +08:00
94e3472050
[bug](function) fix count equal function return incorrect value ( #18200 )
...
fix count equal function return incorrect value
2023-04-03 11:20:36 +08:00
20b3bdb000
[vectorized](function) support array_first_index function ( #18175 )
...
mysql> select array_first_index(x->x+1>3, [2, 3, 4]);
+-------------------------------------------------------------------+
| array_first_index(array_map([x] -> x(0) + 1 > 3, ARRAY(2, 3, 4))) |
+-------------------------------------------------------------------+
| 2 |
+-------------------------------------------------------------------+
mysql> select array_first_index(x -> x is null, [null, 1, 2]);
+----------------------------------------------------------------------+
| array_first_index(array_map([x] -> x(0) IS NULL, ARRAY(NULL, 1, 2))) |
+----------------------------------------------------------------------+
| 1 |
+----------------------------------------------------------------------+
mysql> select array_first_index(x->power(x,2)>10, [1, 2, 3, 4]);
+---------------------------------------------------------------------------------+
| array_first_index(array_map([x] -> power(x(0), 2.0) > 10.0, ARRAY(1, 2, 3, 4))) |
+---------------------------------------------------------------------------------+
| 4 |
+---------------------------------------------------------------------------------+
2023-03-31 12:51:29 +08:00
1b2aaab2f2
[vectorized](bug) fix some case in enable fold constant ( #17997 )
...
fix some case in enable fold constant
2023-03-31 11:41:31 +08:00
525f15dddf
[vectorized](function) support array_sortby function ( #18071 )
2023-03-30 11:07:49 +08:00