diff --git a/core/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java b/core/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java index f740d85ff..bb067a6f7 100644 --- a/core/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java +++ b/core/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java @@ -614,18 +614,19 @@ private void isUpdateCapable(final AvaticaStatement statement) return; } if (signature.statementType.canUpdate() && statement.updateCount == -1) { - statement.openResultSet.next(); - Object obj = statement.openResultSet.getObject(ROWCOUNT_COLUMN_NAME); - if (obj instanceof Number) { - statement.updateCount = ((Number) obj).intValue(); - } else if (obj instanceof List) { - @SuppressWarnings("unchecked") - final List numbers = (List) obj; - statement.updateCount = numbers.get(0).intValue(); - } else { - throw HELPER.createException("Not a valid return result."); + if (statement.openResultSet.next()) { + Object obj = statement.openResultSet.getObject(ROWCOUNT_COLUMN_NAME); + if (obj instanceof Number) { + statement.updateCount = ((Number) obj).intValue(); + } else if (obj instanceof List) { + @SuppressWarnings("unchecked") + final List numbers = (List) obj; + statement.updateCount = numbers.get(0).intValue(); + } else { + throw HELPER.createException("Not a valid return result."); + } + statement.openResultSet = null; } - statement.openResultSet = null; } }