Daniel Barclay (Drill) created DRILL-2769:
---------------------------------------------

             Summary: many(?) JDBC methods throw non-SQLException exceptions 
(e.g., UnsupportedOperationException, RuntimeException)
                 Key: DRILL-2769
                 URL: https://issues.apache.org/jira/browse/DRILL-2769
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Daniel Barclay (Drill)


It seems that many JDBC methods throw exceptions of type 
{{UnsupportedOperationException}} or {{RuntimeException}} to indicate that they 
are not applicable (e.g., Drill's implementation of {{Connection.commit()}}, 
since Drill isn't transactional) or not implemented yet (and some throw other 
{{RuntimeException}}s to indicate other problems ).

However, these methods should be throwing exceptions of type {{SQLException}} 
(or subclasses thereof). 

The JDBC pattern is to throw {{SQLException}}s, not {{RuntimeException}}s, so 
JDBC client code is not likely to handle {{RuntimeException}}s well.

(For example, it is suspected that {{Connection.commit()}}'s throwing of 
{{UnsupportedOperationException}} is causing a hang in the JDBC client 
Spotfire.)


JDBC does provide a {{SQLFeatureNotSupportedException}}.  However, it is 
specified to be for when "the JDBC driver does does not support an optional 
JDBC feature."  It's not clear how risky it would be to use this exception when 
Drill does not support a _non_-optional JDBC feature. 


(Possibly, some methods that can't really do what JDBC specifies might need to 
just return silently without throwing any exception.)





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to