@Test @FixFor("DBZ-1073") public void shouldAddColumnScale() { int length = 5; int scale = 2; Column column = Column.editor() .name("col") .type("NUMERIC") .jdbcType(Types.NUMERIC) .length(length) .scale(scale) .create(); SchemaBuilder schemaBuilder = SchemaBuilder.string(); new PropagateSourceTypeToSchemaParameter().alterFieldSchema(column, schemaBuilder); assertThat(schemaBuilder.parameters().get("__debezium.source.column.type")).isEqualTo("NUMERIC"); assertThat(schemaBuilder.parameters().get("__debezium.source.column.length")).isEqualTo(String.valueOf(length)); assertThat(schemaBuilder.parameters().get("__debezium.source.column.scale")).isEqualTo(String.valueOf(scale)); } }
@Test @FixFor("DBZ-644") public void shouldAddTypeInformation() { int length = 255; Column column = Column.editor() .name("col") .type("VARCHAR") .jdbcType(Types.VARCHAR) .length(length) .create(); SchemaBuilder schemaBuilder = SchemaBuilder.string(); new PropagateSourceTypeToSchemaParameter().alterFieldSchema(column, schemaBuilder); assertThat(schemaBuilder.parameters().get("__debezium.source.column.type")).isEqualTo("VARCHAR"); assertThat(schemaBuilder.parameters().get("__debezium.source.column.length")).isEqualTo(String.valueOf(length)); }
private SchemaBuilder copySchemaExcludingName(Schema source, SchemaBuilder builder, boolean copyFields) { builder.version(source.version()); builder.doc(source.doc()); Map<String, String> params = source.parameters(); if (params != null) { builder.parameters(params); } if (source.isOptional()) { builder.optional(); } else { builder.required(); } if (copyFields) { for (org.apache.kafka.connect.data.Field field : source.fields()) { builder.field(field.name(), field.schema()); } } return builder; } }
builder.parameters(this.parameters);
builder.parameters(this.parameters);
Schema generateKeySchema(Change change, List<String> schemaFields) { SchemaBuilder builder = SchemaBuilder.struct(); String schemaName = keySchemaName(change); builder.name(schemaName); addFields(change.keyColumns(), schemaFields, builder); builder.parameters( ImmutableMap.of( Change.DATABASE_NAME, change.databaseName(), Change.SCHEMA_NAME, change.schemaName(), Change.TABLE_NAME, change.tableName() ) ); return builder.build(); }
public static SchemaBuilder copySchemaBasics(Schema source, SchemaBuilder builder) { builder.name(source.name()); builder.version(source.version()); builder.doc(source.doc()); final Map<String, String> params = source.parameters(); if (params != null) { builder.parameters(params); } return builder; }
Schema generateKeySchema(Change change, List<String> schemaFields) { SchemaBuilder builder = SchemaBuilder.struct(); String schemaName = keySchemaName(change); builder.name(schemaName); addFields(change.keyColumns(), schemaFields, builder); builder.parameters( ImmutableMap.of( Change.DATABASE_NAME, change.databaseName(), Change.SCHEMA_NAME, change.schemaName(), Change.TABLE_NAME, change.tableName() ) ); return builder.build(); }
outputSchemaBuilder.parameters(inputSchema.parameters());
Schema generateValueSchema(Change change, List<String> schemaFields) { SchemaBuilder builder = SchemaBuilder.struct(); String schemaName = valueSchemaName(change); builder.name(schemaName); addFields(change.valueColumns(), schemaFields, builder); builder.field(Constants.METADATA_FIELD, SchemaBuilder.map(Schema.STRING_SCHEMA, Schema.STRING_SCHEMA)); builder.parameters( ImmutableMap.of( Change.DATABASE_NAME, change.databaseName(), Change.SCHEMA_NAME, change.schemaName(), Change.TABLE_NAME, change.tableName() ) ); return builder.build(); }
Schema generateValueSchema(Change change, List<String> schemaFields) { SchemaBuilder builder = SchemaBuilder.struct(); String schemaName = valueSchemaName(change); builder.name(schemaName); addFields(change.valueColumns(), schemaFields, builder); builder.field(Constants.METADATA_FIELD, SchemaBuilder.map(Schema.STRING_SCHEMA, Schema.STRING_SCHEMA)); builder.parameters( ImmutableMap.of( Change.DATABASE_NAME, change.databaseName(), Change.SCHEMA_NAME, change.schemaName(), Change.TABLE_NAME, change.tableName() ) ); return builder.build(); }
private SchemaBuilder copySchemaExcludingName(Schema source, SchemaBuilder builder, boolean copyFields) { builder.version(source.version()); builder.doc(source.doc()); Map<String, String> params = source.parameters(); if (params != null) { builder.parameters(params); } if (source.isOptional()) { builder.optional(); } else { builder.required(); } if (copyFields) { for (org.apache.kafka.connect.data.Field field : source.fields()) { builder.field(field.name(), field.schema()); } } return builder; } }