Github user hequn8128 commented on a diff in the pull request:
https://github.com/apache/flink/pull/4471#discussion_r148947758
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/util/UpdatingPlanChecker.scala
---
@@ -56,16 +58,20 @@ object UpdatingPlanChecker {
}
/** Identifies unique key fields in the output of a RelNode. */
- private class UniqueKeyExtractor extends RelVisitor {
+ private class UniqueKeyExtractor {
--- End diff --
Yes, it is necessary. Currently, output table must have keys if the table
has changes (is not append-only) or it will lead to compilation exceptions .
You can check this logic in `org.apache.flink.table.api.StreamTableEnvironment`
---