use of org.apache.flink.table.runtime.generated.GeneratedWatermarkGeneratorSupplier in project flink by apache.
the class WatermarkPushDownSpec method apply.
@Override
public void apply(DynamicTableSource tableSource, SourceAbilityContext context) {
if (tableSource instanceof SupportsWatermarkPushDown) {
GeneratedWatermarkGenerator generatedWatermarkGenerator = WatermarkGeneratorCodeGenerator.generateWatermarkGenerator(context.getTableConfig(), context.getSourceRowType(), watermarkExpr, Option.apply("context"));
Configuration configuration = context.getTableConfig().getConfiguration();
WatermarkGeneratorSupplier<RowData> supplier = new GeneratedWatermarkGeneratorSupplier(configuration, generatedWatermarkGenerator);
WatermarkStrategy<RowData> watermarkStrategy = WatermarkStrategy.forGenerator(supplier);
if (idleTimeoutMillis > 0) {
watermarkStrategy = watermarkStrategy.withIdleness(Duration.ofMillis(idleTimeoutMillis));
}
((SupportsWatermarkPushDown) tableSource).applyWatermark(watermarkStrategy);
} else {
throw new TableException(String.format("%s does not support SupportsWatermarkPushDown.", tableSource.getClass().getName()));
}
}
Aggregations