private StructuredDataSource getResultDatasource(final Select select, final Table into) { SchemaBuilder dataSource = SchemaBuilder.struct().name(into.toString()); for (final SelectItem selectItem : select.getSelectItems()) { if (selectItem instanceof SingleColumn) { final SingleColumn singleColumn = (SingleColumn) selectItem; final String fieldName = singleColumn.getAlias().get(); dataSource = dataSource.field(fieldName, Schema.OPTIONAL_BOOLEAN_SCHEMA); } } final KsqlTopic ksqlTopic = new KsqlTopic(into.getName().toString(), into.getName().toString(), null, true); final StructuredDataSource resultStream = new KsqlStream<>( "AstBuilder-Into", into.getName().toString(), dataSource.schema(), dataSource.fields().get(0), null, ksqlTopic, Serdes.String() ); return resultStream; }
new SchemaAndValueField("varchar_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), Arrays.asList("vcone", "vctwo", "vcthree")), new SchemaAndValueField("date_array", SchemaBuilder.array(Date.builder().optional().schema()).optional().build(), Arrays.asList( (int)LocalDate.of(2016, Month.NOVEMBER, 4).toEpochDay(),
private void assertBigintUnsignedPrecise(Struct value) { Struct after = value.getStruct(Envelope.FieldName.AFTER); Integer i = after.getInt32("id"); assertThat(i).isNotNull(); //Validate the schema first, we are expecting org.apache.kafka.connect.data.Decimal:Byte since we are dealing with unsignd-bigint //So Unsigned BIGINY would be an int32 type assertThat(after.schema().field("c1").schema()).isEqualTo(Decimal.builder(0).schema()); assertThat(after.schema().field("c2").schema()).isEqualTo(Decimal.builder(0).schema()); //Validate the schema first, we are expecting int-64 since we are dealing with signed-bigint. //So Signed BIGINT would be an INT64 type assertThat(after.schema().field("c3").schema()).isEqualTo(Schema.INT64_SCHEMA); //Validate candidates values switch (i) { case 1: assertThat(after.get("c1")).isEqualTo(new BigDecimal("18446744073709551615")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("18446744073709551615")); assertThat(after.getInt64("c3")).isEqualTo(9223372036854775807L); break; case 2: assertThat(after.get("c1")).isEqualTo(new BigDecimal("14446744073709551615")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("14446744073709551615")); assertThat(after.getInt64("c3")).isEqualTo(-1223372036854775807L); break; case 3: assertThat(after.get("c1")).isEqualTo(new BigDecimal("0")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("0")); assertThat(after.getInt64("c3")).isEqualTo(-9223372036854775808L); } }
Assertions.assertThat(results).hasSize(1); final Struct valueA = (Struct) results.get(0).value(); Assertions.assertThat(valueA.schema().field("after").schema().field("cola").schema()).isEqualTo(Decimal.builder(4).parameter("connect.decimal.precision", "8").optional().schema()); Assertions.assertThat(valueA.schema().field("after").schema().field("colb").schema()).isEqualTo(Decimal.builder(0).parameter("connect.decimal.precision", "18").optional().schema()); Assertions.assertThat(valueA.schema().field("after").schema().field("colc").schema()).isEqualTo(Decimal.builder(1).parameter("connect.decimal.precision", "8").optional().schema()); Assertions.assertThat(valueA.schema().field("after").schema().field("cold").schema()).isEqualTo(Decimal.builder(0).parameter("connect.decimal.precision", "18").optional().schema()); Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo(BigDecimal.valueOf(333.3333)); Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo(BigDecimal.valueOf(3333));
protected List<SchemaAndValueField> schemasAndValuesForArrayTypesWithNullValues() { return Arrays.asList( new SchemaAndValueField("int_array", SchemaBuilder.array(Schema.OPTIONAL_INT32_SCHEMA).optional().build(), null), new SchemaAndValueField("bigint_array", SchemaBuilder.array(Schema.OPTIONAL_INT64_SCHEMA).optional().build(), null), new SchemaAndValueField("text_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("char_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("varchar_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("date_array", SchemaBuilder.array(Date.builder().optional().schema()).optional().build(), null), new SchemaAndValueField("numeric_array", SchemaBuilder.array(Decimal.builder(2).parameter(TestHelper.PRECISION_PARAMETER_KEY, "10").optional().build()).optional().build(), null), new SchemaAndValueField("citext_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null) ); }
public Schema schema() { SchemaBuilder builder = SchemaBuilder.type(knownType); if (optional) { builder.optional(); } return builder.schema(); } }
new SchemaAndValueField("varchar_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), Arrays.asList("vcone", "vctwo", "vcthree")), new SchemaAndValueField("date_array", SchemaBuilder.array(Date.builder().optional().schema()).optional().build(), Arrays.asList( (int)LocalDate.of(2016, Month.NOVEMBER, 4).toEpochDay(),
private void assertBigintUnsignedPrecise(Struct value) { Struct after = value.getStruct(Envelope.FieldName.AFTER); Integer i = after.getInt32("id"); assertThat(i).isNotNull(); //Validate the schema first, we are expecting org.apache.kafka.connect.data.Decimal:Byte since we are dealing with unsignd-bigint //So Unsigned BIGINY would be an int32 type assertThat(after.schema().field("c1").schema()).isEqualTo(Decimal.builder(0).schema()); assertThat(after.schema().field("c2").schema()).isEqualTo(Decimal.builder(0).schema()); //Validate the schema first, we are expecting int-64 since we are dealing with signed-bigint. //So Signed BIGINT would be an INT64 type assertThat(after.schema().field("c3").schema()).isEqualTo(Schema.INT64_SCHEMA); //Validate candidates values switch (i) { case 1: assertThat(after.get("c1")).isEqualTo(new BigDecimal("18446744073709551615")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("18446744073709551615")); assertThat(after.getInt64("c3")).isEqualTo(9223372036854775807L); break; case 2: assertThat(after.get("c1")).isEqualTo(new BigDecimal("14446744073709551615")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("14446744073709551615")); assertThat(after.getInt64("c3")).isEqualTo(-1223372036854775807L); break; case 3: assertThat(after.get("c1")).isEqualTo(new BigDecimal("0")); assertThat(after.get("c2")).isEqualTo(new BigDecimal("0")); assertThat(after.getInt64("c3")).isEqualTo(-9223372036854775808L); } }
protected List<SchemaAndValueField> schemasAndValuesForArrayTypesWithNullValues() { return Arrays.asList( new SchemaAndValueField("int_array", SchemaBuilder.array(Schema.OPTIONAL_INT32_SCHEMA).optional().build(), null), new SchemaAndValueField("bigint_array", SchemaBuilder.array(Schema.OPTIONAL_INT64_SCHEMA).optional().build(), null), new SchemaAndValueField("text_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("char_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("varchar_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null), new SchemaAndValueField("date_array", SchemaBuilder.array(Date.builder().optional().schema()).optional().build(), null), new SchemaAndValueField("numeric_array", SchemaBuilder.array(Decimal.builder(2).parameter(TestHelper.PRECISION_PARAMETER_KEY, "10").optional().build()).optional().build(), null), new SchemaAndValueField("citext_array", SchemaBuilder.array(Schema.OPTIONAL_STRING_SCHEMA).optional().build(), null) ); }