Gregory Hart created CALCITE-5443: ------------------------------------- Summary: Reset update count when checking for more results Key: CALCITE-5443 URL: https://issues.apache.org/jira/browse/CALCITE-5443 Project: Calcite Issue Type: Bug Components: avatica Reporter: Gregory Hart Assignee: Gregory Hart
The JavaDoc for {{java.sql.Statement#getMoreResults(int)}} says there are no more results when the following is true: {code:java} // stmt is a Statement object ((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1)) {code} In {{{}AvaticaStatement{}}}, {{getMoreResults(int)}} always returns {{false}} but does not reset the {{{}updateCount{}}}. This could result in an infinite loop in the JDBC client because the return value is indicating there are additional results when there are actually none. *Steps to reproduce:* # Execute an INSERT query by calling Statement#execute(String). Verify that the return value is false indicating it is an update count. # Call Statement#getMoreResults(). Verify that the return value is false indicating it is an update count or there are no more results. # Call Statement#getUpdateCount(). *Expected results:* The call to getUpdateCount() returns -1 indicating there are no more results. *Actual results:* The call to getUpdateCount() returns the update count for the INSERT query, which should only have one result. -- This message was sent by Atlassian Jira (v8.20.10#820010)