Gustavo de Morais created FLINK-41114:
-----------------------------------------
Summary: Document the uid argument for FROM_CHANGELOG and
TO_CHANGELOG
Key: FLINK-41114
URL: https://issues.apache.org/jira/browse/FLINK-41114
Project: Flink
Issue Type: Improvement
Components: Documentation
Reporter: Gustavo de Morais
Assignee: Gustavo de Morais
The changelog conversion docs for {{FROM_CHANGELOG}} and {{TO_CHANGELOG}} don't
mention the implicit {{uid}} argument. With set semantics ({{PARTITION BY}}),
both functions use their name as the default UID. So calling the same function
twice in one job, for example in a {{STATEMENT SET}}, fails at runtime with:
{code}
java.lang.IllegalArgumentException: Hash collision on user-specified ID
"FROM_CHANGELOG". Most likely cause is a non-unique ID. Please check that all
IDs specified via `uid(String)` are unique.
{code}
The fix is to give each call a unique {{uid}}, for example
{{FROM_CHANGELOG(input => TABLE t PARTITION BY k, uid => 'changelog-1')}}. This
is only explained in the general PTF guide under "Query Evolution with UIDs",
which users of the built-in functions are unlikely to find.
We should add {{uid}} to the syntax and parameter tables of both functions and
add a short section with a multi-call example.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)