I've started a [VOTE] thread for this FLIP https://lists.apache.org/thread/f14jjhrscrdv7h6zw6h1k72nfx232qxs
On Wed, Nov 3, 2021 at 2:59 PM Sergey Nuyanzin <snuyan...@gmail.com> wrote: > Hi Timo, > > I completely agree it would be great if we can propagate Calcite parser > config in > the way you have described. As you mentioned we could discuss this > when it comes to the implementation. > > Meanwhile it looks like I can start voting (please correct me if I'm > wrong). > I will start it a bit later today > > On Wed, Nov 3, 2021 at 1:37 PM Timo Walther <twal...@apache.org> wrote: > >> Hi Sergey, >> >> thanks for your explanation. >> >> Regarding keywords and other info: We should receive the information >> from the Flink SQL parser directly. We have added a couple of new >> keywords such as WATERMARK or MATCH_RECOGNIZE clauses. SQL92 would not >> help a user understand why a column name needs to be escaped. And in >> general, we should not have duplicate code. Let's discuss this when it >> comes to the implementation. I'm sure we can propagate the Calcite >> parser config into a nice POJO that the CLI can receive from the Executor. >> >> Regards, >> Timo >> >> >> On 03.11.21 11:12, Sergey Nuyanzin wrote: >> > Hi 李宇彬, >> > >> > I think you are right. Thank you very much for the idea. >> > I came across MySQL[1] and PostgreSQL[2] prompts and also >> > found several interesting features like control symbols to change style, >> > showing current property value and different datetime formats. >> > >> > I have added your proposals and my findings to FLIP's page, please have >> a >> > look. >> > >> > [1] https://dev.mysql.com/doc/refman/8.0/en/mysql-commands.html >> > [2] https://www.postgresql.org/docs/14/app-psql.html#APP-PSQL-PROMPTING >> > >> > On Wed, Nov 3, 2021 at 2:31 AM 李宇彬 <lixin58...@163.com> wrote: >> > >> >> Hi Sergey >> >> >> >> >> >> It is a very useful improvement I'm looking forward to. in addition, I >> >> think prompt >> >> can play a greater role. >> >> >> >> >> >> To help users call commands in expected context, we can get session >> >> context >> >> (current catalog/db/time) from cli prompt like MySQL, >> >> please see details as below: >> >> >> >> >> >> https://issues.apache.org/jira/browse/FLINK-24730 >> >> >> >> >> >> >> >> >> >> On 11/2/2021 21:09,Sergey Nuyanzin<snuyan...@gmail.com> wrote: >> >> Hi Timo >> >> >> >> Thank you for your questions. >> >> >> >> I will answer your questions here and update FLIP's page as well >> >> >> >> For example, who is responsible for parsing comments? I guess the SQL >> >> Client and not the Flink SQL parser will take care of this? >> >> Yes, you are right. SQL Client is responsible for parsing here. >> >> However it does not validate sql, it only validates that comments, >> brackets >> >> and quotes are closed and the statement ends with a semicolon. >> >> Also under the hood jline's splits input into words and works with >> them. >> >> Within a custom parser it is possible to specify what should be >> considered >> >> as a word or not considered at all (e.g. it is possible to remove >> >> all line and block comments before submitting a query, >> >> probably as another non default option)... During parsing it marks >> >> what is a comment, a keyword, a quoted string etc. based on rules >> >> defined in SQL Client parser. >> >> SQL Client highlighter could use the result of this marking to >> highlight. >> >> Completer could use it to do completion, e.g. if based on parser's >> marks >> >> completer knows that a cursor is inside a comment or a string >> >> then no need to complete anything. >> >> >> >> Also, will the prompt hints for `'>` and ``>` support escaping? This >> can >> >> be a tricky topic sometimes. >> >> Ideally yes, I played with lots of tricky cases and it behaves ok. >> >> At least I do not see limitations here. >> >> In case you do please share... >> >> >> >> In general, how do we deal with different SQL dialects in the SQL >> >> Client. For example, it possible to `table.sql-dialect` to `HIVE`. Will >> >> all highlighting, auto-complete and prompt hints be disabled in this >> case? >> >> It could be turned off for the beginning. >> >> To make it supported across different dialects it is required to have >> such >> >> info: >> >> 1) Set of keywords >> >> 2) Quote sign >> >> 3) SQL identifier quote >> >> 4) Start of a line comment >> >> 5) Start and end of a block comment >> >> 6) Start and end of hints >> >> I see at least 2 ways: >> >> 1. provide such api >> >> 2. create this mapping in SQL Client and use it based on current >> dialect >> >> Then it will be easy to support it for a new dialect >> >> Here the only questionable thing is keywords. >> >> Currently I made it pretty straightforward: >> >> if a word not inside quoted string, not inside a comment or a hint >> >> and matches anything from >> >> SQL92 ( >> >> >> >> >> *org.apache.calcite.sql.parser.SqlAbstractParserImpl#getSql92ReservedWords*)), >> >> >> >> then it will be highlighted as a keyword. >> >> >> >> On Tue, Nov 2, 2021 at 12:09 PM Timo Walther <twal...@apache.org> >> wrote: >> >> >> >> Hi Sergey, >> >> >> >> thanks for this nice demo video. It looks very nice and makes the SQL >> >> Client an even more useful tool. >> >> >> >> What I miss a bit in the FLIP is the implementation details. >> >> >> >> For example, who is responsible for parsing comments? I guess the SQL >> >> Client and not the Flink SQL parser will take care of this? >> >> >> >> Also, will the prompt hints for `'>` and ``>` support escaping? This >> can >> >> be a tricky topic sometimes. >> >> >> >> In general, how do we deal with different SQL dialects in the SQL >> >> Client. For example, it possible to `table.sql-dialect` to `HIVE`. Will >> >> all highlighting, auto-complete and prompt hints be disabled in this >> case? >> >> >> >> >> >> Looking forward to have this in Flink. >> >> >> >> Thanks, >> >> Timo >> >> >> >> >> >> >> >> On 02.11.21 08:26, Till Rohrmann wrote: >> >> Hi Sergey, >> >> >> >> I think that after answering/resolving Jark's comments, you can start a >> >> [VOTE] thread for this FLIP. The process is described here [1]. Once >> the >> >> FLIP has been accepted, which it should, given the positive feedback, >> you >> >> can start working on it by creating the corresponding JIRA tickets and >> >> then >> >> start coding. I hope that there will be a committer familiar with the >> SQL >> >> client that can help you with the code review and merging of the code. >> >> But >> >> again, given the positive feedback, I think there will be a volunteer. >> >> >> >> [1] >> >> >> >> >> >> >> https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals >> >> >> >> Cheers, >> >> Till >> >> >> >> On Tue, Nov 2, 2021 at 4:25 AM Jark Wu <imj...@gmail.com> wrote: >> >> >> >> Awesome demo, looking forward to these features! >> >> >> >> I only have a minor comment: could we provide a config to >> enable/disable >> >> the prompt values? >> >> We can also discuss whether we can enable all the new features by >> >> default >> >> to give them more exposure. >> >> >> >> Best, >> >> Jark >> >> >> >> On Tue, 2 Nov 2021 at 10:48, JING ZHANG <beyond1...@gmail.com> wrote: >> >> >> >> Amazing improvements and impressive video. >> >> Big +1. >> >> >> >> Best, >> >> JING ZHANG >> >> >> >> Kurt Young <ykt...@gmail.com> 于2021年11月2日周二 上午9:37写道: >> >> >> >> Really cool improvements @Sergey. Can't wait to see it happen. >> >> >> >> Best, >> >> Kurt >> >> >> >> >> >> On Tue, Nov 2, 2021 at 1:56 AM Martijn Visser <mart...@ververica.com> >> >> wrote: >> >> >> >> Hi Sergey, >> >> >> >> I guess you've just set a new standard ;-) I agree with Ingo, these >> >> improvements look really good! >> >> >> >> Best regards, >> >> >> >> Martijn >> >> >> >> On Mon, 1 Nov 2021 at 18:23, Ingo Bürk <i...@ververica.com> wrote: >> >> >> >> Hi Sergey, >> >> >> >> I think those improvements look absolutely amazing. Thanks for the >> >> little >> >> video! >> >> >> >> >> >> Best >> >> Ingo >> >> >> >> On Mon, Nov 1, 2021, 17:15 Sergey Nuyanzin <snuyan...@gmail.com> >> >> wrote: >> >> >> >> Thanks for the feedback Till. >> >> >> >> Martijn, I have created a short demo showing some of the features >> >> mentioned >> >> in FLIP. >> >> It is available at https://asciinema.org/a/446247?speed=3.0 >> >> Could you please tell if it is what you are expecting or not? >> >> >> >> On Fri, Oct 29, 2021 at 4:59 PM Till Rohrmann < >> >> trohrm...@apache.org> >> >> wrote: >> >> >> >> Thanks for creating this FLIP Sergey. I think what you propose >> >> sounds >> >> like >> >> very good improvements for the SQL client. This should make the >> >> client >> >> a >> >> lot more ergonomic :-) >> >> >> >> Cheers, >> >> Till >> >> >> >> On Fri, Oct 29, 2021 at 11:26 AM Sergey Nuyanzin < >> >> snuyan...@gmail.com> >> >> wrote: >> >> >> >> Hi Martijn, >> >> >> >> Thank you for your suggestion with POC. >> >> Yes I will do that and come back to this thread probably >> >> after >> >> the >> >> weekend >> >> >> >> On Thu, Oct 28, 2021 at 4:38 PM Martijn Visser < >> >> mart...@ververica.com> >> >> wrote: >> >> >> >> Hi Sergey, >> >> >> >> Thanks for taking the initiative to create a FLIP and >> >> propose >> >> improvements >> >> on the SQL client. All usability improvements on the SQL >> >> client >> >> are >> >> highly >> >> appreciated, especially for new users of Flink. Multi-line >> >> support >> >> is >> >> definitely one of those things I've run into myself. >> >> >> >> I do think it would be quite nice if there would be some >> >> kind >> >> of >> >> POC >> >> which >> >> could show (some of) the proposed improvements. Is that >> >> something >> >> that >> >> might be easily feasible? >> >> >> >> Best regards, >> >> >> >> Martijn >> >> >> >> On Thu, 28 Oct 2021 at 11:02, Sergey Nuyanzin < >> >> snuyan...@gmail.com >> >> >> >> wrote: >> >> >> >> Hi all, >> >> >> >> I want to start a discussion about FLIP-189: SQL Client >> >> Usability >> >> Improvements. >> >> >> >> The main changes in this FLIP: >> >> >> >> - Flink sql client parser improvements so >> >> that sql client does not ask for ; inside a quoted >> >> string >> >> or a >> >> comment >> >> - use prompt to show what sql client is waiting for >> >> - introduce syntax highlighting >> >> - improve completion >> >> >> >> For more detailed changes, please refer to FLIP-189[1]. >> >> >> >> [1] >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-189%3A+SQL+Client+Usability+Improvements >> >> >> >> >> >> >> >> Look forward to your feedback. >> >> >> >> -- >> >> Best regards, >> >> Sergey >> >> >> >> >> >> >> >> >> >> -- >> >> Best regards, >> >> Sergey >> >> >> >> >> >> >> >> >> >> -- >> >> Best regards, >> >> Sergey >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> Best regards, >> >> Sergey >> >> >> > >> > >> >> > > -- > Best regards, > Sergey > -- Best regards, Sergey