Thanks Jinsong for the suggestions.

+1 for #1, as users are constantly puzzled by the inconsistencies between
the Table / SQL module and SQL Client.

 Best,
Weike

On Mon, Jul 6, 2020 at 11:55 AM Jingsong Li <jingsongl...@gmail.com> wrote:

> +1 for expanding the scope of #2, a SQL test framework(Should not be too
> heavy but clear) and guidelines for developers.
>
> Best,
> Jingsong
>
> On Thu, Jul 2, 2020 at 12:30 PM Kurt Young <ykt...@gmail.com> wrote:
>
> > Thanks Jingsong for bringing this up discussion and sorry for the late
> > reply.
> >
> > I'm in general +1 for #1, and want to expand the scope of #2.
> >
> > First of all, I think the approach Jingsong proposed in #2 can help with
> > covering more
> > e2e use cases of SQL, which also draws a clean line between how to design
> > IT cases for
> > table API and SQL.
> >
> > This is a good intent to have, but what I want to point out is it's still
> > not sufficient yet. I think
> > the ultimate problem we are facing is *designing a testing principle for
> > table & SQL*. I will
> > share some of my observations and issues I've seen:
> >
> > 1. The lack of SQL client's functionality is definitely the first victim
> of
> > this issue. During our
> > development, I don't know how many developers will take SQL client into
> > consideration when
> > they introduce new features, especially which need to be exposed through
> > SQL client.
> >
> > 2. We have a very fuzzy boundary of what kind of tests should be written
> in
> > table API or in SQL.
> > So we end up with two testing packages called "sql" and "table" for the
> > same testing purpose, with
> > *random tests created in each package*.
> >
> > 3. We don't have a guideline for developers, especially for new
> > contributors, about how many tests
> > they should write and where to put. For example, when we improve the data
> > type support, say we
> > start to support higher precision of Timestamp, we don't have a clue how
> > many tests we should provide.
> > Should we add some tests for the code generation part? should we add some
> > tests for the integration test?
> > Or is it already enough to test it with simple expression tests? We don't
> > have a clean answer for it.
> > As a result, we will be busy fixing bugs around new features we
> introduced,
> > even if the bug itself looks
> > very simple which *will surprise our users by the bad quality of Flink
> SQL
> > engine*.
> >
> > So I think what we really need here (which is also very urgent IMO) is
> > *designing
> > some testing principles*
> > *for table API & SQL*. Writing SQL's IT case through sql client might be
> > one of them. If we can keep
> > improving the testing principles we have, I believe we will have a much
> > more reliable SQL engine in the
> > future, which can attract more users to the Flink community.
> >
> > Best,
> > Kurt
> >
> >
> > On Thu, Jun 18, 2020 at 5:14 PM Jark Wu <imj...@gmail.com> wrote:
> >
> > > +1 for #1
> > > I think this is what we are currently doing, that forward SQL
> statements
> > to
> > > TableEnv#executeSql, e.g. FLINK-17113, FLINK-18059.
> > > But IMO the SQL CLI specific statements (EXIT, QUIT) should still stay
> > only
> > > in SQL CLI.
> > >
> > > Another idea is that, the reviewer/committer should check tests are
> both
> > > added for SQL CLI and TableEnv if it is a new statement.
> > >
> > > Best,
> > > Jark
> > >
> > > On Thu, 18 Jun 2020 at 15:40, Rui Li <lirui.fu...@gmail.com> wrote:
> > >
> > > > Thanks Jingsong for bringing up the discussion. Perhaps we can do
> both
> > #1
> > > > and #2? I like the idea that SQL Client should just forward SQL
> > > statements
> > > > to TableEnvironment. IIUC, with TableEnvironment::executeSql in
> place,
> > > most
> > > > statements can be forwarded. Only a very limited set of statements
> need
> > > to
> > > > be handled by SQL Client, like SET and EXIT.
> > > >
> > > > On Thu, Jun 18, 2020 at 3:19 PM Jingsong Li <jingsongl...@gmail.com>
> > > > wrote:
> > > >
> > > > > 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 regards!
> > > > Rui Li
> > > >
> > >
> >
>
>
> --
> Best, Jingsong Lee
>

Reply via email to