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)