Github user mushketyk commented on the issue: https://github.com/apache/flink/pull/3039 Hi @fhueske, @wuchong I think we can solve the problem with current `TableSource` class hierarchy in a different way. If we remove all abstract classes and move all default implementations in `TableSource` trait it will make class hierarchy much simpler. The only drawback of this is that Java users will need to provide implementations of trait methods that explicitly [call default implementations](http://stackoverflow.com/a/7637888). I don't think this bad since it's a common way to extend Scala traits. We can additionally remove `getFieldNames` and `getFieldIndices` if you think they are superfluous. But I don't think there is a big difference. What do you think @fhueske, @wuchong ?
--- 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. ---