[
https://issues.apache.org/jira/browse/FLINK-6271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15958918#comment-15958918
]
ASF GitHub Bot commented on FLINK-6271:
---------------------------------------
Github user fpompermaier commented on a diff in the pull request:
https://github.com/apache/flink/pull/3686#discussion_r110159791
--- Diff:
flink-connectors/flink-jdbc/src/test/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormatTest.java
---
@@ -180,6 +180,52 @@ public void
testJDBCInputFormatWithParallelismAndNumericColumnSplitting() throws
jdbcInputFormat.closeInputFormat();
Assert.assertEquals(testData.length, recordCount);
}
+ @Test
+ public void
testJDBCInputFormatWithoutParallelismAndNumericColumnSplitting() throws
IOException, InstantiationException, IllegalAccessException {
+ final Long min = new Long(JDBCTestBase.testData[0][0] + "");
+ final Long max = new
Long(JDBCTestBase.testData[JDBCTestBase.testData.length - 1][0] + "");
+ final long fetchSize = max + 1;//generate a single split
+ ParameterValuesProvider pramProvider = new
NumericBetweenParametersProvider(fetchSize, min, max);
+ jdbcInputFormat = JDBCInputFormat.buildJDBCInputFormat()
+ .setDrivername(DRIVER_CLASS)
+ .setDBUrl(DB_URL)
+
.setQuery(JDBCTestBase.SELECT_ALL_BOOKS_SPLIT_BY_ID)
+ .setRowTypeInfo(rowTypeInfo)
+ .setParametersProvider(pramProvider)
+
.setResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE)
+ .finish();
+
+ jdbcInputFormat.openInputFormat();
+ InputSplit[] splits = jdbcInputFormat.createInputSplits(1);
+ //assert that a single split was generated
+ Assert.assertEquals(1, splits.length);
+ int recordCount = 0;
+ Row row = new Row(5);
+ for (int i = 0; i < splits.length; i++) {
+ jdbcInputFormat.open(splits[i]);
+ while (!jdbcInputFormat.reachedEnd()) {
+ Row next = jdbcInputFormat.nextRecord(row);
+ if (next == null) {
+ break;
+ }
+ if(next.getField(0)!=null) {
Assert.assertEquals("Field 0 should be int", Integer.class,
next.getField(0).getClass());}
+ if(next.getField(1)!=null) {
Assert.assertEquals("Field 1 should be String", String.class,
next.getField(1).getClass());}
+ if(next.getField(2)!=null) {
Assert.assertEquals("Field 2 should be String", String.class,
next.getField(2).getClass());}
+ if(next.getField(3)!=null) {
Assert.assertEquals("Field 3 should be float", Double.class,
next.getField(3).getClass());}
+ if(next.getField(4)!=null) {
Assert.assertEquals("Field 4 should be int", Integer.class,
next.getField(4).getClass());}
+
+ for (int x = 0; x < 5; x++) {
+ if(testData[recordCount][x]!=null) {
--- End diff --
How should I ensure the param validity? Is there any helper class or should
just throw an IllegalArgumentException? Is there any example I can take as
reference param handling?
> NumericBetweenParametersProvider NullPinter
> -------------------------------------------
>
> Key: FLINK-6271
> URL: https://issues.apache.org/jira/browse/FLINK-6271
> Project: Flink
> Issue Type: Bug
> Components: Batch Connectors and Input/Output Formats
> Affects Versions: 1.2.0
> Reporter: Flavio Pompermaier
> Assignee: Flavio Pompermaier
> Labels: jdbc
>
> creating a NumericBetweenParametersProvider using fetchSize=1000, min=0 and
> max= 999 fails with a NP
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)