Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Good First Issues] StarRocks Function Tasks 2023 #13300

Open
wangsimo0 opened this issue Nov 11, 2022 · 49 comments
Open

[Good First Issues] StarRocks Function Tasks 2023 #13300

wangsimo0 opened this issue Nov 11, 2022 · 49 comments
Assignees

Comments

@wangsimo0
Copy link
Contributor

wangsimo0 commented Nov 11, 2022

Hi Rockstars,

This is a list of proposed function tasks. If you are new to StarRocks or just enthusiastic about building a great query engine, this is the right task list for you.
Also this is an open list, you are welcome to propose more tasks.

For others to get a better understanding of the function, proposed tasks should contain:

  • Scenario: please add your scenario as detailed as possible, for example: get the closest timestamped data or the earliest timestamped data in grouped statistics, or to create a candlestick chart of a stock.
  • If you have used it in other systems, please share your experience
  • Please open an issue that contains the information above and @kateshaowanjou or copy the link in this issue.

Before you submit a pr, please notice that:

  • Please @kateshaowanjou to book the issue, and add a comment in the issue you picked, so the issue won't be assigned to others. And
  • Always discuss with the community about the design before actually developing, the input/output, the parameters, the function's name... Anything you need to build an elegant function.
  • If you meet some trouble during the development, feel free to ask the community.
  • If you are busy and not able to accomplish this issue, don't worry, please tell us or we'll reassign the issue to others after 1 month.

StarRocks contains Scalar Functions, Aggregate Functions, Window Functions, and Lambda Functions. The difficulty is Scalar < Aggregate = Window < Lambda.

Date and Time

  1. makedate (Level: Easy) --thanks to @zhangruchubaba

  2. last_day (Level: Easy) --thanks to @vendanner

  3. next_day (Level: Easy) --thanks to @mlimwxxnn

  4. previous_day (Level: Easy) --thanks to @mlimwxxnn

  5. weekiso (Level: Easy) --thanks to @qmengss

  6. dayofweekiso (Level: Easy) --thanks to @xuzifu666

  7. date_diff (Level: Medium) --thanks to @xuzifu666

  8. convert_interval (Level: Easy) @XinzhuangL

  9. timestampadd, timestampdiff (Level: Easy)

Numeric

  1. width_bucket (Level: Easy) @TBCCC

  2. sinh, cosh, tanh --- thanks to @tomscut

  3. bit_shiftleft, bit_shfitright, bit_shiftright_logic --- thanks to @sparklezzz

Comparison

  1. isnotnull (Level: Easy) --thanks to @leoyy0316

String

  1. split_part : Need to support "-1" index (Level: Easy) --thanks to @leoyy0316

  2. substring_index (Level: Easy) @leiyang0324

  3. format() (Level: Easy)

  4. lpad : make the third parameter to be an optional parameter, with a default value ' '. (Level: Easy) --thanks to @predator4ann

  5. rpad : make the third parameter to be an optional parameter, with a default value ' '. (Level: Easy) --thanks to @predator4ann

  6. regexp_instr (Level: Easy)

  7. regexp_extract_all (Level: Easy)

  8. regexp supports an optional case-sensitive/case-insensitive parameter (Level: Easy) @numbernumberone

  9. compress (Level: Easy) @Cai-Yao

  10. uncompress (Level: Easy) @Cai-Yao

  11. strcmp() --- thanks to @tomscut

  12. ilike --- thanks to @uncleGen

  13. translate (Level: Easy)

  14. oct (Level: Easy)

  15. oct_length (Level: Easy)

  16. strpos (Level: Easy)

  17. url_encode --- thanks to @xuzifu666

  18. url_decode --- thanks to @xuzifu666

  19. url_extract_host --- thanks to @xuzifu666 and @superdiaodiao

Aggregate

  1. count_if (Level: Medium) --- thanks to @silly-carbon

  2. group_concat(distinct) (Level: Medium) @happut

  3. ifs (Level: Medium) @srikker

  4. medium() (Level: Medium)

  5. array_agg(distinct) (Level: Medium)

  6. array_unique_agg (Level: Medium)

  7. min_by --- thanks to @ucasfl

  8. percentile_disc --- thanks to @before-Sunrise

  9. boolor_agg

  10. booland_agg

  11. boolxor_agg

Array

  1. array_subscript (Level: Difficult)

  2. array_repeat (Level: Medium)

  3. array_flatten (Level: Medium)

Window

  1. NTH_VALUE (Level: Medium) --thanks to @vendanner

  2. CUME_DIST() (Level: Medium) --thanks to @Moonm3n

  3. PERCENT_RANK() (Level: Medium) --thanks to @Moonm3n

  4. MEDIUM() (Level: Medium)

  5. COUNT(DISTINCT) (Level: Medium)

Table

  1. series_generate (Level: Medium)

  2. pivot and unpivot (Level: Hard)

Utility

  1. typeof (Level: Easy) @xuzifu666

Datetime (Ultra-easy tasks)

