zch93 commented on code in PR #26933:
URL: https://github.com/apache/flink/pull/26933#discussion_r2296521463


##########
flink-libraries/flink-state-processing-api/src/main/java/org/apache/flink/state/table/SavepointMetadataTableFunction.java:
##########
@@ -41,6 +46,39 @@
                                 + "operator-coordinator-state-size-in-bytes 
BIGINT NOT NULL, "
                                 + "operator-total-size-in-bytes BIGINT NOT 
NULL>"))
 public class SavepointMetadataTableFunction extends TableFunction<Row> {
+
+    public static final BuiltInFunctionDefinition SAVEPOINT_METADATA =

Review Comment:
   maybe i misunderstood what happens here with `savepoint_metadata`, but 
flink's planner can constant-fold and cache function results at plan time if it 
believes a function is deterministic. that is correct for pure math/string 
functions, but could be problematic for something like this 
`savepoint_metadata`, which read external, changing state (fs/checkpoint 
files). and between planning and exec, or between two exec, the metadata could 
change. so i just thought whether we should tell the planner this function is 
non-deterministic, so it will not pre-evaluate or cache it, and will always run 
it at exec time. idk whether the `BuiltInFunctionDefinition.newBuilder()` can 
supports to call `.deterministic(false)`, or use and override the UDF 
`isDeterministic()`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to