当前的确是还没有表达式复用的优化,所以表达式最终都是会重复执行的。
这个应该是未来要优化的一个点,我们内部也是刚刚做了这个feature。

这个没有复用不只是在SQL里面看到的多少次,就会执行多少次,而是在
plan的过程中会将表达式完全展开,比如下面的SQL:
```SQL
SELECT my_map['key1'] as key1, my_map['key2'] as key2, my_map['key3'] as
key3
FROM (
  SELECT dump_json_to_map(col1) as my_map
  FROM T
)
```
这种写法也会将`dump_json_to_map`这个函数执行3次。

HunterXHunter <[email protected]> 于2021年3月3日周三 上午9:43写道:

> 为什么4次是没问题的,感觉只执行一次才是最优的
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/



-- 

Best,
Benchao Li

回复