Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-2769

many(?) JDBC methods throw non-SQLException exceptions (e.g., UnsupportedOperationException, RuntimeException)

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.4.0
    • Component/s: None
    • Labels:


      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.)


        Issue Links



            • Assignee:
              dsbos Daniel Barclay
              dsbos Daniel Barclay


              • Created:

                Issue deployment