You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Gregory Hart (Jira)" <ji...@apache.org> on 2022/12/19 18:49:00 UTC
[jira] [Created] (CALCITE-5443) Reset update count when checking for more results
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)