[ https://issues.apache.org/jira/browse/HIVE-7680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14098799#comment-14098799 ]
Thejas M Nair commented on HIVE-7680: ------------------------------------- Thanks for the extensive research and experiments [~apivovarov] ! I spend some more time reading up on this. Returning -1 instead of 0 for getUpdateCount might be a better behavior. It does look like better behavior than what we have. But the really correct behavior (when statement.execute indicates it is not a ResultSet), seems to be returning 0 the first time and returning -1 in the subsequent calls. This is would be easy to implement using another variable in HiveStatement. Other related changes that could potentially be made along with this is - * getMoreResults returning appropriate value instead of throwing exception (Returns value of stmtHandle.isHasResultSet() the first time it is called, then false for subsequent calls) * getResultSet returning the ResultSet only the first time it is called > Do not throw SQLException for HiveStatement getMoreResults and > setEscapeProcessing(false) > ----------------------------------------------------------------------------------------- > > Key: HIVE-7680 > URL: https://issues.apache.org/jira/browse/HIVE-7680 > Project: Hive > Issue Type: Bug > Components: JDBC > Affects Versions: 0.13.1 > Reporter: Alexander Pivovarov > Assignee: Alexander Pivovarov > Priority: Minor > Attachments: HIVE-7680.patch > > > 1. Some JDBC clients call method setEscapeProcessing(false) (e.g. SQL > Workbench) > Looks like setEscapeProcessing(false) should do nothing.So, lets do nothing > instead of throwing SQLException > 2. getMoreResults is needed in case Statements returns several ReseltSet. > Hive does not support Multiple ResultSets. So this method can safely always > return false. > 3. getUpdateCount. Currently this method always returns 0. Hive cannot tell > us how many rows were inserted. According to JDBC spec it should return " -1 > if the current result is a ResultSet object or there are no more results" > if this method returns 0 then in case of execution insert statement JDBC > client shows "0 rows were inserted" which is not true. > if this method returns -1 then JDBC client runs insert statements and shows > that it was executed successfully, no result were returned. > I think the latter behaviour is more correct. > 4. Some methods in Statement class should throw > SQLFeatureNotSupportedException if they are not supported. Current > implementation throws SQLException instead which means database access error. -- This message was sent by Atlassian JIRA (v6.2#6252)