Hi Benchao, 我想搭车问一下这个代码生成是全局仅一次还是每个 call 都会走一遍流程?或者是其他策略。
Best, tison. Benchao Li <libenc...@gmail.com> 于2020年5月16日周六 下午9:50写道: > Hi, > > Flink内置函数的实现方式跟udf不太一样,很多函数是直接用的代码生成来做的。 > > 下面是以blink planner为例,大概说下流程: > 1. FlinkSqlOperatorTable 这个类里面放的是内置函数表,这个表会被calcite parse > SQL的时候用到,直接把这些函数识别为具体的某个函数定义。 > 2. > > 然后再代码生成阶段,会识别到这些函数,根据不同的函数定义,生成不同的函数实现调用。这部分你可以直接看下`org.apache.flink.table.planner.codegen.calls`这个package下的代码。 > 3. 上面第2条说的主要是scalar function的生成方式,agg > > function还要特殊一点,这部分可以参考下`org.apache.flink.table.planner.functions.aggfunctions`这个package下的代码。 > > > venn <wxchunj...@163.com> 于2020年5月16日周六 下午3:53写道: > > > 各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注 > > 册? 非常感谢各位大佬回复 > > > > > > > > Thanks a lot ! > > > > > > > > > > -- > > Benchao Li > School of Electronics Engineering and Computer Science, Peking University > Tel:+86-15650713730 > Email: libenc...@gmail.com; libenc...@pku.edu.cn >