zclllyybb opened a new issue, #48203: URL: https://github.com/apache/doris/issues/48203
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Description We plan to implement all SQL functions in other famous DBs, like MySQL, PG, Trino, CK, Hive, and more. Facilitate the users to migrate to Doris. They're very suitable for newcomers as your first Doris PR. So here's the list. Feel free to comment to pick anyone! If one is picked, I will tick it. ## Part I. Hive - [x] sinh(from Trino), asinh, atanh, acosh (Easy) @ChenMiaoi - [ ] context_ngrams @noixcn - [ ] factorial (Easy) @K-handle-Y - [ ] levenshtein - [ ] encode, decode - [ ] soundex See the newest Hive document for these functions' explanation. ## Part II. Spark - [x] map_concat (been taken for interview @HappenLee ) - [ ] regexp_extract_all for the third argument @Djanghao ## Part III. Trino&Presto - [x] regexp_count - [ ] regexp_position @lsy3993 - [ ] hamming_distance (better with levenshtein together) - [ ] human_readable_seconds - [ ] timezone_hour, timezone_minute - [ ] GEO FUNCTIONS - [ ] ST_GeomFromKML - [ ] ST_Equals, ST_Relate - [x] ST_Intersects, ST_Disjoint, ST_Touches @koi2000 - [ ] ST_Crosses, ST_Overlaps, ST_Relate, ST_Within - [ ] ST_Buffer, ST_Boundary, ST_Envelope, ST_EnvelopeAsPts, ST_ExteriorRing - [ ] geometry_nearest_points, geometry_union, ST_Union - [ ] ST_Difference, ST_Intersection, ST_SymDifference - [ ] ST_Centroid, ST_ConvexHull - [ ] ST_CoordDim, ST_Dimension - [ ] ST_Distance, ST_GeometryType, ST_Length - [ ] ST_InteriorRingN, ST_InteriorRings, ST_NumInteriorRing - [ ] ST_GeometryType, ST_IsClosed, ST_IsEmpty, ST_IsSimple, ST_IsRing, ST_IsValid - [ ] ST_PointN, ST_StartPoint, ST_EndPoint, ST_Points, ST_XMax, ST_XMin, ST_YMax, ST_YMin - [ ] simplify_geometry - [ ] ST_NumGeometries, ST_Geometries, ST_NumPoints - [ ] ARRAY FUNCTIONS - [ ] dot_product @meox3259 - [ ] trim_array @vajaw - [ ] ngrams - [ ] combinations - [ ] reduce (lambda function) @cypppper - [ ] sort (add the three arguments with lambda functor version) (Hard) - [ ] merge(HLL) @loyvon - [ ] typeof - [x] Aggregation Functions - [x] bool_or, bool_and ## Part IV. DuckDB - [ ] Math Functions - [x] even @wumeibanfa - [x] gcd, lcm @wumeibanfa - [ ] gamma - [x] signbit @wumeibanfa - [ ] String Functions - [ ] ord @CAICAIIs - [ ] Vector(Array) Functions - [ ] cross_product - [ ] cosine_similarity - [ ] Date Functions - [ ] century - [ ] Aggregation Functions - [ ] geomean @0AyanamiRei - [ ] entropy - [ ] sem - [ ] skew_pop, kurt_pop - [x] Map Functions - [x] map_contains_entry @DayuanX - [x] map_entries @DayuanX ## Part V. MySQL (High Priority) - [x] [POSITION](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_position)(easy, syntax and alias function) @wumeibanfa - [ ] [EXPORT_SET](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_export-set) (easy) - [ ] [INSERT](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_insert) (take care of utf8) @chuyi878 - [x] [MAKE_SET](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_make-set) @linrrzqqq - [ ] [MID](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_mid) - [x] [SUBSTR](https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_substr) (more syntax) @wumeibanfa - [ ] [ATAN2](https://dev.mysql.com/doc/refman/8.4/en/mathematical-functions.html#function_atan2) WITH TWO ARGS - [ ] [CURTIME](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_curtime) WITH MICROSECONDS - [ ] DAYNAME with sysvar [LC_TIME_NAMES](https://dev.mysql.com/doc/refman/8.4/en/server-system-variables.html#sysvar_lc_time_names) (code could copy from mysql, add session variable) - [ ] [GET_FORMAT](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_get-format) - [ ] [PERIOD_ADD](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_period-add), [PERIOD_DIFF](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_period-diff) - [ ] [MAKE_TIME](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_maketime) - [ ] [SUB_TIME](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_subtime) - [ ] [TIMESTAMP](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_timestamp) WITH TWO ARGS - [ ] [TIME_FORMAT](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_time-format) - [ ] [TO_SECONDS](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_to-seconds) - [ ] [UTC_DATE](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_utc-date), [UTC_TIME](https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_utc-time) - [x] [IS_IPV4](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_is-ipv4), [IS_IPV6](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_is-ipv6) @Dog-Du - [ ] [IS_UUID](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_is-uuid), [UUID_SHORT](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_uuid-short) - [ ] [UUID_TO_BIN](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_uuid-to-bin), [BIN_TO_UUID](https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_bin-to-uuid) - [ ] [INTERVAL](https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#function_interval) ## Others - [ ] json_search with 4th and 5th arguments like MySQL @ChenMiaoi More tasks is coming... ## Solution **All the guidelines to implement an SQL function are in https://github.com/apache/doris/issues/48201. Please take a carefully look at!** -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
