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(

Reply via email to