/** * Returns a {@link SchemaBuilder} for a {@link ZonedTime}. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(SCHEMA_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a Uuid field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for an XML field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a JSON field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a {@link ZonedTimestamp}. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(SCHEMA_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a decimal number depending on {@link JdbcValueConverters.DecimalMode}. You * can use the resulting schema builder to set additional schema settings such as required/optional, default value, * and documentation. * * @param mode the mode in which the number should be encoded * @param precision the precision of the decimal * @param scale scale of the decimal * @return the schema builder */ public static SchemaBuilder builder(DecimalMode mode, int precision, int scale) { switch (mode) { case DOUBLE: return SchemaBuilder.float64(); case PRECISE: return Decimal.builder(scale) .parameter(PRECISION_PARAMETER_KEY, String.valueOf(precision)); case STRING: return SchemaBuilder.string(); } throw new IllegalArgumentException("Unknown decimalMode"); }
/** * Returns a {@link SchemaBuilder} for an enumeration. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @param allowedValues the comma separated list of allowed values; may not be null * @return the schema builder */ public static SchemaBuilder builder(String allowedValues) { return SchemaBuilder.string() .name(LOGICAL_NAME) .parameter(VALUES_FIELD, allowedValues) .version(1); }
/** * Returns a {@link SchemaBuilder} for a set of enumerated values. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @param allowedValues the comma separated list of allowed values; may not be null * @return the schema builder */ public static SchemaBuilder builder(String allowedValues) { return SchemaBuilder.string() .name(LOGICAL_NAME) .parameter(VALUES_FIELD, allowedValues) .version(1); }
private Schema hstoreMapSchema() { return SchemaBuilder.map( Schema.STRING_SCHEMA, SchemaBuilder.string().optional().build() ) .optional() .build(); }
protected List<SchemaAndValueField> schemasAndValuesForStringTypesWithSourceColumnTypeInfo() { return Arrays.asList(new SchemaAndValueField("vc", SchemaBuilder.string().optional() .parameter(TestHelper.TYPE_NAME_PARAMETER_KEY, "VARCHAR") .parameter(TestHelper.TYPE_LENGTH_PARAMETER_KEY, "2") .parameter(TestHelper.TYPE_SCALE_PARAMETER_KEY, "0") .build(), "\u017E\u0161" ), new SchemaAndValueField("vcv", SchemaBuilder.string().optional() .parameter(TestHelper.TYPE_NAME_PARAMETER_KEY, "VARCHAR") .parameter(TestHelper.TYPE_LENGTH_PARAMETER_KEY, "2") .parameter(TestHelper.TYPE_SCALE_PARAMETER_KEY, "0") .build(), "bb" ), new SchemaAndValueField("ch", Schema.OPTIONAL_STRING_SCHEMA, "cdef"), new SchemaAndValueField("c", Schema.OPTIONAL_STRING_SCHEMA, "abc"), new SchemaAndValueField("t", Schema.OPTIONAL_STRING_SCHEMA, "some text"), new SchemaAndValueField("b", Schema.OPTIONAL_BYTES_SCHEMA, ByteBuffer.wrap(new byte[] {0, 1, 2})), new SchemaAndValueField("bnn", Schema.BYTES_SCHEMA, ByteBuffer.wrap(new byte[] {3, 4, 5})) ); }
@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)); }
@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)); } }
assertThat(values.field("C1").name()).isEqualTo("C1"); assertThat(values.field("C1").index()).isEqualTo(0); assertThat(values.field("C1").schema()).isEqualTo(SchemaBuilder.string().build()); assertThat(values.field("C2").name()).isEqualTo("C2"); assertThat(values.field("C2").index()).isEqualTo(1);
/** * Returns a {@link SchemaBuilder} for an XML field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a {@link ZonedTimestamp}. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(SCHEMA_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a Uuid field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for a JSON field. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @return the schema builder */ public static SchemaBuilder builder() { return SchemaBuilder.string() .name(LOGICAL_NAME) .version(1); }
/** * Returns a {@link SchemaBuilder} for an enumeration. You can use the resulting SchemaBuilder * to set additional schema settings such as required/optional, default value, and documentation. * * @param allowedValues the comma separated list of allowed values; may not be null * @return the schema builder */ public static SchemaBuilder builder(String allowedValues) { return SchemaBuilder.string() .name(LOGICAL_NAME) .parameter(VALUES_FIELD, allowedValues) .version(1); }