From 2930bbae2a9ff60cd3c69029d23a2d6319c817b6 Mon Sep 17 00:00:00 2001 From: serge-rider Date: Thu, 18 Jan 2018 00:53:28 +0300 Subject: [PATCH] Batch processing statistics fix --- .../jkiss/dbeaver/model/impl/data/ExecuteBatchImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 5962676fb9..b62b30a47e 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); } } -- GitLab