Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ public class OracleClient
private static final int PRECISION_OF_UNSPECIFIED_NUMBER = 127;

private final boolean synonymsEnabled;
private final int fetchSize;

private static final Map<Type, WriteMapping> WRITE_MAPPINGS = ImmutableMap.<Type, WriteMapping>builder()
.put(BOOLEAN, oracleBooleanWriteMapping())
Expand All @@ -147,6 +148,7 @@ public OracleClient(

requireNonNull(oracleConfig, "oracle config is null");
this.synonymsEnabled = oracleConfig.isSynonymsEnabled();
this.fetchSize = oracleConfig.getFetchSize();
}

private String[] getTableTypes()
Expand Down Expand Up @@ -175,7 +177,7 @@ public PreparedStatement getPreparedStatement(Connection connection, String sql)
throws SQLException
{
PreparedStatement statement = connection.prepareStatement(sql);
statement.setFetchSize(1000);
statement.setFetchSize(fetchSize);
return statement;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public class OracleConfig
{
private boolean synonymsEnabled;
private Integer defaultNumberScale;
private int fetchSize = 1000;
private RoundingMode numberRoundingMode = RoundingMode.UNNECESSARY;

@NotNull
Expand Down Expand Up @@ -67,4 +68,17 @@ public OracleConfig setNumberRoundingMode(RoundingMode numberRoundingMode)
this.numberRoundingMode = numberRoundingMode;
return this;
}

@Min(1)
public int getFetchSize()
{
return fetchSize;
}

@Config("oracle.fetch-size")
public OracleConfig setFetchSize(int fetchSize)
{
this.fetchSize = fetchSize;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public void testDefaults()
assertRecordedDefaults(recordDefaults(OracleConfig.class)
.setSynonymsEnabled(false)
.setDefaultNumberScale(null)
.setNumberRoundingMode(RoundingMode.UNNECESSARY));
.setNumberRoundingMode(RoundingMode.UNNECESSARY)
.setFetchSize(1000));
}

@Test
Expand All @@ -45,11 +46,13 @@ public void testExplicitPropertyMappings()
.put("oracle.synonyms.enabled", "true")
.put("oracle.number.default-scale", "2")
.put("oracle.number.rounding-mode", "CEILING")
.put("oracle.fetch-size", "5000")
.build();

OracleConfig expected = new OracleConfig()
.setSynonymsEnabled(true)
.setDefaultNumberScale(2)
.setFetchSize(5000)
.setNumberRoundingMode(RoundingMode.CEILING);

assertFullMapping(properties, expected);
Expand All @@ -71,5 +74,12 @@ public void testValidation()
"defaultNumberScale",
"must be less than or equal to 38",
Max.class);

assertFailsValidation(
new OracleConfig()
.setFetchSize(0),
"fetchSize",
"must be greater than or equal to 1",
Min.class);
}
}