[
https://issues.apache.org/jira/browse/FLINK-23555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
weibowen updated FLINK-23555:
-----------------------------
Description:
When we write a sql like
{code:java}
select udf2(udf1(field), udf3(udf1(field) ...{code}
udf1(field) will be invoked twice. However once udf1 has a bad performance, it
will have a huge impact to the whole task. More times invoked, huger impact.
I hope that whatever how many times udf1(field) writed in sql, Flink will take
advantage of common subexpression elimination and only invoke it once.
Then i do some work on this, and the attachment tells the result.
was:
When we write a sql like
{code:java}
select udf2(udf1(field), udf3(udf1(field) ...{code}
udf1(field) will be invoked twice. However once udf1 has a bad performance, it
will have a huge impact to the whole task. More times invoked, huger impact.
I hope that whatever how many times udf1(field) writed in sql, Flink will take
advantage of common subexpression elimination and only invoke it once.
Then i do some work on this, and here is the comparison.
[^企业微信截图_ec5bf14d-2393-4c31-9c90-f0d2cbc5e827.png]
> Improve common subexpression elimination by using local references
> ------------------------------------------------------------------
>
> Key: FLINK-23555
> URL: https://issues.apache.org/jira/browse/FLINK-23555
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Planner
> Reporter: weibowen
> Priority: Major
> Fix For: 1.14.0
>
>
> When we write a sql like
> {code:java}
> select udf2(udf1(field), udf3(udf1(field) ...{code}
> udf1(field) will be invoked twice. However once udf1 has a bad performance,
> it will have a huge impact to the whole task. More times invoked, huger
> impact.
> I hope that whatever how many times udf1(field) writed in sql, Flink will
> take advantage of common subexpression elimination and only invoke it once.
> Then i do some work on this, and the attachment tells the result.
>
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)