Sorry that I wasn't expressing it clearly. Since the FLIP talks about two things: ResolvedExpression and QueryOperation, and you have illustrated how to serialize ResolvedExpression into SQL string. I'm wondering how you'll gonna to convert QueryOperation into SQL string.
I was thinking that you proposed to convert the QueryOperation tree into a "complete runnable SQL statement", e.g. ProjectQueryOperation(x,y)->FilterQueryOperation(z>10)->TableSourceQueryOperation(T), we'll get "SELECT x, y FROM T WHERE z > 10". Maybe I misread it, maybe you just meant to convert each QueryOperation into a row-level SQL string instead the whole tree into a complete SQL statement. The idea of translating whole QueryOperation tree into SQL statement may come from my experience of Apache Calcite, there is a SqlImplementor[1] which convert a RelNode tree into SqlNode, and further we can use SqlNode#toSqlString to unparse it into SQL string. I would assume that most of our QueryOperations are much like the abstraction of Calcite's RelNode, with some exceptions such as PlannerQueryOperation. [1] https://github.com/apache/calcite/blob/1537555596f8994831ad015af4b9036aa01ebf78/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java#L141 Dawid Wysakowicz <wysakowicz.da...@gmail.com> 于2023年11月16日周四 16:24写道: > > I think the FLIP covers all public contracts that are necessary to be > discussed at that level. > > If you meant you could not find a method that would be called to trigger > the translation then it is already there. It's just not implemented yet: > QueryOperation#asSerializableString[1]. As I mentioned this is mostly a > follow up to previous work. > > Regards, > Dawid > > [1] > https://github.com/apache/flink/blob/d18a4bfe596fc580f8280750fa3bfa22007671d9/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/operations/QueryOperation.java#L46 > > On Wed, 15 Nov 2023 at 16:36, Benchao Li <libenc...@apache.org> wrote: > > > +1 for the idea of choosing SQL as the serialization format for > > QueryOperation, thanks for Dawid for driving this FLIP. > > > > Regarding the implementation, I didn't see the proposal for how to > > translate QueryOperation to SQL yet, am I missing something? Or the > > FLIP is still in preliminary state, you just want to gather ideas > > about whether to use SQL or something else as the serialization format > > for QueryOperation? > > > > Dawid Wysakowicz <dwysakow...@apache.org> 于2023年11月15日周三 19:34写道: > > > > > > Hi, > > > I would like to propose a follow-up improvement to some of the work that > > > has been done over the years to the Table API. I posted the proposed > > > changes in the FLIP-393. I'd like to get to know what others think of > > > choosing SQL as the serialization format for QueryOperations. > > > Regards, > > > Dawid Wysakowicz > > > > > > [1] https://cwiki.apache.org/confluence/x/vQ2ZE > > > > > > > > -- > > > > Best, > > Benchao Li > > -- Best, Benchao Li