[ https://issues.apache.org/jira/browse/JENA-1939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
František Kučera updated JENA-1939: ----------------------------------- Description: The method {{JenaStatement.getUpdateCount()}} returns 0. But [java.sql.Statement|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getUpdateCount--] documentation says: bq. Returns: the current result as an update count; -1 if the current result is a ResultSet object or there are no more results Returning correct value is important because a single statement may have multiple result sets and cause mutiple updates (not only multiple updated records, but multiple sets of updated records). Applications (e.g. [SQL-DK|http://sql-dk.globalcode.info/]) iterate over these multiple results and need to know when finish. The [getMoreResults()|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getMoreResults--] documentation says: bq. There are no more results when the following is true: {{((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))}} But if 0 is returned, the application enters infinite loop. I think that [change in my branch|https://git-zaloha.frantovo.cz/gitbox.apache.org/repos/asf/jena.git/log/?h=JENA-1939_updateCount] could resolve this issue (also attached as a patch). P.S. Is there a way to return actual count of updated records? ({{UpdateProcessor.execute()}} returns void). was: The method {{JenaStatement.getUpdateCount()}} returns 0. But [java.sql.Statement|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getUpdateCount--] documentation says: bq. Returns: the current result as an update count; -1 if the current result is a ResultSet object or there are no more results Returning correct value is important because a single statement may have multiple result sets and cause mutiple updates (not only multiple updated records, but multiple sets of updated records). Applications (e.g. [SQL-DK|http://sql-dk.globalcode.info/]) iterate over these multiple results and need to know when finish. The [getMoreResults()|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getMoreResults--] documentation says: bq. There are no more results when the following is true: {{((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))}} But if 0 is returned, the application enters infinite loop. I think that change in my branch [JENA-1939_updateCount|https://git-zaloha.frantovo.cz/gitbox.apache.org/repos/asf/jena.git/log/?h=JENA-1939_updateCount] could resolve this issue (also attached as a patch). P.S. Is there a way to return actual count of updated records? ({{UpdateProcessor.execute()}} returns void). > getUpdateCount() in the JDBC driver returns incorrect value - it looks like > there are always more results (infinite loop) > ------------------------------------------------------------------------------------------------------------------------- > > Key: JENA-1939 > URL: https://issues.apache.org/jira/browse/JENA-1939 > Project: Apache Jena > Issue Type: Bug > Components: JDBC > Reporter: František Kučera > Priority: Major > Attachments: jena-jdbc-updateCount-patch-01.diff > > > The method {{JenaStatement.getUpdateCount()}} returns 0. But > [java.sql.Statement|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getUpdateCount--] > documentation says: > bq. Returns: the current result as an update count; -1 if the current result > is a ResultSet object or there are no more results > Returning correct value is important because a single statement may have > multiple result sets and cause mutiple updates (not only multiple updated > records, but multiple sets of updated records). > Applications (e.g. [SQL-DK|http://sql-dk.globalcode.info/]) iterate over > these multiple results and need to know when finish. The > [getMoreResults()|https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#getMoreResults--] > documentation says: > bq. There are no more results when the following is true: > {{((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))}} > But if 0 is returned, the application enters infinite loop. > I think that [change in my > branch|https://git-zaloha.frantovo.cz/gitbox.apache.org/repos/asf/jena.git/log/?h=JENA-1939_updateCount] > could resolve this issue (also attached as a patch). > P.S. Is there a way to return actual count of updated records? > ({{UpdateProcessor.execute()}} returns void). -- This message was sent by Atlassian Jira (v8.3.4#803005)