.name("fixedF2").type().fixed("F2").size(1).fixedDefault(bufdef) .name("fixedF3").type().fixed("F3").size(1).fixedDefault(strdef) .name("enumF").type().enumeration("E1").symbols("S").enumDefault("S") .name("mapF").type().map().values().stringType() .mapDefault(mapdef)
.type().enumeration("check_enum_symbols_type").symbols("A", "C").noDefault() .type().enumeration("check_enum_name_type").symbols("A", "B", "C", "D").noDefault() .type().enumeration("check_enum_symbols_type").symbols("A", "B", "C", "D").noDefault() .type().enumeration("check_enum_name_type_ERR").symbols("A", "B", "C", "D").noDefault()
public static AvroTestRecordWriter generateSimpleEnumSchema_NoNullValues() throws Exception { final String[] symbols = { "E_SYM_A", "E_SYM_B", "E_SYM_C", "E_SYM_D" }; final Schema schema = SchemaBuilder.record("AvroRecordReaderTest") .namespace("com.dremio.exec.store.avro") .fields() .name("a_string").type().stringType().noDefault() .name("b_enum").type().enumeration("my_enum").symbols(symbols).noDefault() .endRecord(); final File file = File.createTempFile("avro-primitive-test", ".avro"); file.deleteOnExit(); final Schema enumSchema = schema.getField("b_enum").schema(); final AvroTestRecordWriter record = new AvroTestRecordWriter(schema, file); try { for (int i = 0; i < RECORD_COUNT; i++) { record.startRecord(); record.put("a_string", "a_" + i); final GenericData.EnumSymbol symbol = new GenericData.EnumSymbol(enumSchema, symbols[(i + symbols.length) % symbols.length]); record.put("b_enum", symbol); record.endRecord(); } } finally { record.close(); } return record; }
.name("enum") .type() .enumeration("anEnum") .symbols("s1", "s2") .enumDefault("s1")
@Test public void testAllAvroTypes() { Schema r = SchemaBuilder.record("r").fields() .requiredBoolean("boolF") .requiredInt("intF") .requiredLong("longF") .requiredFloat("floatF") .requiredDouble("doubleF") .requiredString("stringF") .requiredBytes("bytesF") .name("fixedF1").type().fixed("F1").size(1).noDefault() .name("enumF").type().enumeration("E1").symbols("S").noDefault() .name("mapF").type().map().values().stringType().noDefault() .name("arrayF").type().array().items().stringType().noDefault() .name("recordF").type().record("inner").fields() .name("f").type().intType().noDefault() .endRecord().noDefault() .optionalBoolean("boolO") .endRecord(); assertTrue(SchemaValidationUtil.canRead(r, r)); } }
@Test public void testAllTypes() throws SchemaValidationException { Schema s = SchemaBuilder.record("r").fields() .requiredBoolean("boolF") .requiredInt("intF") .requiredLong("longF") .requiredFloat("floatF") .requiredDouble("doubleF") .requiredString("stringF") .requiredBytes("bytesF") .name("fixedF1").type().fixed("F1").size(1).noDefault() .name("enumF").type().enumeration("E1").symbols("S").noDefault() .name("mapF").type().map().values().stringType().noDefault() .name("arrayF").type().array().items().stringType().noDefault() .name("recordF").type().record("inner").fields() .name("f").type().intType().noDefault() .endRecord().noDefault() .optionalBoolean("boolO") .endRecord(); testValidatorPasses(builder.mutualReadStrategy().validateLatest(), s, s); }
@Test(expected=SchemaParseException.class) public void testNamesFailRedefined() { SchemaBuilder.record("Rec").fields() .name("f0").type().enumeration("MyEnum").symbols("A", "B").enumDefault("A") .name("f1").type().enumeration("MyEnum").symbols("X", "Y").noDefault() .endRecord(); }