use of io.confluent.ksql.execution.expression.tree.UnqualifiedColumnReferenceExp in project ksql by confluentinc.
the class PartitionByParamsFactoryTest method shouldPropagateNullValueWhenPartitioningByKey.
@Test
public void shouldPropagateNullValueWhenPartitioningByKey() {
// Given:
final Mapper<GenericKey> mapper = partitionBy(ImmutableList.of(new UnqualifiedColumnReferenceExp(COL0))).getMapper();
// When:
final KeyValue<GenericKey, GenericRow> result = mapper.apply(key, null);
// Then:
assertThat(result.key, is(genericKey((OLD_KEY))));
assertThat(result.value, is(nullValue()));
}
use of io.confluent.ksql.execution.expression.tree.UnqualifiedColumnReferenceExp in project ksql by confluentinc.
the class PartitionByParamsFactoryTest method shouldNotChangeValueIfPartitioningByKeyColumnReference.
@Test
public void shouldNotChangeValueIfPartitioningByKeyColumnReference() {
// Given:
final Mapper<GenericKey> mapper = partitionBy(ImmutableList.of(new UnqualifiedColumnReferenceExp(COL0))).getMapper();
final ImmutableList<Object> originals = ImmutableList.copyOf(value.values());
// When:
final KeyValue<GenericKey, GenericRow> result = mapper.apply(key, value);
// Then:
assertThat(result.value, is(GenericRow.fromList(originals)));
}
use of io.confluent.ksql.execution.expression.tree.UnqualifiedColumnReferenceExp in project ksql by confluentinc.
the class PartitionByParamsFactoryTest method shouldBuildResultSchemaWhenPartitioningByStructField.
@Test
public void shouldBuildResultSchemaWhenPartitioningByStructField() {
// Given:
final List<Expression> partitionBy = ImmutableList.of(new DereferenceExpression(Optional.empty(), new UnqualifiedColumnReferenceExp(COL3), "someField"));
// When:
final LogicalSchema resultSchema = PartitionByParamsFactory.buildSchema(SCHEMA, partitionBy, functionRegistry);
// Then:
assertThat(resultSchema, is(LogicalSchema.builder().keyColumn(ColumnName.of("someField"), SqlTypes.BIGINT).valueColumn(COL1, SqlTypes.INTEGER).valueColumn(COL2, SqlTypes.INTEGER).valueColumn(COL3, COL3_TYPE).valueColumn(SystemColumns.ROWTIME_NAME, SqlTypes.BIGINT).valueColumn(COL0, SqlTypes.STRING).valueColumn(ColumnName.of("someField"), SqlTypes.BIGINT).build()));
}
use of io.confluent.ksql.execution.expression.tree.UnqualifiedColumnReferenceExp in project ksql by confluentinc.
the class PartitionByParamsFactoryTest method shouldPartitionByNullAnyRowsWhereFailedToExtractKey.
@Test
public void shouldPartitionByNullAnyRowsWhereFailedToExtractKey() {
// Given:
final Mapper<GenericKey> mapper = partitionBy(ImmutableList.of(FAILING_UDF, new UnqualifiedColumnReferenceExp(COL1))).getMapper();
// When:
final KeyValue<GenericKey, GenericRow> result = mapper.apply(key, value);
// Then:
assertThat(result.key, is(genericKey(null, COL1_VALUE)));
}
use of io.confluent.ksql.execution.expression.tree.UnqualifiedColumnReferenceExp in project ksql by confluentinc.
the class PartitionByParamsFactoryTest method shouldAppendNewKeyColumnToValueIfNotPartitioningByColumnReference.
@Test
public void shouldAppendNewKeyColumnToValueIfNotPartitioningByColumnReference() {
// Given:
final Mapper<GenericKey> mapper = partitionBy(ImmutableList.of(new FunctionCall(CONSTANT_UDF_NAME, ImmutableList.of(new UnqualifiedColumnReferenceExp(COL1))))).getMapper();
final ImmutableList<Object> originals = ImmutableList.copyOf(value.values());
// When:
final KeyValue<GenericKey, GenericRow> result = mapper.apply(key, value);
// Then:
assertThat(result.value, is(GenericRow.fromList(originals).append(ConstantUdf.VALUE)));
}
Aggregations