You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Dan Hill <qu...@gmail.com> on 2022/11/23 05:55:20 UTC
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`
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
Thanks, Leonard!
I just solved this also by replacing "ROW(" with "(" from the create view
statement.
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)
On Thu, Nov 24, 2022 at 7:37 PM Leonard Xu <xb...@gmail.com> wrote:
> Do not trust the line number from sql parser exception, you should use
> ROW<a BIGINT, b STRING> in your DDL when you declare a composite row type,
> try the following:
>
> 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',
> )
>
>
> Best,
> Leonard
>
>
> On Nov 25, 2022, at 11:20 AM, Dan Hill <qu...@gmail.com> wrote:
>
> Also, if I try to do an aggregate inside the ROW, I get an error. I don't
> get the error if it's not wrapped in.a Row.
>
> ROW(
> SUM(view_count)
> ) AS body,
>
>
> Caused by: org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
> org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:98)
> org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:736)
> ai.promoted.metrics.logprocessor.job.contentmetrics.ContentMetricsJob.executeSqlFromResource(ContentMetricsJob.java:148)
> [...]
> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
> org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
> [...]
> Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> 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.SqlStmtEof(FlinkSqlParserImpl.java:3981)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.parseSqlStmtEof(FlinkSqlParserImpl.java:273)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:153)
> [...]
>
>
> On Thu, Nov 24, 2022 at 6:41 PM Dan Hill <qu...@gmail.com> wrote:
>
>> Here's the full stack trace.
>>
>> => org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "." at line 1, column 336.
>> Was expecting one of:
>> ")" ...
>> "," ...
>>
>> org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
>> org.apache.flink.table.planner.calcite.FlinkPlannerImpl$ToRelContextImpl.expandView(FlinkPlannerImpl.scala:270)
>> org.apache.calcite.plan.ViewExpanders$1.expandView(ViewExpanders.java:52)
>> org.apache.flink.table.planner.catalog.SqlCatalogViewTable.convertToRel(SqlCatalogViewTable.java:58)
>> org.apache.flink.table.planner.plan.schema.ExpandingPreparingTable.expand(ExpandingPreparingTable.java:59)
>> [...]
>> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "." at line 1, column 336.
>> Was expecting one of:
>> ")" ...
>> "," ...
>>
>> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
>> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
>> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
>> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
>> org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
>> [...]
>> Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "." at line 1, column 336.
>> 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)
>> [...]
>>
>>
>>
>> On Wed, Nov 23, 2022 at 1:55 PM Dan Hill <qu...@gmail.com> wrote:
>>
>>> If I remove the "TEMPORARY VIEW" and just inline the SQL, this works
>>> fine. This seems like a bug with temporary views.
>>>
>>> On Wed, Nov 23, 2022 at 1:38 PM Dan Hill <qu...@gmail.com> wrote:
>>>
>>>> Looks related to this issue.
>>>> https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my
>>>>
>>>> In my case, it doesn't seem like it's a sink issue. Even if I change
>>>> my minicluster test to SELECT * it, it fails the same way.
>>>>
>>>> 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)
>>>>
>>>> SELECT * FROM test_content_metrics_view
>>>>
>>>>
>>>>
>>>> On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <qu...@gmail.com> wrote:
>>>>
>>>>> I upgraded to Flink v1.16.0 and I get the same error.
>>>>>
>>>>> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> For the error `Encountered "." at line 1, column 119.`, here are the
>>>>>> confusing parts:
>>>>>>
>>>>>> 1. The error happens when I executed the last part of the sql query:
>>>>>>
>>>>>> INSERT INTO `test_content_metrics`
>>>>>> SELECT * FROM `test_content_metrics_view`
>>>>>>
>>>>>> 2. Line 1 column 119 doesn't exist in that SQL statement.
>>>>>> 3. None of the SQL that I've written has a period "." in it.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I'm using Flink 1.14.4
>>>>>>>
>>>>>>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>>>>>>> *收件人: *"User" <us...@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`
>>>>>>>>
>>>>>>>>
>>>>>>>>
>
Re: Weird Flink SQL error
Posted by Leonard Xu <xb...@gmail.com>.
Do not trust the line number from sql parser exception, you should use ROW<a BIGINT, b STRING> in your DDL when you declare a composite row type, try the following:
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',
)
Best,
Leonard
> On Nov 25, 2022, at 11:20 AM, Dan Hill <qu...@gmail.com> wrote:
>
> Also, if I try to do an aggregate inside the ROW, I get an error. I don't get the error if it's not wrapped in.a Row.
>
> ROW(
> SUM(view_count)
> ) AS body,
>
> Caused by: org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
> org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:98)
> org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:736)
> ai.promoted.metrics.logprocessor.job.contentmetrics.ContentMetricsJob.executeSqlFromResource(ContentMetricsJob.java:148)
> [...]
> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
> org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
> [...]
> Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "SUM" at line 8, column 5.
> Was expecting one of:
> <EOF>
> "EXCEPT" ...
> "FETCH" ...
> "FROM" ...
> "INTERSECT" ...
> "LIMIT" ...
> "OFFSET" ...
> "ORDER" ...
> "MINUS" ...
> "UNION" ...
> "," ...
>
> 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.SqlStmtEof(FlinkSqlParserImpl.java:3981)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.parseSqlStmtEof(FlinkSqlParserImpl.java:273)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:153)
> [...]
>
> On Thu, Nov 24, 2022 at 6:41 PM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> Here's the full stack trace.
>
> => org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "." at line 1, column 336.
> Was expecting one of:
> ")" ...
> "," ...
>
> org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
> org.apache.flink.table.planner.calcite.FlinkPlannerImpl$ToRelContextImpl.expandView(FlinkPlannerImpl.scala:270)
> org.apache.calcite.plan.ViewExpanders$1.expandView(ViewExpanders.java:52)
> org.apache.flink.table.planner.catalog.SqlCatalogViewTable.convertToRel(SqlCatalogViewTable.java:58)
> org.apache.flink.table.planner.plan.schema.ExpandingPreparingTable.expand(ExpandingPreparingTable.java:59)
> [...]
> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "." at line 1, column 336.
> Was expecting one of:
> ")" ...
> "," ...
>
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
> org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
> [...]
> Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "." at line 1, column 336.
> 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)
> [...]
>
>
> On Wed, Nov 23, 2022 at 1:55 PM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> If I remove the "TEMPORARY VIEW" and just inline the SQL, this works fine. This seems like a bug with temporary views.
>
> On Wed, Nov 23, 2022 at 1:38 PM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> Looks related to this issue.
> https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my <https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my>
>
> In my case, it doesn't seem like it's a sink issue. Even if I change my minicluster test to SELECT * it, it fails the same way.
>
> 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)
>
> SELECT * FROM test_content_metrics_view
>
>
> On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> I upgraded to Flink v1.16.0 and I get the same error.
>
> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> For the error `Encountered "." at line 1, column 119.`, here are the confusing parts:
>
> 1. The error happens when I executed the last part of the sql query:
> INSERT INTO `test_content_metrics`
> SELECT * FROM `test_content_metrics_view`
> 2. Line 1 column 119 doesn't exist in that SQL statement.
> 3. None of the SQL that I've written has a period "." in it.
>
>
>
> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <quietgolfer@gmail.com <ma...@gmail.com>> wrote:
> I'm using Flink 1.14.4
>
> On Wed, Nov 23, 2022, 02:28 yuxia <luoyuxia@alumni.sjtu.edu.cn <ma...@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" <quietgolfer@gmail.com <ma...@gmail.com>>
> 收件人: "User" <user@flink.apache.org <ma...@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`
>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
Also, if I try to do an aggregate inside the ROW, I get an error. I don't
get the error if it's not wrapped in.a Row.
ROW(
SUM(view_count)
) AS body,
Caused by: org.apache.flink.table.api.SqlParserException: SQL
parse failed. Encountered "SUM" at line 8, column 5.
Was expecting one of:
<EOF>
"EXCEPT" ...
"FETCH" ...
"FROM" ...
"INTERSECT" ...
"LIMIT" ...
"OFFSET" ...
"ORDER" ...
"MINUS" ...
"UNION" ...
"," ...
org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:98)
org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:736)
ai.promoted.metrics.logprocessor.job.contentmetrics.ContentMetricsJob.executeSqlFromResource(ContentMetricsJob.java:148)
[...]
Caused by: org.apache.calcite.sql.parser.SqlParseException:
Encountered "SUM" at line 8, column 5.
Was expecting one of:
<EOF>
"EXCEPT" ...
"FETCH" ...
"FROM" ...
"INTERSECT" ...
"LIMIT" ...
"OFFSET" ...
"ORDER" ...
"MINUS" ...
"UNION" ...
"," ...
org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
[...]
Caused by: org.apache.flink.sql.parser.impl.ParseException:
Encountered "SUM" at line 8, column 5.
Was expecting one of:
<EOF>
"EXCEPT" ...
"FETCH" ...
"FROM" ...
"INTERSECT" ...
"LIMIT" ...
"OFFSET" ...
"ORDER" ...
"MINUS" ...
"UNION" ...
"," ...
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.SqlStmtEof(FlinkSqlParserImpl.java:3981)
org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.parseSqlStmtEof(FlinkSqlParserImpl.java:273)
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:153)
[...]
On Thu, Nov 24, 2022 at 6:41 PM Dan Hill <qu...@gmail.com> wrote:
> Here's the full stack trace.
>
> => org.apache.flink.table.api.SqlParserException: SQL parse failed. Encountered "." at line 1, column 336.
> Was expecting one of:
> ")" ...
> "," ...
>
> org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
> org.apache.flink.table.planner.calcite.FlinkPlannerImpl$ToRelContextImpl.expandView(FlinkPlannerImpl.scala:270)
> org.apache.calcite.plan.ViewExpanders$1.expandView(ViewExpanders.java:52)
> org.apache.flink.table.planner.catalog.SqlCatalogViewTable.convertToRel(SqlCatalogViewTable.java:58)
> org.apache.flink.table.planner.plan.schema.ExpandingPreparingTable.expand(ExpandingPreparingTable.java:59)
> [...]
> Caused by: org.apache.calcite.sql.parser.SqlParseException: Encountered "." at line 1, column 336.
> Was expecting one of:
> ")" ...
> "," ...
>
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
> org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
> org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
> org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
> org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
> [...]
> Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "." at line 1, column 336.
> 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)
> [...]
>
>
>
> On Wed, Nov 23, 2022 at 1:55 PM Dan Hill <qu...@gmail.com> wrote:
>
>> If I remove the "TEMPORARY VIEW" and just inline the SQL, this works
>> fine. This seems like a bug with temporary views.
>>
>> On Wed, Nov 23, 2022 at 1:38 PM Dan Hill <qu...@gmail.com> wrote:
>>
>>> Looks related to this issue.
>>> https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my
>>>
>>> In my case, it doesn't seem like it's a sink issue. Even if I change my
>>> minicluster test to SELECT * it, it fails the same way.
>>>
>>> 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)
>>>
>>> SELECT * FROM test_content_metrics_view
>>>
>>>
>>>
>>> On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <qu...@gmail.com> wrote:
>>>
>>>> I upgraded to Flink v1.16.0 and I get the same error.
>>>>
>>>> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com> wrote:
>>>>
>>>>> For the error `Encountered "." at line 1, column 119.`, here are the
>>>>> confusing parts:
>>>>>
>>>>> 1. The error happens when I executed the last part of the sql query:
>>>>>
>>>>> INSERT INTO `test_content_metrics`
>>>>> SELECT * FROM `test_content_metrics_view`
>>>>>
>>>>> 2. Line 1 column 119 doesn't exist in that SQL statement.
>>>>> 3. None of the SQL that I've written has a period "." in it.
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I'm using Flink 1.14.4
>>>>>>
>>>>>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>>>>>> *收件人: *"User" <us...@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`
>>>>>>>
>>>>>>>
>>>>>>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
Here's the full stack trace.
=> org.apache.flink.table.api.SqlParserException: SQL parse
failed. Encountered "." at line 1, column 336.
Was expecting one of:
")" ...
"," ...
org.apache.flink.table.planner.parse.CalciteParser.parse(CalciteParser.java:56)
org.apache.flink.table.planner.calcite.FlinkPlannerImpl$ToRelContextImpl.expandView(FlinkPlannerImpl.scala:270)
org.apache.calcite.plan.ViewExpanders$1.expandView(ViewExpanders.java:52)
org.apache.flink.table.planner.catalog.SqlCatalogViewTable.convertToRel(SqlCatalogViewTable.java:58)
org.apache.flink.table.planner.plan.schema.ExpandingPreparingTable.expand(ExpandingPreparingTable.java:59)
[...]
Caused by: org.apache.calcite.sql.parser.SqlParseException:
Encountered "." at line 1, column 336.
Was expecting one of:
")" ...
"," ...
org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:462)
org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:225)
org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
[...]
Caused by: org.apache.flink.sql.parser.impl.ParseException:
Encountered "." at line 1, column 336.
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)
[...]
On Wed, Nov 23, 2022 at 1:55 PM Dan Hill <qu...@gmail.com> wrote:
> If I remove the "TEMPORARY VIEW" and just inline the SQL, this works
> fine. This seems like a bug with temporary views.
>
> On Wed, Nov 23, 2022 at 1:38 PM Dan Hill <qu...@gmail.com> wrote:
>
>> Looks related to this issue.
>> https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my
>>
>> In my case, it doesn't seem like it's a sink issue. Even if I change my
>> minicluster test to SELECT * it, it fails the same way.
>>
>> 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)
>>
>> SELECT * FROM test_content_metrics_view
>>
>>
>>
>> On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <qu...@gmail.com> wrote:
>>
>>> I upgraded to Flink v1.16.0 and I get the same error.
>>>
>>> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com> wrote:
>>>
>>>> For the error `Encountered "." at line 1, column 119.`, here are the
>>>> confusing parts:
>>>>
>>>> 1. The error happens when I executed the last part of the sql query:
>>>>
>>>> INSERT INTO `test_content_metrics`
>>>> SELECT * FROM `test_content_metrics_view`
>>>>
>>>> 2. Line 1 column 119 doesn't exist in that SQL statement.
>>>> 3. None of the SQL that I've written has a period "." in it.
>>>>
>>>>
>>>>
>>>> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com> wrote:
>>>>
>>>>> I'm using Flink 1.14.4
>>>>>
>>>>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>>>>> *收件人: *"User" <us...@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`
>>>>>>
>>>>>>
>>>>>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
If I remove the "TEMPORARY VIEW" and just inline the SQL, this works fine.
This seems like a bug with temporary views.
On Wed, Nov 23, 2022 at 1:38 PM Dan Hill <qu...@gmail.com> wrote:
> Looks related to this issue.
> https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my
>
> In my case, it doesn't seem like it's a sink issue. Even if I change my
> minicluster test to SELECT * it, it fails the same way.
>
> 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)
>
> SELECT * FROM test_content_metrics_view
>
>
>
> On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <qu...@gmail.com> wrote:
>
>> I upgraded to Flink v1.16.0 and I get the same error.
>>
>> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com> wrote:
>>
>>> For the error `Encountered "." at line 1, column 119.`, here are the
>>> confusing parts:
>>>
>>> 1. The error happens when I executed the last part of the sql query:
>>>
>>> INSERT INTO `test_content_metrics`
>>> SELECT * FROM `test_content_metrics_view`
>>>
>>> 2. Line 1 column 119 doesn't exist in that SQL statement.
>>> 3. None of the SQL that I've written has a period "." in it.
>>>
>>>
>>>
>>> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com> wrote:
>>>
>>>> I'm using Flink 1.14.4
>>>>
>>>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>>>> *收件人: *"User" <us...@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`
>>>>>
>>>>>
>>>>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
Looks related to this issue.
https://lists.apache.org/thread/1sb5bos6tjv39fh0wjkvmvht0824r4my
In my case, it doesn't seem like it's a sink issue. Even if I change my
minicluster test to SELECT * it, it fails the same way.
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)
SELECT * FROM test_content_metrics_view
On Wed, Nov 23, 2022 at 1:19 PM Dan Hill <qu...@gmail.com> wrote:
> I upgraded to Flink v1.16.0 and I get the same error.
>
> On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com> wrote:
>
>> For the error `Encountered "." at line 1, column 119.`, here are the
>> confusing parts:
>>
>> 1. The error happens when I executed the last part of the sql query:
>>
>> INSERT INTO `test_content_metrics`
>> SELECT * FROM `test_content_metrics_view`
>>
>> 2. Line 1 column 119 doesn't exist in that SQL statement.
>> 3. None of the SQL that I've written has a period "." in it.
>>
>>
>>
>> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com> wrote:
>>
>>> I'm using Flink 1.14.4
>>>
>>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>>> *收件人: *"User" <us...@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`
>>>>
>>>>
>>>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
I upgraded to Flink v1.16.0 and I get the same error.
On Wed, Nov 23, 2022 at 9:47 AM Dan Hill <qu...@gmail.com> wrote:
> For the error `Encountered "." at line 1, column 119.`, here are the
> confusing parts:
>
> 1. The error happens when I executed the last part of the sql query:
>
> INSERT INTO `test_content_metrics`
> SELECT * FROM `test_content_metrics_view`
>
> 2. Line 1 column 119 doesn't exist in that SQL statement.
> 3. None of the SQL that I've written has a period "." in it.
>
>
>
> On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com> wrote:
>
>> I'm using Flink 1.14.4
>>
>> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>>> *收件人: *"User" <us...@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`
>>>
>>>
>>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
For the error `Encountered "." at line 1, column 119.`, here are the
confusing parts:
1. The error happens when I executed the last part of the sql query:
INSERT INTO `test_content_metrics`
SELECT * FROM `test_content_metrics_view`
2. Line 1 column 119 doesn't exist in that SQL statement.
3. None of the SQL that I've written has a period "." in it.
On Wed, Nov 23, 2022 at 8:32 AM Dan Hill <qu...@gmail.com> wrote:
> I'm using Flink 1.14.4
>
> On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
>> *收件人: *"User" <us...@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`
>>
>>
>>
Re: Weird Flink SQL error
Posted by Dan Hill <qu...@gmail.com>.
I'm using Flink 1.14.4
On Wed, Nov 23, 2022, 02:28 yuxia <lu...@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" <qu...@gmail.com>
> *收件人: *"User" <us...@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`
>
>
>
Re: Weird Flink SQL error
Posted by yuxia <lu...@alumni.sjtu.edu.cn>.
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" <qu...@gmail.com>
收件人: "User" <us...@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`
Re: Weird Flink SQL error
Posted by Shuiqiang Chen <ac...@gmail.com>.
Hi Dan,
Which Flink version do you apply? I write a test case base on the code
snippet you provided and it works normally in Flink 1.17-SNAPSHOT.
Best,
Shuiqiang
Dan Hill <qu...@gmail.com> 于2022年11月23日周三 13:55写道:
> 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`
>
>