From 348c13b6f88c7403094cb16c8afc33d7760648ad Mon Sep 17 00:00:00 2001 From: harveyyue Date: Mon, 10 Oct 2022 22:25:19 +0800 Subject: [PATCH] DBZ-5708 MySqlConnector parse create view statement failed --- .../io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 | 8 ++++++-- .../src/test/resources/mysql/examples/ddl_create.sql | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 index 6a7fcf39b..e8009f3d0 100644 --- a/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 +++ b/debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/generated/MySqlParser.g4 @@ -265,8 +265,12 @@ createView )? ownerStatement? (SQL SECURITY secContext=(DEFINER | INVOKER))? - VIEW fullId ('(' uidList ')')? AS withClause? selectStatement - (WITH checkOption=(CASCADED | LOCAL)? CHECK OPTION)? + VIEW fullId ('(' uidList ')')? AS + ( + '(' withClause? selectStatement ')' + | + withClause? selectStatement (WITH checkOption=(CASCADED | LOCAL)? CHECK OPTION)? + ) ; createSequence diff --git a/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql b/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql index 23c8e88f8..364e1e859 100644 --- a/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql +++ b/debezium-ddl-parser/src/test/resources/mysql/examples/ddl_create.sql @@ -296,6 +296,7 @@ create algorithm = merge view my_view2(col1, col2) as select * from t2 with chec create or replace definer = 'ivan'@'%' view my_view3 as select count(*) from t3; create or replace definer = current_user sql security invoker view my_view4(c1, 1c, _, c1_2) as select * from (t1 as tt1, t2 as tt2) inner join t1 on t1.col1 = tt1.col1; +create view v_some_table as (with a as (select * from some_table) select * from a); #end #begin