[
https://issues.apache.org/jira/browse/HIVE-7680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14104490#comment-14104490
]
Julian Hyde commented on HIVE-7680:
-----------------------------------
A stackoverflow thread [What does it mean when Statement.executeUpdate returns
-1?|http://stackoverflow.com/questions/12400985/what-does-it-mean-when-statement-executeupdate-returns-1]
is basically supportive of the idea of returning -1. In particular this
comment:
{quote}
UPDATE: While reading [Mark Rotteveel's
answer|http://stackoverflow.com/a/12412073/521799], I tend to agree with him,
assuming that -1 is the JDBC-compliant value for "unknown update counts". Even
if this isn't documented on the relevant method's Javadoc, it's documented in
the [JDBC specs, chapter 13.1.2.3 Returning Unknown or Multiple
Results|http://download.oracle.com/otn-pub/jcp/jdbc-4_1-mrel-spec/jdbc4.1-fr-spec.pdf].
In this very case, it could be said that an IF .. INSERT .. statement will
have an "unknown update count", as this statement isn't SQL-standard compliant
anyway.
{quote}
> 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)