|
|
|
@ -57,7 +57,6 @@ import java.time.Duration;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.Random;
|
|
|
|
@ -65,6 +64,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
import static org.apache.flink.api.common.JobStatus.RUNNING;
|
|
|
|
|
import static org.apache.flink.cdc.common.utils.TestCaseUtils.fetchAndConvert;
|
|
|
|
|
import static org.apache.flink.cdc.connectors.mysql.LegacyMySqlSourceTest.currentMySqlLatestOffset;
|
|
|
|
|
import static org.apache.flink.cdc.connectors.mysql.MySqlTestUtils.assertContainsErrorMsg;
|
|
|
|
|
import static org.apache.flink.cdc.connectors.mysql.MySqlTestUtils.waitForJobStatus;
|
|
|
|
@ -473,7 +473,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+I[109, spare tire, 24 inch spare tire, 22.200]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expectedSnapshot), fetchRows(iterator, expectedSnapshot.length));
|
|
|
|
|
Arrays.asList(expectedSnapshot),
|
|
|
|
|
fetchAndConvert(iterator, expectedSnapshot.length, Row::toString));
|
|
|
|
|
|
|
|
|
|
try (Connection connection = inventoryDatabase.getJdbcConnection();
|
|
|
|
|
Statement statement = connection.createStatement()) {
|
|
|
|
@ -499,7 +500,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"-D[111, scooter, Big 2-wheel scooter , 5.170]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInOrder(
|
|
|
|
|
Arrays.asList(expectedBinlog), fetchRows(iterator, expectedBinlog.length));
|
|
|
|
|
Arrays.asList(expectedBinlog),
|
|
|
|
|
fetchAndConvert(iterator, expectedBinlog.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -760,7 +762,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
+ "]",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -830,7 +833,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[0, 1024, " + getIntegerSeqString(2, tableColumnCount) + "]"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1096,7 +1100,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[111, scooter, Big 2-wheel scooter , 5.170]",
|
|
|
|
|
"-D[111, scooter, Big 2-wheel scooter , 5.170]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1174,7 +1179,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[[4, 4, 4, 4, 4, 4, 4, 5], 2021-03-08, 50, 500, flink]",
|
|
|
|
|
"-D[[4, 4, 4, 4, 4, 4, 4, 6], 2021-03-08, 30, 500, flink-sql]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1241,7 +1247,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[416927583791428523, China, Hangzhou, West Town address 2]",
|
|
|
|
|
"+I[418257940021724075, Germany, Berlin, West Town address 3]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1307,7 +1314,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[103, user_3, Hangzhou, 123567891234]",
|
|
|
|
|
"+I[110, newCustomer, Berlin, 12345678]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
customer3_0Database.dropDatabase();
|
|
|
|
|
}
|
|
|
|
@ -1381,7 +1389,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+I[1019, user_20, Shanghai, 123567891234]",
|
|
|
|
|
"+I[2000, user_21, Shanghai, 123567891234]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1519,7 +1528,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
+ " tiny_un_c TINYINT UNSIGNED DEFAULT ' 28 '"
|
|
|
|
|
+ " );");
|
|
|
|
|
}
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
jobClient.cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1588,7 +1598,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
statement.execute(
|
|
|
|
|
"alter table default_value_test add column `int_test` INT DEFAULT ' 30 ';");
|
|
|
|
|
}
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
jobClient.cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1986,7 +1997,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+I[123458.6789, KIND_003, user_3, my shopping cart]",
|
|
|
|
|
"+I[123459.1234, KIND_004, user_4, null]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2051,7 +2063,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+I[E, 3, flink]",
|
|
|
|
|
"+I[e, 4, flink]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2183,7 +2196,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+I[1, 127, 255, 255, 32767, 65535, 65535, 2023]",
|
|
|
|
|
"+I[2, 127, 255, 255, 32767, 65535, 65535, 2024]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2255,16 +2269,6 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static List<String> fetchRows(Iterator<Row> iter, int size) {
|
|
|
|
|
List<String> rows = new ArrayList<>(size);
|
|
|
|
|
while (size > 0 && iter.hasNext()) {
|
|
|
|
|
Row row = iter.next();
|
|
|
|
|
rows.add(row.toString());
|
|
|
|
|
size--;
|
|
|
|
|
}
|
|
|
|
|
return rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void waitForSnapshotStarted(CloseableIterator<Row> iterator) throws Exception {
|
|
|
|
|
while (!iterator.hasNext()) {
|
|
|
|
|
Thread.sleep(100);
|
|
|
|
@ -2348,7 +2352,8 @@ public class MySqlConnectorITCase extends MySqlSourceTestBase {
|
|
|
|
|
"+U[6, BAQEBAQEBAU=, 2021-03-08, 50, 500, flink]",
|
|
|
|
|
"-D[7, BAQEBAQEBAY=, 2021-03-08, 30, 500, flink-sql]"
|
|
|
|
|
};
|
|
|
|
|
assertEqualsInAnyOrder(Arrays.asList(expected), fetchRows(iterator, expected.length));
|
|
|
|
|
assertEqualsInAnyOrder(
|
|
|
|
|
Arrays.asList(expected), fetchAndConvert(iterator, expected.length, Row::toString));
|
|
|
|
|
result.getJobClient().get().cancel().get();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|