Thanks Jingsong for bringing up this discussion! +1 for #1 I think it would always be a good practice to have a unify implementation for two different user-facing API of the same functionality.
The divergence of two different implementations always bothers users. In the past, users complains a lot about that some features only exist in sql-client but not in Table API. And for now, we are facing it's counter-part problem, that we added functionality in Table API, but forgot to sync them to sql-client. I'm not very sure whether we can unify all the features of sql-client and TableEnvironment, maybe some features only exists in one place. But for the common features, I think it would be great to have a unify implementation. Jingsong Li <jingsongl...@gmail.com> 于2020年6月18日周四 下午3:19写道: > Hi all, > > I'd like to start a discussion for the new features lacking support of > Sql-client. > > I've seen the new DDL syntax that SQL client lacks support for many times. > For every new DDL syntax, we need to add support in sql-client. Add > a corresponding SqlCommand in sql-client, otherwise this DDL is still > not working in sql-client. > > But it looks like developers always forgot to add support in sql-client. > Lots of DDL features just be added in parser and planner, but lack > sql-client support, so users will wait for the next release. Just like: > https://issues.apache.org/jira/browse/FLINK-7151 > https://issues.apache.org/jira/browse/FLINK-17198 > https://issues.apache.org/jira/browse/FLINK-15468 > https://issues.apache.org/jira/browse/FLINK-15175 > > How to solve this? > I think we have two options: > > 1. Unify the parser in sql-client and TableEnvironment truly. Really make > sql-client have all abilities from TableEnvironment. sql-client just > forward sql to TableEnvironment. Can it be? > 2. A new testing framework mechanism: We can make sql-related tests more > "up front", we can move e2e tests (I think we are doing now) and it cases > to sql-client oriented. This may require a new testing framework mechanism, > for example, we can do something like hive sql testing [1] to > sql-client oriented. In this way, the testing can cover more horizontal and > vertical and it is easy to migrate tests from other systems too. And I > think, Flink's DDLs are enough stronger to support pure SQLs testing. > > What do you think? > > [1]https://github.com/apache/hive/tree/master/ql/src/test/queries > > Best, > Jingsong > -- Best, Benchao Li