Jark Wu created FLINK-15585:
-------------------------------

             Summary: Improve function identifier string in plan digest
                 Key: FLINK-15585
                 URL: https://issues.apache.org/jira/browse/FLINK-15585
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / Planner
            Reporter: Jark Wu


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.3.4#803005)

Reply via email to