DBZ-7693 Move MySQL-specific behavior to MySQL impl
This commit is contained in:
parent
1a8cbfc915
commit
23677ba2cb
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
import org.antlr.v4.runtime.CharStream;
|
import org.antlr.v4.runtime.CharStream;
|
||||||
import org.antlr.v4.runtime.CommonTokenStream;
|
import org.antlr.v4.runtime.CommonTokenStream;
|
||||||
|
import org.antlr.v4.runtime.misc.Interval;
|
||||||
import org.antlr.v4.runtime.tree.ParseTree;
|
import org.antlr.v4.runtime.tree.ParseTree;
|
||||||
|
|
||||||
import com.mysql.cj.CharsetMapping;
|
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;
|
||||||
import io.debezium.ddl.parser.mysql.generated.MySqlParser.CharsetNameContext;
|
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.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.Column;
|
||||||
import io.debezium.relational.ColumnEditor;
|
import io.debezium.relational.ColumnEditor;
|
||||||
import io.debezium.relational.SystemVariables;
|
import io.debezium.relational.SystemVariables;
|
||||||
@ -463,4 +466,19 @@ else if (collationNode != null && collationNode.getText() != null) {
|
|||||||
}
|
}
|
||||||
return charsetName;
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
import org.antlr.v4.runtime.tree.ParseTree;
|
import org.antlr.v4.runtime.tree.ParseTree;
|
||||||
import org.antlr.v4.runtime.tree.ParseTreeWalker;
|
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.TableId;
|
||||||
import io.debezium.relational.Tables;
|
import io.debezium.relational.Tables;
|
||||||
import io.debezium.relational.ddl.AbstractDdlParser;
|
import io.debezium.relational.ddl.AbstractDdlParser;
|
||||||
@ -242,21 +240,6 @@ public void signalCreateTable(TableId id, ParserRuleContext ctx) {
|
|||||||
signalCreateTable(id, getText(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.
|
* Signal an alter table event to ddl changes listener.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user