I'm using Flink 1.14.4 On Wed, Nov 23, 2022, 02:28 yuxia <luoyu...@alumni.sjtu.edu.cn> wrote:
> Hi, Dan. > I'm wondering what type of error you expect. IMO, I think most engines > throw parse error in such way which tell you encounter an unexpected token. > > Best regards, > Yuxia > > ------------------------------ > *发件人: *"Dan Hill" <quietgol...@gmail.com> > *收件人: *"User" <user@flink.apache.org> > *发送时间: *星期三, 2022年 11 月 23日 下午 1:55:20 > *主题: *Weird Flink SQL error > > Hi. I'm hitting an obfuscated Flink SQL parser error. Is there a way to > get better errors for Flink SQL? I'm hitting it when I wrap some of the > fields on an inner Row. > > > *Works* > > CREATE TEMPORARY VIEW `test_content_metrics_view` AS > SELECT > DATE_FORMAT(TUMBLE_ROWTIME(rowtime, INTERVAL '1' DAY), 'yyyy-MM-dd'), > platform_id, > content_id > FROM content_event > GROUP BY > platform_id, > content_id, > TUMBLE(rowtime, INTERVAL '1' DAY) > > CREATE TABLE test_content_metrics ( > dt STRING NOT NULL, > `platform_id` BIGINT, > `content_id` STRING > ) PARTITIONED BY (dt) WITH ( > 'connector' = 'filesystem', > 'path' = 'etl/test_content_metrics', > 'format' = 'json', > ) > > INSERT INTO `test_content_metrics` > SELECT * FROM `test_content_metrics_view` > > > *Fails* > > Wrapping a couple parameters in a Row causes the following exception. > > Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered > "." at line 1, column 119. > Was expecting one of: > ")" ... > "," ... > > > org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.generateParseException(FlinkSqlParserImpl.java:40981) > > org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.jj_consume_token(FlinkSqlParserImpl.java:40792) > > org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.ParenthesizedSimpleIdentifierList(FlinkSqlParserImpl.java:25220) > > org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression3(FlinkSqlParserImpl.java:19925) > > org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression2b(FlinkSqlParserImpl.java:19581) > [...] > > > CREATE TEMPORARY VIEW `test_content_metrics_view` AS > SELECT > DATE_FORMAT(TUMBLE_ROWTIME(rowtime, INTERVAL '1' DAY), 'yyyy-MM-dd'), > ROW( > platform_id, > content_id > ) > FROM content_event > GROUP BY > platform_id, > content_id, > TUMBLE(rowtime, INTERVAL '1' DAY) > > CREATE TABLE test_content_metrics ( > dt STRING NOT NULL, > `body` ROW( > `platform_id` BIGINT, > `content_id` STRING > ) > ) PARTITIONED BY (dt) WITH ( > 'connector' = 'filesystem', > 'path' = 'etl/test_content_metrics', > 'format' = 'json', > ) > > INSERT INTO `test_content_metrics` > SELECT * FROM `test_content_metrics_view` > > >