StarRocks supports milliseconds and microseconds for datetime data type. However, there are many datetime-related functions that have not been considered milliseconds or microseconds yet.
Also, it will be greater if you find out more functions that need to be refined.
Here is a checklist from gensrc/script/functions.py according to #17499

  • least
  • greatest
  • year
  • month
  • quarter
  • dayofweek
  • to_date
  • date
  • day
  • dayofmonth
  • day
  • dayofyear
  • weekofyear
  • week
  • hour
  • minute
  • second
  • years_add
  • years_sub
  • months_add
  • months_sub
  • add_months
  • weeks_add
  • weeks_sub
  • days_add
  • days_sub
  • date_add
  • date_sub
  • adddate
  • subdate
  • hours_add
  • hours_sub
  • minutes_add
  • minutes_sub
  • seconds_add
  • seconds_sub
  • microseconds_add
  • microseconds_sub
  • years_diff
  • months_diff
  • weeks_diff
  • days_diff
  • hours_diff
  • minutes_diff
  • seconds_diff
  • datediff
  • timediff
  • now @SilvaXiang
  • current_timestamp @SilvaXiang
  • localtime @SilvaXiang
  • localtimestamp @SilvaXiang
  • str_to_date
  • date_format
  • unix_timestamp
  • dayname
  • monthname
  • convert_tz
  • utc_timestamp
  • date_trunc
  • timestamp @SilvaXiang
  • time_slice
  • if
  • ifnull
  • nullif
  • coalesce
  • array_distinct
  • array_sort
  • reverse
  • array_slice
  • array_concat
  • arrays_overlap
  • array_intersect
  • array_slice
  • array_sortby
@hzh0425
Copy link

hzh0425 commented Nov 11, 2022

Hi, Could you pls assign 'min_by' and 'percentile_disc' to me? thanks~ @wangsimo0

@tomscut
Copy link
Contributor

tomscut commented Nov 11, 2022

Hi @wangsimo0 , could you please assign sinh, cosh, tanh, split_part and strcmp() to me? Thank you.

@Dshadowzh Dshadowzh pinned this issue Nov 12, 2022
@mchades
Copy link
Contributor

mchades commented Nov 13, 2022

Hi @wangsimo0 ,Could you pls assign makedate and format to me? thx!

@TBCCC
Copy link
Contributor

TBCCC commented Nov 17, 2022

Hi @wangsimo0 I wanna have a try for WIDTH_BUCKET,Could you pls assign it to me?thx

@selectbook
Copy link
Contributor

Hi @wangsimo0, Could you please assign substring_index to me? thx!

@amorynan
Copy link
Contributor

Hi @wangsimo0 I will try NTH_VALUE , please assign to me , thx!

@wangsimo0 wangsimo0 changed the title StarRocks Function Tasks 2022 StarRocks Function Tasks 2023 Jan 4, 2023
@kateshaowanjou kateshaowanjou changed the title StarRocks Function Tasks 2023 [Challenge] StarRocks Function Tasks 2023 Mar 29, 2023
@kateshaowanjou kateshaowanjou added the good first issue Good for newcomers label Mar 29, 2023
@vendanner
Copy link
Contributor

Hi @kateshaowanjou, Could you please assign last_day to me? thx!

@zhangruchubaba
Copy link
Contributor

hi @kateshaowanjou Could you please assign makedate to me? thx!

@mlimwxxnn
Copy link
Contributor

