in dbeam-core/src/main/java/com/spotify/dbeam/avro/JdbcAvroIO.java [173:198]
private ResultSet executeQuery(final String query) throws Exception {
checkArgument(connection != null, "JDBC connection was not properly created");
final PreparedStatement statement =
connection.prepareStatement(
query, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
statement.setFetchSize(jdbcAvroArgs.fetchSize());
if (jdbcAvroArgs.statementPreparator() != null) {
jdbcAvroArgs.statementPreparator().setParameters(statement);
}
if (jdbcAvroArgs.preCommand() != null && jdbcAvroArgs.preCommand().size() > 0) {
final Statement stmt = connection.createStatement();
for (String command : jdbcAvroArgs.preCommand()) {
stmt.execute(command);
}
}
final long startTime = System.nanoTime();
LOGGER.info(
"jdbcavroio : Executing query with fetchSize={} (this might take a few minutes) ...",
statement.getFetchSize());
final ResultSet resultSet = statement.executeQuery();
this.metering.exposeExecuteQueryMs((System.nanoTime() - startTime) / 1000000L);
checkArgument(resultSet != null, "JDBC resultSet was not properly created");
return resultSet;
}