drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Barclay (Drill) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-2769) many(?) JDBC methods throw non-SQLException exceptions (e.g., UnsupportedOperationException, RuntimeException)
Date Fri, 05 Jun 2015 17:25:00 GMT

    [ https://issues.apache.org/jira/browse/DRILL-2769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14574879#comment-14574879
] 

Daniel Barclay (Drill) commented on DRILL-2769:
-----------------------------------------------

Note:  Reportedly, newer versions of the Avatica framework now use a SQLException rather than
UnsupportedOperationException.

> 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)
>            Assignee: Daniel Barclay (Drill)
>             Fix For: 1.2.0
>
>
> 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)

Mime
View raw message