@Test public void shouldDeserializeTimeMicrosToBigint() { shouldDeserializeTypeCorrectly( LogicalTypes.timeMicros().addToSchema( org.apache.avro.SchemaBuilder.builder().longType()), ChronoUnit.MICROS.between( LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT), LocalDateTime.now()), Schema.OPTIONAL_INT64_SCHEMA ); }
@Test public void shouldDeserializeTimestampToBigint() { shouldDeserializeTypeCorrectly( LogicalTypes.timestampMillis().addToSchema( org.apache.avro.SchemaBuilder.builder().longType()), ChronoUnit.MILLIS.between( LocalDateTime.of(LocalDate.ofEpochDay(0), LocalTime.MIDNIGHT), LocalDateTime.now()), Schema.OPTIONAL_INT64_SCHEMA ); }
@Test public void shouldDeserializeTimestampToInteger() { shouldDeserializeTypeCorrectly( LogicalTypes.timestampMicros().addToSchema( org.apache.avro.SchemaBuilder.builder().longType()), ChronoUnit.MICROS.between( LocalDateTime.of(LocalDate.ofEpochDay(0), LocalTime.MIDNIGHT), LocalDateTime.now()), Schema.OPTIONAL_INT64_SCHEMA ); }
addNullableField(builder, columnName, u -> options.useLogicalTypes ? u.type(LogicalTypes.timestampMillis().addToSchema(SchemaBuilder.builder().longType())) : u.stringType()); break;
break; case "long": returnSchema = typeBuilder.longType(); break; case "float":
GenericData.Record event = new GenericData.Record(record("name").fields() .optionalString("simple") .name("myarray").type(array().items().longType()).noDefault() .name("mymap").type(map().values().stringType()).noDefault() .endRecord());
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); } }
public static Schema getSchema(@NotEmpty final String type) { final SchemaBuilder.TypeBuilder<Schema> schema = SchemaBuilder.builder(); switch (type) { case CassandraSchemaField.STRING_TYPE: return schema.stringType(); case CassandraSchemaField.BOOLEAN_TYPE: return schema.booleanType(); case CassandraSchemaField.DOUBLE_TYPE: return schema.doubleType(); case CassandraSchemaField.FLOAT_TYPE: return schema.floatType(); case CassandraSchemaField.LONG_TYPE: return schema.longType(); case CassandraSchemaField.INT_TYPE: return schema.intType(); default: throw new IllegalArgumentException("Type " + type + " invalid for converting to Cassandra field"); } }
@Test public void testConvertToAvroNull() { Assert.assertNull("Avro null", JsonUtil.convertToAvro(GenericData.get(), null, Schema.create(Schema.Type.NULL))); Assert.assertNull("Avro nullable long", JsonUtil.convertToAvro(GenericData.get(), null, SchemaBuilder.nullable().longType())); Assert.assertNull("Avro long", JsonUtil.convertToAvro(GenericData.get(), null, SchemaBuilder.builder().longType())); }
addNullableField(builder, columnName, u -> options.useLogicalTypes ? u.type(LogicalTypes.timestampMillis().addToSchema(SchemaBuilder.builder().longType())) : u.stringType()); break;
break; case LONG: fieldAssembler = fieldAssembler.name(fieldSpec.getName()).type().array().items().longType().noDefault(); break; case FLOAT:
break; case "long": returnSchema = typeBuilder.longType(); break; case "float":
@Test public void testUnionFieldBuild() { SchemaBuilder.record("r").fields() .name("allUnion").type().unionOf() .booleanType().and() .intType().and() .longType().and() .floatType().and() .doubleType().and() .stringType().and() .bytesType().and() .nullType().and() .fixed("Fix").size(1).and() .enumeration("Enu").symbols("Q").and() .array().items().intType().and() .map().values().longType().and() .record("Rec").fields() .name("one").type("Fix").noDefault() .endRecord() .endUnion().booleanDefault(false) .endRecord(); }
@Test public void testArray() { Schema longSchema = Schema.create(Schema.Type.LONG); Schema expected = Schema.createArray(longSchema); Schema schema1 = SchemaBuilder.array().items().longType(); Assert.assertEquals(expected, schema1); Schema schema2 = SchemaBuilder.array().items(longSchema); Assert.assertEquals(expected, schema2); Schema schema3 = SchemaBuilder.array().prop("p", "v") .items().type("long"); expected.addProp("p", "v"); Assert.assertEquals(expected, schema3); }
@Test public void testLong() { Schema.Type type = Schema.Type.LONG; Schema simple = SchemaBuilder.builder().longType(); Schema expected = primitive(type, simple); Schema built1 = SchemaBuilder.builder() .longBuilder().prop("p", "v").endLong(); Assert.assertEquals(expected, built1); }
@Test public void shouldSerializeBigint() { shouldSerializeTypeCorrectly( Schema.OPTIONAL_INT64_SCHEMA, 123L, org.apache.avro.SchemaBuilder.builder().longType()); }