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
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.4.0
    • None
    • None

    Description

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

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            dsbos Daniel Barclay
            dsbos Daniel Barclay
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment