use of io.trino.decoder.DecoderColumnHandle in project trino by trinodb.
the class TestAvroConfluentRowDecoder method testDecodingRows.
@Test
public void testDecodingRows() throws Exception {
MockSchemaRegistryClient mockSchemaRegistryClient = new MockSchemaRegistryClient();
Schema initialSchema = SchemaBuilder.record(TOPIC).fields().name("col1").type().intType().noDefault().name("col2").type().stringType().noDefault().name("col3").type().intType().intDefault(42).name("col4").type().nullable().intType().noDefault().name("col5").type().nullable().bytesType().noDefault().endRecord();
Schema evolvedSchema = SchemaBuilder.record(TOPIC).fields().name("col1").type().intType().noDefault().name("col2").type().stringType().noDefault().name("col3").type().intType().intDefault(3).name("col4").type().nullable().intType().noDefault().name("col5").type().nullable().bytesType().noDefault().name("col6").type().optional().longType().endRecord();
mockSchemaRegistryClient.register(TOPIC + "-value", initialSchema);
mockSchemaRegistryClient.register(TOPIC + "-value", evolvedSchema);
Set<DecoderColumnHandle> columnHandles = ImmutableSet.<DecoderColumnHandle>builder().add(new KafkaColumnHandle("col1", INTEGER, "col1", null, null, false, false, false)).add(new KafkaColumnHandle("col2", VARCHAR, "col2", null, null, false, false, false)).add(new KafkaColumnHandle("col3", INTEGER, "col3", null, null, false, false, false)).add(new KafkaColumnHandle("col4", INTEGER, "col4", null, null, false, false, false)).add(new KafkaColumnHandle("col5", VARBINARY, "col5", null, null, false, false, false)).add(new KafkaColumnHandle("col6", BIGINT, "col6", null, null, false, false, false)).build();
RowDecoder rowDecoder = getRowDecoder(mockSchemaRegistryClient, columnHandles, evolvedSchema);
testRow(rowDecoder, generateRecord(initialSchema, Arrays.asList(3, "string-3", 30, 300, ByteBuffer.wrap(new byte[] { 1, 2, 3 }))), 1);
testRow(rowDecoder, generateRecord(initialSchema, Arrays.asList(3, "", 30, null, null)), 1);
testRow(rowDecoder, generateRecord(initialSchema, Arrays.asList(3, "\u0394\u66f4\u6539", 30, null, ByteBuffer.wrap(new byte[] { 1, 2, 3 }))), 1);
testRow(rowDecoder, generateRecord(evolvedSchema, Arrays.asList(4, "string-4", 40, 400, null, 4L)), 2);
testRow(rowDecoder, generateRecord(evolvedSchema, Arrays.asList(5, "string-5", 50, 500, ByteBuffer.wrap(new byte[] { 1, 2, 3 }), null)), 2);
}
Aggregations