Skip to content

Commit cdb528b

Browse files
[FLINK-38046][Connector/JDBC] Solve the issue of missing one piece of data (#198)
Co-authored-by: wangxiaojing <u9jing@gmail.com>
1 parent af99465 commit cdb528b

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,12 @@ public Serializable[][] getParameterValues() {
112112

113113
Serializable[][] parameters = new Serializable[batchNum][2];
114114
long start = minVal;
115-
for (int i = 0; i < batchNum; i++) {
115+
for (int i = 0; i < batchNum - 1; i++) {
116116
long end = start + batchSize - 1 - (i >= bigBatchNum ? 1 : 0);
117117
parameters[i] = new Long[] {start, end};
118118
start = end + 1;
119119
}
120+
parameters[batchNum - 1] = new Long[] {start, maxVal};
120121
return parameters;
121122
}
122123

flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,21 @@ void testBatchNumTooLarge() {
115115
check(expected, actual);
116116
}
117117

118+
@Test
119+
void testBatchMaxMinTooLarge() {
120+
JdbcNumericBetweenParametersProvider provider =
121+
new JdbcNumericBetweenParametersProvider(2260418954055131340L, 3875220057236942850L)
122+
.ofBatchNum(3);
123+
Serializable[][] actual = provider.getParameterValues();
124+
125+
long[][] expected = {
126+
new long[] {2260418954055131340L, 2798685988449068491L},
127+
new long[] {2798685988449068492L, 3336953022843005643L},
128+
new long[] {3336953022843005644L, 3875220057236942850L}
129+
};
130+
check(expected, actual);
131+
}
132+
118133
private void check(long[][] expected, Serializable[][] actual) {
119134
assertThat(actual).hasDimensions(expected.length, expected[0].length);
120135
for (int i = 0; i < expected.length; i++) {

0 commit comments

Comments
 (0)