Github user fhueske commented on the pull request: https://github.com/apache/flink/pull/1138#issuecomment-142723198 Hi @jkovacs, thanks for all your efforts to make the projection work. Going for a `GenericeTypeInfo` would work in many cases but unfortunately not in all. For example `union` operates in Flink on serialization level and requires that all data sets which are unioned use the same serializer. By transparently using a `GenericTypeInfo` users might be surprised why `DataSet<Tuple2<String,Long>.union(DataSet<Tuple2<String,Long>)` does not work. If we only support OuterJoins with an explicit JoinFunction, the user has full control how to deal with null values and can even use a custom Tuple type or Tuple serializer (via `Operator.returns()`) that supports null values. In my opinion, the best approach is to only support OuterJoins with JoinFunctions.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---