DBZ-2673 Read the raw bytes of a character-type field
This commit is contained in:
parent
c274c2b39b
commit
e44b76fb9d
@ -171,6 +171,12 @@ else if (actualColumn.jdbcType() == Types.TINYINT || actualColumn.jdbcType() ==
|
||||
// read it again to get correct scale
|
||||
return rs.getObject(fieldNo) == null ? null : rs.getInt(fieldNo);
|
||||
}
|
||||
// DBZ-2673
|
||||
else if (actualColumn.typeName().equals("CHAR") ||
|
||||
actualColumn.typeName().equals("VARCHAR") ||
|
||||
actualColumn.typeName().equals("TEXT")) {
|
||||
return rs.getBytes(fieldNo);
|
||||
}
|
||||
else {
|
||||
return rs.getObject(fieldNo);
|
||||
}
|
||||
|
@ -190,6 +190,20 @@ private void snapshotOfSingleDatabase(boolean useGlobalLock, boolean storeOnlyMo
|
||||
assertThat(customers.numberOfKeySchemaChanges()).isEqualTo(1);
|
||||
assertThat(customers.numberOfValueSchemaChanges()).isEqualTo(1);
|
||||
|
||||
List<Struct> customerRecrods = new ArrayList<>();
|
||||
customers.forEach(val -> {
|
||||
customerRecrods.add(((Struct) val.value()).getStruct("after"));
|
||||
});
|
||||
|
||||
Struct customer = customerRecrods.stream().sorted((a, b) -> a.getInt32("id").compareTo(b.getInt32("id"))).findFirst().get();
|
||||
assertThat(customer.get("first_name")).isInstanceOf(String.class);
|
||||
assertThat(customer.get("last_name")).isInstanceOf(String.class);
|
||||
assertThat(customer.get("email")).isInstanceOf(String.class);
|
||||
|
||||
assertThat(customer.get("first_name")).isEqualTo("Sally");
|
||||
assertThat(customer.get("last_name")).isEqualTo("Thomas");
|
||||
assertThat(customer.get("email")).isEqualTo("sally.thomas@acme.com");
|
||||
|
||||
Collection orders = store.collection(DATABASE.getDatabaseName(), "orders");
|
||||
assertThat(orders.numberOfCreates()).isEqualTo(5);
|
||||
assertThat(orders.numberOfUpdates()).isEqualTo(0);
|
||||
@ -250,6 +264,7 @@ public void snapshotWithBackupLocksShouldNotWaitForReads() throws Exception {
|
||||
|
||||
MySQLConnection db = MySQLConnection.forTestDatabase(DATABASE.getDatabaseName());
|
||||
Thread t = new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
JdbcConnection connection = db.connect();
|
||||
|
Loading…
Reference in New Issue
Block a user