diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/ExecuteBatchImpl.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/ExecuteBatchImpl.java index 5962676fb993f41fd9d940c06c9ede61f1e039e5..b62b30a47e294d47d94d3b5bc1a8e1ae51873988 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/ExecuteBatchImpl.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/ExecuteBatchImpl.java @@ -213,6 +213,15 @@ public abstract class ExecuteBatchImpl implements DBSDataManipulator.ExecuteBatc statistics.addExecuteTime(System.currentTimeMillis() - startTime); if (!ArrayUtils.isEmpty(updatedRows)) { for (int rows : updatedRows) { + if (rows < 0) { + // In some cases (e.g. JDBC API) negative means "unknown". + // "Statement.SUCCESS_NO_INFO — the command was processed successfully, but the number of rows affected is unknown" + // But we are quite sure that it has to be 1 (because each statement inserts/deletes/updates a single row) + // The only exception is bulk delete (without WHERE condition) + if (!ArrayUtils.isEmpty(attributes)) { + rows = 1; + } + } statistics.addRowsUpdated(rows); } }