VibAruna commented on a change in pull request #5554:
URL: https://github.com/apache/nifi/pull/5554#discussion_r772518916
##########
File path:
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractExecuteSQL.java
##########
@@ -236,195 +246,197 @@ public void onTrigger(final ProcessContext context,
final ProcessSession session
}
int resultCount = 0;
- try (final Connection con = dbcpService.getConnection(fileToProcess ==
null ? Collections.emptyMap() : fileToProcess.getAttributes());
- final PreparedStatement st = con.prepareStatement(selectQuery)) {
- if (fetchSize != null && fetchSize > 0) {
- try {
- st.setFetchSize(fetchSize);
- } catch (SQLException se) {
- // Not all drivers support this, just log the error (at
debug level) and move on
- logger.debug("Cannot set fetch size to {} due to {}", new
Object[]{fetchSize, se.getLocalizedMessage()}, se);
+ try (final Connection con = dbcpService.getConnection(fileToProcess ==
null ? Collections.emptyMap() : fileToProcess.getAttributes())) {
+ con.setAutoCommit(context.getProperty(AUTO_COMMIT).asBoolean());
Review comment:
Hi @mattyb149,
The change I have done is only affects only to '**ExecuteSqlRecord**' and
'**ExecuteSql**' processors which are used to execute '**Select sqls**'. This
new feature to set or unset auto-commit is required to avoid these processors
from consuming large heap space when they query large data sets (There may be
some other drivers with this same behavior). Since no data writing happens from
these processors, I believe we don't need to call commit() or rollback().
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]