DBZ-2913 More various test fixes for MariaDB
This commit is contained in:
parent
498409dcb6
commit
f5313cd525
@ -176,17 +176,24 @@ protected void assertDdl(List<String> schemaChangesDdls) {
|
||||
|
||||
@NotNull
|
||||
private static String getDdlString(MySqlDatabaseVersionResolver databaseVersionResolver) {
|
||||
|
||||
return databaseVersionResolver.getVersion().getMajor() < MYSQL8 ? "CREATE TABLE `b` (\n" +
|
||||
" `pk` int(11) NOT NULL AUTO_INCREMENT,\n" +
|
||||
" `aa` int(11) DEFAULT NULL,\n" +
|
||||
" PRIMARY KEY (`pk`)\n" +
|
||||
") ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=latin1"
|
||||
|
||||
: "CREATE TABLE `b` (\n" +
|
||||
" `pk` int NOT NULL AUTO_INCREMENT,\n" +
|
||||
" `aa` int DEFAULT NULL,\n" +
|
||||
" PRIMARY KEY (`pk`)\n" +
|
||||
") ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci";
|
||||
boolean isMariaDB = databaseVersionResolver.isMariaDb();
|
||||
if (isMariaDB || databaseVersionResolver.getVersion().getMajor() < MYSQL8) {
|
||||
final StringBuilder sb = new StringBuilder("CREATE TABLE `b` (\n");
|
||||
sb.append(" `pk` int(11) NOT NULL AUTO_INCREMENT,\n");
|
||||
sb.append(" `aa` int(11) DEFAULT NULL,\n");
|
||||
sb.append(" PRIMARY KEY (`pk`)\n");
|
||||
sb.append(") ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=latin1");
|
||||
if (isMariaDB) {
|
||||
sb.append(" COLLATE=latin1_swedish_ci");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
else {
|
||||
return "CREATE TABLE `b` (\n" +
|
||||
" `pk` int NOT NULL AUTO_INCREMENT,\n" +
|
||||
" `aa` int DEFAULT NULL,\n" +
|
||||
" PRIMARY KEY (`pk`)\n" +
|
||||
") ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -253,6 +253,10 @@ public void updates() throws Exception {
|
||||
if (snapshot.equals("false")) {
|
||||
assertNotNull(query);
|
||||
}
|
||||
else if (MySqlTestConnection.isMariaDb()) {
|
||||
assertNotNull(query);
|
||||
assertEquals("incremental", snapshot);
|
||||
}
|
||||
else {
|
||||
assertNull(query);
|
||||
assertEquals("incremental", snapshot);
|
||||
|
@ -669,7 +669,7 @@ private void shouldConsumeAllEventsFromDatabaseUsingSnapshotByField(Field dbIncl
|
||||
assertThat(persistedOffsetSource.binlogFilename()).isEqualTo(positionBeforeInserts.binlogFilename());
|
||||
assertThat(persistedOffsetSource.binlogFilename()).isEqualTo(positionAfterInserts.binlogFilename());
|
||||
final MySqlVersion mysqlVersion = MySqlTestConnection.forTestDatabase(DATABASE.getDatabaseName()).getMySqlVersion();
|
||||
if (mysqlVersion == MySqlVersion.MYSQL_5_5 || mysqlVersion == MySqlVersion.MYSQL_5_6) {
|
||||
if (mysqlVersion == MySqlVersion.MYSQL_5_5 || mysqlVersion == MySqlVersion.MYSQL_5_6 || mysqlVersion == MySqlVersion.MARIADB_11) {
|
||||
// todo: for some reason on MySQL 5.6, the binlog position does not behave like it does on MySQL 5.7 - why?
|
||||
assertThat(persistedOffsetSource.binlogPosition()).isGreaterThanOrEqualTo(positionBeforeInserts.binlogPosition());
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ public class MySqlGeometryIT extends AbstractConnectorTest {
|
||||
@Before
|
||||
public void beforeEach() {
|
||||
stopConnector();
|
||||
databaseDifferences = databaseGeoDifferences(MySqlTestConnection.isMySQL5());
|
||||
databaseDifferences = databaseGeoDifferences(MySqlTestConnection.isMySQL5() || MySqlTestConnection.isMariaDb());
|
||||
|
||||
DATABASE = new UniqueDatabase("geometryit", databaseDifferences.geometryDatabaseName())
|
||||
.withDbHistoryPath(SCHEMA_HISTORY_PATH);
|
||||
|
@ -5,6 +5,7 @@
|
||||
*/
|
||||
package io.debezium.connector.mysql;
|
||||
|
||||
import static io.debezium.junit.EqualityCheck.GREATER_THAN_OR_EQUAL;
|
||||
import static io.debezium.junit.EqualityCheck.LESS_THAN;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ -27,6 +28,7 @@
|
||||
* @author Chris Cranford
|
||||
*/
|
||||
@SkipWhenDatabaseVersion(check = LESS_THAN, major = 5, minor = 7, reason = "Generated values were not added until MySQL 5.7")
|
||||
@SkipWhenDatabaseVersion(check = GREATER_THAN_OR_EQUAL, major = 11, reason = "MariaDB does not allow you to specify AS and NOT NULL")
|
||||
public class MysqlDefaultGeneratedValueIT extends AbstractConnectorTest {
|
||||
|
||||
// 4 meta events (set character_set etc.) and then 15 tables with 3 events each (drop DDL, create DDL, insert)
|
||||
|
@ -15,6 +15,11 @@
|
||||
*/
|
||||
public class MySqlDatabaseVersionResolver implements DatabaseVersionResolver {
|
||||
|
||||
public boolean isMariaDb() {
|
||||
return MySqlTestConnection.forTestDatabase("mysql")
|
||||
.getMySqlVersion() == MySqlTestConnection.MySqlVersion.MARIADB_11;
|
||||
}
|
||||
|
||||
public DatabaseVersion getVersion() {
|
||||
final String versionString = MySqlTestConnection.forTestDatabase("mysql").getMySqlVersionString();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user