Thank you for sharing this good news!
I think we can create an issue for upgrading to Calcite 1.33 and mention the waiting feature. Best, Jark > 2023年3月6日 22:16,Aitozi <gjying1...@gmail.com> 写道: > > Hi, Jark > > FYI, this feature has already been supported in Calcite 1.33.0 [1]. > Therefore, I believe we can use it directly after upgrading the Calcite > version. > > Best, > Aitozi. > [1]: https://issues.apache.org/jira/browse/CALCITE-5305 > > Aitozi <gjying1...@gmail.com> 于2023年3月6日周一 16:48写道: > >> Thanks, will give it a try >> >> Best, >> Aitozi. >> >> Jark Wu <imj...@gmail.com> 于2023年3月6日周一 15:11写道: >> >>> Hi Aitozi, >>> >>> I would suggest trying to contribute it to the upstream project Calcite >>> first. >>> >>> Best, >>> Jark >>> >>>> 2023年3月6日 11:51,Aitozi <gjying1...@gmail.com> 写道: >>>> >>>> Hi Jark, >>>> >>>> Thank you for your helpful suggestion. It appears that 'E'foo\n'' is a >>> more >>>> versatile and widely accepted option. To assess its feasibility, I have >>>> reviewed the relevant Unicode supports and concluded that it may >>>> necessitate modifications to the Parser.jj file to accommodate this new >>>> syntax. >>>> >>>> >>>> I am unsure whether we should initially incorporate this alteration in >>>> Calcite or if we can directly supersede the StringLiteral behavior >>> within >>>> the Flink project. Nevertheless, I believe supporting this change is >>>> achievable. >>>> >>>> >>>> >>>> Thanks, >>>> Aitozi. >>>> >>>> Jark Wu <imj...@gmail.com> 于2023年3月6日周一 10:16写道: >>>> >>>>> Hi Aitozi, >>>>> >>>>> I think this is a good idea to improve the backslash escape strings. >>>>> However, I lean a bit more toward the Postgres approach[1], >>>>> which is more standard-compliant. PG allows backslash escape >>>>> string by writing the letter E (upper or lower case) just before the >>>>> opening single quote, e.g., E'foo\n'. >>>>> >>>>> Recognizing backslash escapes in both regular and escape string >>> constants >>>>> is not backward compatible in Flink, and is also deprecated in PG. >>>>> >>>>> In addition, Flink also supports Unicode escape string constants by >>>>> writing the U& before the quote[1] which works in the same way with >>>>> backslash escape string. >>>>> >>>>> Best, >>>>> Jark >>>>> >>>>> [1]: >>>>> >>>>> >>> https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS >>>>> [2]: >>>>> >>>>> >>> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sql/queries/overview/ >>>>> >>>>> On Sat, 4 Mar 2023 at 23:31, Aitozi <gjying1...@gmail.com> wrote: >>>>> >>>>>> Hi, >>>>>> I encountered a problem when using string literal in Flink. >>> Currently, >>>>>> Flink will escape the string literal during codegen, so for the query >>>>>> below: >>>>>> >>>>>> SELECT 'a\nb'; it will print => a\nb >>>>>> >>>>>> then for the query >>>>>> >>>>>> SELECT SPLIT_INDEX(col, '\n', 0); >>>>>> >>>>>> The col can not split by the newline. If we want to split by the >>> newline, >>>>>> we should use >>>>>> >>>>>> SELECT SPLIT_INDEX(col, ' >>>>>> ', 0) >>>>>> >>>>>> or >>>>>> >>>>>> SELECT SPLIT_INDEX(col, CHR(10), 0) >>>>>> >>>>>> The above way could be more intuitive. Some other databases support >>> these >>>>>> "Special Character Escape Sequences"[1]. >>>>>> >>>>>> In this way, we can directly use >>>>>> SELECT SPLIT_INDEX(col, '\n', 0); for the query. >>>>>> >>>>>> I know this is not standard behavior in ANSI SQL. I'm opening this >>> thread >>>>>> for some opinions from the community guys. >>>>>> >>>>>> [1]: >>>>>> >>>>>> >>>>> >>> https://dev.mysql.com/doc/refman/8.0/en/string-literals.html#character-escape-sequences >>>>>> >>>>>> Thanks, >>>>>> Aitozi >>>>>> >>>>> >>> >>>