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`
>
>
>

Reply via email to