[jira] [Created] (FLINK-22901) Introduce getChangeLogUpsertKeys in FlinkRelMetadataQuery

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-22901) Introduce getChangeLogUpsertKeys in FlinkRelMetadataQuery

Shang Yuanchun (Jira)
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)