This is an automated email from the ASF dual-hosted git repository.

RocMarshal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git


The following commit(s) were added to refs/heads/main by this push:
     new cdb528ba [FLINK-38046][Connector/JDBC] Solve the issue of missing one 
piece of data (#198)
cdb528ba is described below

commit cdb528ba8b63d78ff67d1c0d5cff49dd3d8f7beb
Author: Chan hae OH <[email protected]>
AuthorDate: Mon Jun 22 20:01:40 2026 +0900

    [FLINK-38046][Connector/JDBC] Solve the issue of missing one piece of data 
(#198)
    
    Co-authored-by: wangxiaojing <[email protected]>
---
 .../jdbc/split/JdbcNumericBetweenParametersProvider.java  |  3 ++-
 .../jdbc/split/NumericBetweenParametersProviderTest.java  | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git 
a/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
 
b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
index c06a9b82..e58e989b 100644
--- 
a/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
+++ 
b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
@@ -112,11 +112,12 @@ public class JdbcNumericBetweenParametersProvider 
implements JdbcParameterValues
 
         Serializable[][] parameters = new Serializable[batchNum][2];
         long start = minVal;
-        for (int i = 0; i < batchNum; i++) {
+        for (int i = 0; i < batchNum - 1; i++) {
             long end = start + batchSize - 1 - (i >= bigBatchNum ? 1 : 0);
             parameters[i] = new Long[] {start, end};
             start = end + 1;
         }
+        parameters[batchNum - 1] = new Long[] {start, maxVal};
         return parameters;
     }
 
diff --git 
a/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
 
b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
index 25e350e1..0d922976 100644
--- 
a/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
+++ 
b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
@@ -115,6 +115,21 @@ class NumericBetweenParametersProviderTest {
         check(expected, actual);
     }
 
+    @Test
+    void testBatchMaxMinTooLarge() {
+        JdbcNumericBetweenParametersProvider provider =
+                new JdbcNumericBetweenParametersProvider(2260418954055131340L, 
3875220057236942850L)
+                        .ofBatchNum(3);
+        Serializable[][] actual = provider.getParameterValues();
+
+        long[][] expected = {
+            new long[] {2260418954055131340L, 2798685988449068491L},
+            new long[] {2798685988449068492L, 3336953022843005643L},
+            new long[] {3336953022843005644L, 3875220057236942850L}
+        };
+        check(expected, actual);
+    }
+
     private void check(long[][] expected, Serializable[][] actual) {
         assertThat(actual).hasDimensions(expected.length, expected[0].length);
         for (int i = 0; i < expected.length; i++) {

Reply via email to