This is an automated email from the ASF dual-hosted git repository. pnowojski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit be8a1264522888509fb622a9e61d82f3d47f54b6 Author: Hanyu (Peter) Zheng <[email protected]> AuthorDate: Wed Oct 28 09:12:26 2026 -0500 [FLINK-41217][connectors] Generate no data points for a count of 0 in DataGeneratorSource A count of 0 or less used to generate one data point, for the number 0. --- .../datagen/source/DataGeneratorSourceTest.java | 18 ++++++++++++++++++ .../connector/datagen/source/DataGeneratorSource.java | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/flink-connectors/flink-connector-datagen-test/src/test/java/org/apache/flink/connector/datagen/source/DataGeneratorSourceTest.java b/flink-connectors/flink-connector-datagen-test/src/test/java/org/apache/flink/connector/datagen/source/DataGeneratorSourceTest.java index ebda0c941cc..a3b0f27ae28 100644 --- a/flink-connectors/flink-connector-datagen-test/src/test/java/org/apache/flink/connector/datagen/source/DataGeneratorSourceTest.java +++ b/flink-connectors/flink-connector-datagen-test/src/test/java/org/apache/flink/connector/datagen/source/DataGeneratorSourceTest.java @@ -83,6 +83,24 @@ class DataGeneratorSourceTest { assertThat(context.getSplitsAssignmentSequence()).hasSize(enumeratorState.size()); } + @Test + @DisplayName("Generates no data points for a count of 0.") + void testZeroCount() throws Exception { + final DataGeneratorSource<Long> dataGeneratorSource = + new DataGeneratorSource<>(index -> index, 0, Types.LONG); + final MockSplitEnumeratorContext<NumberSequenceSource.NumberSequenceSplit> context = + new MockSplitEnumeratorContext<>(1); + + final SplitEnumerator< + NumberSequenceSource.NumberSequenceSplit, + Collection<NumberSequenceSource.NumberSequenceSplit>> + enumerator = dataGeneratorSource.createEnumerator(context); + enumerator.start(); + enumerator.handleSplitRequest(0, "hostname"); + + assertThat(context.getSplitsAssignmentSequence()).isEmpty(); + } + @Test @DisplayName("Uses the underlying NumberSequenceSource correctly for checkpointing.") void testReaderCheckpoints() throws Exception { diff --git a/flink-connectors/flink-connector-datagen/src/main/java/org/apache/flink/connector/datagen/source/DataGeneratorSource.java b/flink-connectors/flink-connector-datagen/src/main/java/org/apache/flink/connector/datagen/source/DataGeneratorSource.java index 1145ba858f6..06efc2a1e92 100644 --- a/flink-connectors/flink-connector-datagen/src/main/java/org/apache/flink/connector/datagen/source/DataGeneratorSource.java +++ b/flink-connectors/flink-connector-datagen/src/main/java/org/apache/flink/connector/datagen/source/DataGeneratorSource.java @@ -173,8 +173,8 @@ public class DataGeneratorSource<OUT> sourceReaderFactory, generatorFunction, typeInfo, - // a noop source (0 elements) is used in Table tests - new NumberSequenceSource(0, count > 0 ? count - 1 : 0)); + // A count <= 0 generates no data points. + new NumberSequenceSource(0, count > 0 ? count - 1 : -1)); } DataGeneratorSource(
