use of org.apache.avro.generic.GenericData.EnumSymbol in project avro by apache.
the class TestSkipEnumSchema method testSkipEnum.
@Test
public void testSkipEnum() throws IOException {
Schema enumSchema = SchemaBuilder.builder().enumeration("enum").symbols("en1", "en2");
EnumSymbol enumSymbol = new EnumSymbol(enumSchema, "en1");
GenericDatumWriter<EnumSymbol> datumWriter = new GenericDatumWriter<>(enumSchema);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Encoder encoder = EncoderFactory.get().validatingEncoder(enumSchema, EncoderFactory.get().binaryEncoder(byteArrayOutputStream, null));
datumWriter.write(enumSymbol, encoder);
encoder.flush();
Decoder decoder = DecoderFactory.get().validatingDecoder(enumSchema, DecoderFactory.get().binaryDecoder(byteArrayOutputStream.toByteArray(), null));
GenericDatumReader.skip(enumSchema, decoder);
}
use of org.apache.avro.generic.GenericData.EnumSymbol in project avro by apache.
the class TestReadingWritingDataInEvolvedSchemas method enumRecordWithExtendedSchemaCanBeReadWithOriginalEnumSchemaIfOnlyOldValues.
@Test
public void enumRecordWithExtendedSchemaCanBeReadWithOriginalEnumSchemaIfOnlyOldValues() throws Exception {
Schema writer = ENUM_ABC_RECORD;
Record record = defaultRecordWithSchema(writer, FIELD_A, new EnumSymbol(writer, "A"));
byte[] encoded = encodeGenericBlob(record);
Record decoded = decodeGenericBlob(ENUM_AB_RECORD, writer, encoded);
assertEquals("A", decoded.get(FIELD_A).toString());
}
use of org.apache.avro.generic.GenericData.EnumSymbol in project avro by apache.
the class TestReadingWritingDataInEvolvedSchemas method enumRecordWithExtendedSchemaCanNotBeReadIfNewValuesAreUsed.
@Test
public void enumRecordWithExtendedSchemaCanNotBeReadIfNewValuesAreUsed() throws Exception {
expectedException.expect(AvroTypeException.class);
expectedException.expectMessage("No match for C");
Schema writer = ENUM_ABC_RECORD;
Record record = defaultRecordWithSchema(writer, FIELD_A, new EnumSymbol(writer, "C"));
byte[] encoded = encodeGenericBlob(record);
decodeGenericBlob(ENUM_AB_RECORD, writer, encoded);
}
use of org.apache.avro.generic.GenericData.EnumSymbol in project avro by apache.
the class TestReadingWritingDataInEvolvedSchemas method enumRecordCanBeReadWithExtendedEnumSchema.
@Test
public void enumRecordCanBeReadWithExtendedEnumSchema() throws Exception {
Schema writer = ENUM_AB_RECORD;
Record record = defaultRecordWithSchema(writer, FIELD_A, new EnumSymbol(writer, "A"));
byte[] encoded = encodeGenericBlob(record);
Record decoded = decodeGenericBlob(ENUM_ABC_RECORD, writer, encoded);
assertEquals("A", decoded.get(FIELD_A).toString());
}
use of org.apache.avro.generic.GenericData.EnumSymbol in project trino by trinodb.
the class TestAvroDecoder method testEnumDecodedAsVarchar.
@Test
public void testEnumDecodedAsVarchar() {
Schema schema = SchemaBuilder.record("record").fields().name("enum_field").type().enumeration("Weekday").symbols("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday").noDefault().endRecord();
Schema enumType = schema.getField("enum_field").schema();
EnumSymbol enumValue = new GenericData.EnumSymbol(enumType, "Wednesday");
DecoderTestColumnHandle row = new DecoderTestColumnHandle(0, "row", VARCHAR, "enum_field", null, null, false, false, false);
Map<DecoderColumnHandle, FieldValueProvider> decodedRow = buildAndDecodeColumn(row, "enum_field", enumType.toString(), enumValue);
checkValue(decodedRow, row, "Wednesday");
}
Aggregations