From 23677ba2cb197715e5dddc4c80f73c2866e0912b Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Fri, 29 Mar 2024 10:03:31 -0400 Subject: [PATCH] DBZ-7693 Move MySQL-specific behavior to MySQL impl --- .../mysql/antlr/MySqlAntlrDdlParser.java | 18 ++++++++++++++++++ .../java/io/debezium/antlr/AntlrDdlParser.java | 17 ----------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/antlr/MySqlAntlrDdlParser.java b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/antlr/MySqlAntlrDdlParser.java index 77d06b508..703c3d95e 100644 --- a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/antlr/MySqlAntlrDdlParser.java +++ b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/antlr/MySqlAntlrDdlParser.java @@ -16,6 +16,7 @@ import org.antlr.v4.runtime.CharStream; import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.misc.Interval; import org.antlr.v4.runtime.tree.ParseTree; import com.mysql.cj.CharsetMapping; @@ -31,6 +32,8 @@ import io.debezium.ddl.parser.mysql.generated.MySqlParser; import io.debezium.ddl.parser.mysql.generated.MySqlParser.CharsetNameContext; import io.debezium.ddl.parser.mysql.generated.MySqlParser.CollationNameContext; +import io.debezium.ddl.parser.mysql.generated.MySqlParser.RenameTableClauseContext; +import io.debezium.ddl.parser.mysql.generated.MySqlParser.RenameTableContext; import io.debezium.relational.Column; import io.debezium.relational.ColumnEditor; import io.debezium.relational.SystemVariables; @@ -463,4 +466,19 @@ else if (collationNode != null && collationNode.getText() != null) { } return charsetName; } + + /** + * Signal an alter table event to ddl changes listener. + * + * @param id the table identifier; may not be null + * @param previousId the previous name of the view if it was renamed, or null if it was not renamed + * @param ctx the start of the statement; may not be null + */ + public void signalAlterTable(TableId id, TableId previousId, RenameTableClauseContext ctx) { + final RenameTableContext parent = (RenameTableContext) ctx.getParent(); + Interval interval = new Interval(ctx.getParent().start.getStartIndex(), + parent.renameTableClause().get(0).start.getStartIndex() - 1); + String prefix = ctx.getParent().start.getInputStream().getText(interval); + signalAlterTable(id, previousId, prefix + getText(ctx)); + } } diff --git a/debezium-ddl-parser/src/main/java/io/debezium/antlr/AntlrDdlParser.java b/debezium-ddl-parser/src/main/java/io/debezium/antlr/AntlrDdlParser.java index 1eae1dda9..da23593b4 100644 --- a/debezium-ddl-parser/src/main/java/io/debezium/antlr/AntlrDdlParser.java +++ b/debezium-ddl-parser/src/main/java/io/debezium/antlr/AntlrDdlParser.java @@ -20,8 +20,6 @@ import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.ParseTreeWalker; -import io.debezium.ddl.parser.mysql.generated.MySqlParser; -import io.debezium.ddl.parser.mysql.generated.MySqlParser.RenameTableContext; import io.debezium.relational.TableId; import io.debezium.relational.Tables; import io.debezium.relational.ddl.AbstractDdlParser; @@ -242,21 +240,6 @@ public void signalCreateTable(TableId id, ParserRuleContext ctx) { signalCreateTable(id, getText(ctx)); } - /** - * Signal an alter table event to ddl changes listener. - * - * @param id the table identifier; may not be null - * @param previousId the previous name of the view if it was renamed, or null if it was not renamed - * @param ctx the start of the statement; may not be null - */ - public void signalAlterTable(TableId id, TableId previousId, MySqlParser.RenameTableClauseContext ctx) { - final RenameTableContext parent = (RenameTableContext) ctx.getParent(); - Interval interval = new Interval(ctx.getParent().start.getStartIndex(), - parent.renameTableClause().get(0).start.getStartIndex() - 1); - String prefix = ctx.getParent().start.getInputStream().getText(interval); - signalAlterTable(id, previousId, prefix + getText(ctx)); - } - /** * Signal an alter table event to ddl changes listener. *