Skip to content

Commit c56a35e

Browse files
Claudemshustov
andauthored
Fix query timeout for executeUpdate operations
Set ASYNC_OPERATIONS flag when queryTimeout is non-zero in executeUpdateImpl method, matching the behavior in executeQueryImpl. This ensures timeout functionality works correctly for update operations. Agent-Logs-Url: https://github.com/ClickHouse/clickhouse-java/sessions/07ade9ad-d4a5-4795-b2e7-fd7b132369ad Co-authored-by: mshustov <3198181+mshustov@users.noreply.github.com>
1 parent 0e78363 commit c56a35e

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

jdbc-v2/src/main/java/com/clickhouse/jdbc/StatementImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,9 @@ protected long executeUpdateImpl(String sql, QuerySettings settings) throws SQLE
249249
LOG.trace("SQL Query: {}", lastStatementSql);
250250
int updateCount = 0;
251251
try (QueryResponse response = queryTimeout == 0 ? connection.getClient().query(lastStatementSql, mergedSettings).get()
252-
: connection.getClient().query(lastStatementSql, mergedSettings).get(queryTimeout, TimeUnit.SECONDS)) {
252+
: connection.getClient().query(lastStatementSql, mergedSettings
253+
.setOption(ClientConfigProperties.ASYNC_OPERATIONS.getKey(), true))
254+
.get(queryTimeout, TimeUnit.SECONDS)) {
253255
updateCount = Math.max(0, (int) response.getWrittenRows()); // when statement alters schema no result rows returned.
254256
lastQueryId = response.getQueryId();
255257
} catch (Exception e) {

0 commit comments

Comments
 (0)