@Test public void testSplitSchemaBuild() { Schema s = SchemaBuilder .record("HandshakeRequest") .namespace("org.apache.avro.ipc").fields() .name("clientProtocol").type().optional().stringType() .name("meta").type().optional().map().values().bytesType() .endRecord(); String schemaString = s.toString(); int mid = schemaString.length() / 2; Schema parsedStringSchema = new org.apache.avro.Schema.Parser().parse(s.toString()); Schema parsedArrayOfStringSchema = new org.apache.avro.Schema.Parser().parse (schemaString.substring(0, mid), schemaString.substring(mid)); assertNotNull(parsedStringSchema); assertNotNull(parsedArrayOfStringSchema); assertEquals(parsedStringSchema.toString(), parsedArrayOfStringSchema.toString()); }
break; case "bytes": returnSchema = typeBuilder.bytesType(); break; default:
u -> u.type(decimal.addToSchema(SchemaBuilder.builder().bytesType()))); } else { addNullableField(builder, columnName, u -> u.stringType());
u -> u.type(decimal.addToSchema(SchemaBuilder.builder().bytesType()))); } else { addNullableField(builder, columnName, u -> u.stringType());
break; case "bytes": returnSchema = typeBuilder.bytesType(); break; default:
private Schema avroType(Type spannerType) { switch (spannerType.getCode()) { case BOOL: return SchemaBuilder.builder().booleanType(); case INT64: return SchemaBuilder.builder().longType(); case FLOAT64: return SchemaBuilder.builder().doubleType(); case STRING: return SchemaBuilder.builder().stringType(); case BYTES: return SchemaBuilder.builder().bytesType(); case TIMESTAMP: return SchemaBuilder.builder().stringType(); case DATE: return SchemaBuilder.builder().stringType(); case ARRAY: Schema avroItemsType = avroType(spannerType.getArrayElementType()); return SchemaBuilder.builder().array().items().type(wrapAsNullable(avroItemsType)); default: throw new IllegalArgumentException("Unknown spanner type " + spannerType); } }
@Test public void testBytes() { Schema.Type type = Schema.Type.BYTES; Schema simple = SchemaBuilder.builder().bytesType(); Schema expected = primitive(type, simple); Schema built1 = SchemaBuilder.builder() .bytesBuilder().prop("p", "v").endBytes(); Assert.assertEquals(expected, built1); }