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.