DBZ-1146 Test full column diff
This commit is contained in:
parent
5043d41b7b
commit
78bfda09a6
@ -62,4 +62,14 @@ private static boolean wal2Json() {
|
|||||||
public static boolean areSpecialFPValuesUnsupported() {
|
public static boolean areSpecialFPValuesUnsupported() {
|
||||||
return wal2Json();
|
return wal2Json();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wal2json plugin does not include toasted column in the update
|
||||||
|
*
|
||||||
|
* @author Jiri Pechanec
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static boolean areToastedValuesPresentInSchema() {
|
||||||
|
return !wal2Json();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1251,6 +1251,18 @@ public void shouldReceiveChangesForReplicaIdentityFullTableWithToastedValueTable
|
|||||||
testReceiveChangesForReplicaIdentityFullTableWithToastedValue(SchemaRefreshMode.COLUMNS_DIFF_EXCLUDE_UNCHANGED_TOAST, false);
|
testReceiveChangesForReplicaIdentityFullTableWithToastedValue(SchemaRefreshMode.COLUMNS_DIFF_EXCLUDE_UNCHANGED_TOAST, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@FixFor("DBZ-1146")
|
||||||
|
public void shouldReceiveChangesForReplicaIdentityFullTableWithToastedValueTableFromSnapshotFullDiff() throws Exception {
|
||||||
|
testReceiveChangesForReplicaIdentityFullTableWithToastedValue(SchemaRefreshMode.COLUMNS_DIFF, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@FixFor("DBZ-1146")
|
||||||
|
public void shouldReceiveChangesForReplicaIdentityFullTableWithToastedValueTableFromStreamingFullDiff() throws Exception {
|
||||||
|
testReceiveChangesForReplicaIdentityFullTableWithToastedValue(SchemaRefreshMode.COLUMNS_DIFF, false);
|
||||||
|
}
|
||||||
|
|
||||||
private void testReceiveChangesForReplicaIdentityFullTableWithToastedValue(PostgresConnectorConfig.SchemaRefreshMode mode, boolean tablesBeforeStart) throws Exception{
|
private void testReceiveChangesForReplicaIdentityFullTableWithToastedValue(PostgresConnectorConfig.SchemaRefreshMode mode, boolean tablesBeforeStart) throws Exception{
|
||||||
PostgresConnectorConfig config = new PostgresConnectorConfig(TestHelper.defaultConfig()
|
PostgresConnectorConfig config = new PostgresConnectorConfig(TestHelper.defaultConfig()
|
||||||
.with(PostgresConnectorConfig.SCHEMA_REFRESH_MODE, mode)
|
.with(PostgresConnectorConfig.SCHEMA_REFRESH_MODE, mode)
|
||||||
@ -1294,16 +1306,28 @@ private void testReceiveChangesForReplicaIdentityFullTableWithToastedValue(Postg
|
|||||||
executeAndWait("UPDATE test_table set not_toast = 20");
|
executeAndWait("UPDATE test_table set not_toast = 20");
|
||||||
SourceRecord updatedRecord = consumer.remove();
|
SourceRecord updatedRecord = consumer.remove();
|
||||||
|
|
||||||
assertRecordSchemaAndValues(Arrays.asList(
|
if (DecoderDifferences.areToastedValuesPresentInSchema()) {
|
||||||
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
assertRecordSchemaAndValues(Arrays.asList(
|
||||||
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 10),
|
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
||||||
new SchemaAndValueField("text", SchemaBuilder.OPTIONAL_STRING_SCHEMA, toastedValue)
|
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 10),
|
||||||
), updatedRecord, Envelope.FieldName.BEFORE);
|
new SchemaAndValueField("text", SchemaBuilder.OPTIONAL_STRING_SCHEMA, toastedValue)
|
||||||
assertRecordSchemaAndValues(Arrays.asList(
|
), updatedRecord, Envelope.FieldName.BEFORE);
|
||||||
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
assertRecordSchemaAndValues(Arrays.asList(
|
||||||
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 20),
|
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
||||||
new SchemaAndValueField("text", SchemaBuilder.OPTIONAL_STRING_SCHEMA, null)
|
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 20),
|
||||||
), updatedRecord, Envelope.FieldName.AFTER);
|
new SchemaAndValueField("text", SchemaBuilder.OPTIONAL_STRING_SCHEMA, null)
|
||||||
|
), updatedRecord, Envelope.FieldName.AFTER);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
assertRecordSchemaAndValues(Arrays.asList(
|
||||||
|
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
||||||
|
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 10)
|
||||||
|
), updatedRecord, Envelope.FieldName.BEFORE);
|
||||||
|
assertRecordSchemaAndValues(Arrays.asList(
|
||||||
|
new SchemaAndValueField("id", SchemaBuilder.INT32_SCHEMA, 1),
|
||||||
|
new SchemaAndValueField("not_toast", SchemaBuilder.OPTIONAL_INT32_SCHEMA, 20)
|
||||||
|
), updatedRecord, Envelope.FieldName.AFTER);
|
||||||
|
}
|
||||||
|
|
||||||
recordsProducer.stop();
|
recordsProducer.stop();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user