[ 
https://issues.apache.org/jira/browse/FLINK-15585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timo Walther updated FLINK-15585:
---------------------------------
        Parent: FLINK-25217
    Issue Type: Sub-task  (was: Improvement)

> Improve function identifier string in plan digest
> -------------------------------------------------
>
>                 Key: FLINK-15585
>                 URL: https://issues.apache.org/jira/browse/FLINK-15585
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table SQL / Planner
>            Reporter: Jark Wu
>            Assignee: Timo Walther
>            Priority: Major
>              Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
>             Fix For: 1.15.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we are using {{UserDefinedFunction#functionIdentifier}} as the 
> identifier string of UDFs in plan digest, for example: 
> {code:java}
> LogicalTableFunctionScan(invocation=[org$apache$flink$table$planner$utils$TableFunc1$8050927803993624f40152a838c98018($2)],
>  rowType=...)
> {code}
> However, the result of {{UserDefinedFunction#functionIdentifier}} will change 
> if we just add a method in UserDefinedFunction, because it uses Java 
> serialization. Then we have to update 60 plan tests which is very annoying. 
> In the other hand, displaying the function identifier string in operator name 
> in Web UI is verbose to users. 
> In order to improve this situation, there are something we can do:
> 1) If the UDF has a catalog function name, we can just use the catalog name 
> as the digest. Otherwise, fallback to (2). 
> 2) If the UDF doesn't contain fields, we just use the full calss name as the 
> digest. Otherwise, fallback to (3).
> 3) Use identifier string which will do the full serialization.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to