Jingsong Lee created FLINK-22901:
------------------------------------
Summary: Introduce getChangeLogUpsertKeys in FlinkRelMetadataQuery
Key: FLINK-22901
URL:
https://issues.apache.org/jira/browse/FLINK-22901 Project: Flink
Issue Type: Improvement
Components: Table SQL / Planner
Reporter: Jingsong Lee
Assignee: Jingsong Lee
Fix For: 1.14.0
{code:java}
/**
* Determines the set of change log upsert minimal keys for this expression. A key is
* represented as an {@link org.apache.calcite.util.ImmutableBitSet}, where each bit position
* represents a 0-based output column ordinal.
*
* <p>Different from the unique keys: In distributed streaming computing, one record may be
* divided into RowKind.UPDATE_BEFORE and RowKind.UPDATE_AFTER. If a key changing join is
* connected downstream, the two records will be divided into different tasks, resulting in
* disorder. In this case, the downstream cannot rely on the order of the original key. So in
* this case, it has unique keys in the traditional sense, but it doesn't have change log upsert
* keys.
*
* @return set of keys, or null if this information cannot be determined (whereas empty set
* indicates definitely no keys at all)
*/
public Set<ImmutableBitSet> getChangeLogUpsertKeys(RelNode rel);
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)