DBZ-6864 - Debezium-MySQL not filtering AWS RDS internal events
This commit is contained in:
parent
0dd0ff7306
commit
3a2e141c56
@ -78,7 +78,7 @@ public interface SchemaHistory {
|
||||
.withType(Type.STRING)
|
||||
.withDefault(
|
||||
"DROP TEMPORARY TABLE IF EXISTS .+ /\\* generated by server \\*/," +
|
||||
// Filter out RDS heartbeat statements, see DBZ-469
|
||||
// Filter out RDS heartbeat statements, see DBZ-469 / DBZ-1492 / DBZ-2275 / DBZ-6864
|
||||
"INSERT INTO mysql.rds_heartbeat2\\(.*\\) values \\(.*\\) ON DUPLICATE KEY UPDATE value = .*," +
|
||||
"DELETE FROM mysql.rds_sysinfo.*," +
|
||||
"INSERT INTO mysql.rds_sysinfo\\(.*\\) values \\(.*\\)," +
|
||||
@ -88,6 +88,7 @@ public interface SchemaHistory {
|
||||
"FLUSH RELAY LOGS.*," +
|
||||
"flush relay logs.*," +
|
||||
"SAVEPOINT .*," +
|
||||
"SET STATEMENT .*," +
|
||||
// Filter out the comment start with "# Dummy event" according https://jira.mariadb.org/browse/MDEV-225
|
||||
"^\\s*#\\s*Dummy event.*")
|
||||
.withWidth(Width.LONG)
|
||||
|
@ -390,4 +390,13 @@ public void testConfigurationMerge() {
|
||||
assertThat(dbConfig.keys().size()).isEqualTo(2);
|
||||
assertThat(dbConfig.getString("user")).isEqualTo("mysqluser");
|
||||
}
|
||||
|
||||
@Test
|
||||
@FixFor("DBZ-6864")
|
||||
public void defaultDdlFilterShouldFilterOutRdsSetStatements() {
|
||||
String defaultDdlFilter = Configuration.create().build().getString(SchemaHistory.DDL_FILTER);
|
||||
Predicate<String> ddlFilter = Predicates.includes(defaultDdlFilter, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
|
||||
assertThat(ddlFilter.test("SET STATEMENT max_statement_time=60 FOR DELETE FROM mysql.rds_sysinfo where name = 'innodb_txn_key'")).isTrue();
|
||||
assertThat(ddlFilter.test("SET STATEMENT max_statement_time=60 FOR INSERT INTO mysql.rds_heartbeat2(id, value) values (1,1692866524004) ON DUPLICATE KEY UPDATE value = 1692866524004")).isTrue();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user