writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
/** * Adds fields to <tt>recordFields</tt> list. * @param recordFields - record fields are added to this list. * @param field - the field * @param fieldName - field name * @param fieldSchema - field schema * @param dataType - data type * @param nullable - is nullable? */ private static void addFieldToList(final List<RecordField> recordFields, final Field field, final String fieldName, final Schema fieldSchema, final DataType dataType, final boolean nullable) { if (field.defaultVal() == JsonProperties.NULL_VALUE) { recordFields.add(new RecordField(fieldName, dataType, field.aliases(), nullable)); } else { Object defaultValue = field.defaultVal(); if (fieldSchema.getType() == Schema.Type.ARRAY && !DataTypeUtils.isArrayTypeCompatible(defaultValue, ((ArrayDataType) dataType).getElementType())) { defaultValue = defaultValue instanceof List ? ((List<?>) defaultValue).toArray() : new Object[0]; } recordFields.add(new RecordField(fieldName, dataType, defaultValue, field.aliases(), nullable)); } }
writeFieldSchema(field.schema(), appendable, jsonGen, alreadyDeclared, toDeclare, schema.getNamespace()); appendable.append(' '); Set<String> faliases = field.aliases(); if (!faliases.isEmpty()) { appendable.append("@aliases(");
writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Schema.Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Schema.Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
writerFields.add(direct); for (final String readerFieldAliasName : readerField.aliases()) { final Field writerField = writerSchema.getField(readerFieldAliasName); if (writerField != null) {
/** * Adds fields to <tt>recordFields</tt> list. * @param recordFields - record fields are added to this list. * @param field - the field * @param fieldName - field name * @param fieldSchema - field schema * @param dataType - data type * @param nullable - is nullable? */ private static void addFieldToList(final List<RecordField> recordFields, final Field field, final String fieldName, final Schema fieldSchema, final DataType dataType, final boolean nullable) { if (field.defaultVal() == JsonProperties.NULL_VALUE) { recordFields.add(new RecordField(fieldName, dataType, field.aliases(), nullable)); } else { Object defaultValue = field.defaultVal(); if (fieldSchema.getType() == Schema.Type.ARRAY && !DataTypeUtils.isArrayTypeCompatible(defaultValue, ((ArrayDataType) dataType).getElementType())) { defaultValue = defaultValue instanceof List ? ((List<?>) defaultValue).toArray() : new Object[0]; } recordFields.add(new RecordField(fieldName, dataType, defaultValue, field.aliases(), nullable)); } }
private Schema.Field getAvroField(String parquetFieldName) { Schema.Field avroField = avroSchema.getField(parquetFieldName); for (Schema.Field f : avroSchema.getFields()) { if (f.aliases().contains(parquetFieldName)) { return f; } } if (avroField == null) { throw new InvalidRecordException(String.format( "Parquet/Avro schema mismatch. Avro field '%s' not found.", parquetFieldName)); } return avroField; }
private Schema.Field getAvroField(String parquetFieldName) { Schema.Field avroField = avroSchema.getField(parquetFieldName); if (avroField != null) { return avroField; } for (Schema.Field f : avroSchema.getFields()) { if (f.aliases().contains(parquetFieldName)) { return f; } } throw new InvalidRecordException(String.format( "Parquet/Avro schema mismatch: Avro field '%s' not found", parquetFieldName)); }
@Override public Set<String> aliases() { return wrapped.aliases(); }
public static void copyAliases(final Schema.Field from, final Schema.Field to) { Set<String> aliases = from.aliases(); for (String alias : aliases) { to.addAlias(alias); } }
private static void validateDoesNotContainReservedColumnName(Schema schema) throws SchemaValidationException { for (Field field : schema.getFields()) { if (PARTITION_COLUMN_NAME.equalsIgnoreCase(field.name())) { throw new SchemaValidationException(String.format("Field name '%s' is reserved", field.name())); } for (String alias : field.aliases()) { if (PARTITION_COLUMN_NAME.equalsIgnoreCase(alias)) { throw new SchemaValidationException(String.format("Field name '%s' is reserved", alias)); } } } }
production[--i] = Symbol.RECORD_START; for (Field f : sc.getFields()) { production[--i] = Symbol.fieldAdjustAction(n, f.name(), f.aliases()); production[--i] = generate(f.schema(), seen); production[--i] = Symbol.FIELD_END;
@Test public void testRecord() { Schema schema = SchemaBuilder .record("myrecord").namespace("org.example").aliases("oldrecord").fields() .name("f0").aliases("f0alias").type().stringType().noDefault() .name("f1").doc("This is f1").type().longType().noDefault() .name("f2").type().nullable().booleanType().booleanDefault(true) .endRecord(); Assert.assertEquals("myrecord", schema.getName()); Assert.assertEquals("org.example", schema.getNamespace()); Assert.assertEquals("org.example.oldrecord", schema.getAliases().iterator().next()); Assert.assertFalse(schema.isError()); List<Schema.Field> fields = schema.getFields(); Assert.assertEquals(3, fields.size()); Assert.assertEquals( new Schema.Field("f0", Schema.create(Schema.Type.STRING), null, null), fields.get(0)); Assert.assertTrue(fields.get(0).aliases().contains("f0alias")); Assert.assertEquals( new Schema.Field("f1", Schema.create(Schema.Type.LONG), "This is f1", null), fields.get(1)); List<Schema> types = new ArrayList<>(); types.add(Schema.create(Schema.Type.BOOLEAN)); types.add(Schema.create(Schema.Type.NULL)); Schema optional = Schema.createUnion(types); Assert.assertEquals(new Schema.Field("f2", optional, null, true), fields.get(2)); }
@Test public void testFields() { Schema rec = SchemaBuilder.record("Rec").fields() .name("documented").doc("documented").type().nullType().noDefault() .name("ascending").orderAscending().type().booleanType().noDefault() .name("descending").orderDescending().type().floatType().noDefault() .name("ignored").orderIgnore().type().doubleType().noDefault() .name("aliased").aliases("anAlias").type().stringType().noDefault() .endRecord(); Assert.assertEquals("documented", rec.getField("documented").doc()); Assert.assertEquals(Order.ASCENDING, rec.getField("ascending").order()); Assert.assertEquals(Order.DESCENDING, rec.getField("descending").order()); Assert.assertEquals(Order.IGNORE, rec.getField("ignored").order()); Assert.assertTrue(rec.getField("aliased").aliases().contains("anAlias")); }
@Test public void testMessageFieldAliases() throws IOException{ Protocol protocol = getSimpleProtocol(); final Message msg = protocol.getMessages().get("hello"); assertNotNull(msg); final Schema.Field field = msg.getRequest().getField("greeting"); assertNotNull(field); assertTrue(field.aliases().contains("salute")); }
public static void copyAliases(final Schema.Field from, final Schema.Field to) { Set<String> aliases = from.aliases(); for (String alias : aliases) { to.addAlias(alias); } }