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

[CH]Optimize nested function calls #8557

Open
KevinyhZou opened this issue Jan 17, 2025 · 0 comments · May be fixed by #8558
Open

[CH]Optimize nested function calls #8557

KevinyhZou opened this issue Jan 17, 2025 · 0 comments · May be fixed by #8558
Labels
enhancement New feature or request

Comments

@KevinyhZou
Copy link
Contributor

KevinyhZou commented Jan 17, 2025

Description

In our online sqls, there are many nested functions calls, such as

  • select a.b.c from test_tbl => select get_struct_field((get_struct_field(a, b),c) from test_tbl
  • select count(1) from test_tbl where a = 1 and b = 2 and c = 3 => select count(1) from test_tbl where and(and(a = 1, b = 2), c = 3 )
  • select count(1) from test_tbl where a = 1 or b = 2 or c = 3 => select count(1) from test_tbl where or(or(a = 1, b = 2), c = 3 )
    .....

and these functions can be optimized by make the nested arguments collapsed , which means
get_struct_field((get_struct_field(a, b),c) => get_struct_field(a, b, c)
and(and(a = 1, b = 2), c = 3 ) => and(a =1, b=2, c=3)
or(or(a=1, b= 2), c=3) => or(a=1, b=2, c=3)
.....

which can reduce the function calls and improve performance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant