Hi Alan,
thanks for the update. From my side, the FLIP seems good for voting.
Since it only touches a small API surface, I guess the proposal is not
very controversial.
Feel free to start a vote thread by tomorrow. If there are no objections?
Thanks,
Timo
On 02.05.24 09:45, Muhammet Orazov wrote:
Hey Alan,
Thanks for the proposal, +1!
The `isDeterministic()`[1] function is mentioned in the documentation,
I would suggest to add maybe a section for `supportsConstantFolding()`,
with short description and examples use cases (similar to the
motivation of the FLIP) where this could be useful in UDFs.
Best,
Muhammet
[1]:
https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/functions/udfs/#evaluation-methods
On 2024-04-29 22:57, Alan Sheinberg wrote:
I'd like to start a discussion of FLIP-452: Allow Skipping Invocation of
Function Calls While Constant-folding [1]
This feature proposes adding a new
method FunctionDefinition.allowConstantFolding() as part of the Flink
Table/SQL API. This would be used to determine whether an expression
containing this function should have constant-folding logic run on it,
invoking the function at planning time.
The current behavior of always doing constant-folding on function
calls is
problematic for UDFs which invoke RPCs or have other side effects in
external systems. In these cases, you either don’t want these actions to
occur during planning time, or it may be important to happen on a per
result row basis.
Note that this is a bit different than
FunctionDefinition.isDeterministic(), and can exist along-side it.
Looking forward to your feedback and suggestions.
[1]
https://cwiki.apache.org/confluence/display/FLINK/FLIP-452%3A+Allow+Skipping+Invocation+of+Function+Calls+While+Constant-folding
Thanks,
Alan