Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
Description
I found a bit confused when implementing the inner built in functions when dealing with the runtime property. Currently, it has three types of the runtime property:
1) runtimeclass which means flink provide a class to define the runtime implementation
2) runtimeProvider which means the runtime class is code generated
3) runtimeDefered which means it will use the calcite's sql operator to mapping the codegen
After some research, I found that we have 4 situations to deal:
1) non new stack operators.
2) new stack with own runtime class provided. eg: IFNULL -> runtimeClass
3) new stack translate to sql operator to provide runtime call gen. eg:IS_NOT_TRUE -> runtimeDefered
4) new stack can not mapping to calcite's operator (mainly flink internal functions) without runtime class need mapping to the runtime callgen. eg: CURRENT_WATERMARK. -> runtimeProvided