In Blink planner, the change flag of records travelling through the pipeline are part of the record itself but not part of the logical schema. This simplifies the architecture and API in many cases.
Which is why we aim adopt the same mechanism for org.apache.flink.types.Row.
Take tableEnv.toRetractStream() as an example that returns either Scala or Java Tuple2<Boolean, Row>. For FLIP-95 we need to support more update kinds than just a binary boolean.
- Add a changeflag RowKind to to Row
- Update the Row.toString() method
- Update serializers in backwards compatible way