Hi @wangsimo0 , Could you please assign next_day and previous_day to me? thx! (both from#19553)

@Tianpingan
Copy link

hi @kateshaowanjou Could you please assign isnan to me? thx!

@kateshaowanjou
Copy link
Contributor

kateshaowanjou commented Apr 3, 2023

Hi @wangsimo0 , Could you please assign next_day and previous_day to me? thx! (both from#19553)

@mlimwxxnn Since they are two different task, I'll assign the next_day to you first, when you finish this one you can take the other one. :)

@TBCCC
Copy link
Contributor

TBCCC commented Apr 4, 2023

Hi @kateshaowanjou Could pls assign width_bucket to me again?I have commented on that issue before.

@lqkkkkk
Copy link

lqkkkkk commented Apr 5, 2023

Hi @kateshaowanjou, Could you please assign split_part to me? thx!

@mlimwxxnn
Copy link
Contributor

Hi @kateshaowanjou, Could you please assign previous_day to me?
I have submitted the pr #21024 for next_day .

@predator4ann
Copy link
Contributor

Hi @kateshaowanjou, Could you please assign lpad to me? thx!

@Cai-Yao
Copy link

Cai-Yao commented Apr 6, 2023

Hi @kateshaowanjou, Could you please assign String: compress and uncompress to me? thx!

@lqkkkkk
Copy link

lqkkkkk commented Apr 6, 2023

REPEAT IT AGAIN. Hi @kateshaowanjou, Could you please assign split_part to me? thx!

@lqkkkkk
Copy link

lqkkkkk commented Apr 6, 2023

Hi @kateshaowanjou , can you assign function-array_subscript to me? I will make it, Thank you.

@kateshaowanjou
Copy link
Contributor

@lqkkkkk There's another person is also interested in split_part. Can you take function-array_subscript instead?

@chenshaojin
Copy link

Hi @kateshaowanjou , Could you please assign array_agg(distinct) to me? thx!

@leiyang0324
Copy link
Contributor

@kateshaowanjou Could you please assign substring_index to me? thx!

@kateshaowanjou
Copy link
Contributor

@lqkkkkk Please let me know which one you want to take. Thanks! 😎

@mlimwxxnn
Copy link
Contributor

Hi @kateshaowanjou , Could you please assign count_if to me? thx!

@kateshaowanjou
Copy link
Contributor

@mlimwxxnn OMG, you're so efficient.👍🏻👍🏻👍🏻

@numbernumberone
Copy link

Hi @kateshaowanjou , Could you please assign #14439 to me? thx!

@qmengss
Copy link
Contributor

qmengss commented Apr 13, 2023

hi @kateshaowanjou ,Please assign #20511 to me,thx!

@kateshaowanjou
Copy link
Contributor

@qmengss There are actually 2 different functions in #20511, weekiso & dayofweekiso. I assigned the weekiso to you.

@Moonm3n
Copy link
Contributor

Moonm3n commented Apr 26, 2023

Hi @kateshaowanjou, could you please assig rpad to me? Thank you!

@kateshaowanjou
Copy link
Contributor

@Moonm3n Sorry currently rpad is taken. Are you willing to take another one?

@Moonm3n
Copy link
Contributor

Moonm3n commented Apr 27, 2023

@Moonm3n Sorry currently rpad is taken. Are you willing to take another one?

Has anyone picked up CUME_DIST yet? If not, I would like to take this issue.

@byrantwithyou
Copy link

@kateshaowanjou I would like to pick the PERCENT_RANK issue. Would you assign it to me?

@byrantwithyou
Copy link

byrantwithyou commented Apr 30, 2023

@kateshaowanjou Could you assign me the array_union_agg(Issue #22587 )? Since the PERCENT_RANK is taken by @Moonm3n (It makes more sense to have one person implemented both PERCENT_RANK and CUME_DIST because they are very similar)

@kateshaowanjou
Copy link
Contributor

@byrantwithyou array_union_agg is assigned to you. Thanks a lot! ❤️

@wuxiaobai24
Copy link

@kateshaowanjou I would like to pick the oct and oct_length (issue #22803), Would you assign it to me?

@TBCCC
Copy link
Contributor

TBCCC commented May 5, 2023

Hi @kateshaowanjou Could pls assign array_subscript to me?thx, I've already opened a pr for my last task #22787 .

@kateshaowanjou
Copy link
Contributor

kateshaowanjou commented May 9, 2023

Hi @kateshaowanjou, Could you please assign String: compress and uncompress to me? thx!
@Cai-Yao
Are you working on uncompress too? I tried to reach you, but couldn't find you. Are you in our wechat/slack group?

@vendanner
Copy link
Contributor

Hi @kateshaowanjou Could pls assign NTH_VALUE to me? thx, I've already opened a pr for my last task #23348 .

@hongism
Copy link

hongism commented May 22, 2023

Hi @kateshaowanjou Could pls assign pivot and unpivot to me? thanks!

@liangjiawei1110
Copy link

Hi @kateshaowanjou Could pls assign array_repeat to me?

@kateshaowanjou
Copy link
Contributor

@liangjiawei1110 Can you make a comment under this issue so I can assign it to you? #19658

@SilvaXiang
Copy link
Contributor

Hi @kateshaowanjou Can you assign array_avg task for me?

@kateshaowanjou
Copy link
Contributor

@SilvaXiang Can you make a comment under #17499 so I can assign array_avg to you?

@imay imay unpinned this issue Jul 21, 2023
@kateshaowanjou kateshaowanjou pinned this issue Oct 15, 2023
@kateshaowanjou kateshaowanjou changed the title [Challenge] StarRocks Function Tasks 2023 [Good First Issues] StarRocks Function Tasks 2023 Oct 15, 2023
@XinzhuangL
Copy link
Contributor

I am new to the open community and have some knowledge of Java and C++. Can I select a task?

@XinzhuangL
Copy link
Contributor

Is there any easy task you can assign to me? I can't find an unassigned task @kateshaowanjou

@wangsimo0
Copy link
Contributor Author

Is there any easy task you can assign to me? I can't find an unassigned task @kateshaowanjou

@XinzhuangL hi thanks a lot for your interest! how about this one #33893 ? :)

@wangsimo0 wangsimo0 assigned wangsimo0 and unassigned wangsimo0 Oct 30, 2023
@XinzhuangL
Copy link
Contributor

@wangsimo0 Thank you and I'd like to try it.

@LiRuihaoA
Copy link

hi @wangsimo0, are there any java tasks can assign to me?

@Mr-LiuXu
Copy link

Mr-LiuXu commented Feb 4, 2024

hi @kateshaowanjou Could you please assign date_trunc to me? thx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests