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

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

> It is my belief cancel does not close the statement.

Roger.  (From discussion with someone else I see that cancel() shouldn't close 
the Statement: Especially clearly in the case of a PreparedStatement, one would 
want/expect to be able to issue a new execution of the SQL statement even after 
canceling a previous execution.)

> If the statement is executing, I would expect it to throw an exception with a 
> particular SQLCode.

Do you mean that you'd expect the cancel() call to throw some query-canceled 
exception?  

Or do you mean that you'd expect the cancel() call to cause some other 
in-progress or future call (to, say, Statement.execute(...) or 
ResultSet.next(...)) to throw some query-canceled exception?



> Resolve what Statement.cancel() really should do
> ------------------------------------------------
>
>                 Key: DRILL-2837
>                 URL: https://issues.apache.org/jira/browse/DRILL-2837
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - JDBC
>            Reporter: Daniel Barclay (Drill)
>            Assignee: Daniel Barclay (Drill)
>
> It is not clear exactly what JDBC's Statement.cancel() method is supposed to 
> do.
> The Javadoc method description for cancel() says only:
> bq. Cancels this Statement object if both the DBMS and driver support 
> aborting an SQL statement. This method can be used by one thread to cancel a 
> statement that is being executed by another thread.
> In particular, it's not clear what "cancels this Statement" really means.  
> (The JDBC PDF specification doesn't anything about it.)
>  
> It seems reasonable to think that calling cancel() on a Statement cancels any 
> associated query that has not already completed, leaves any associated 
> ResultSet closed, and leaves the statement closed.
> However, JDBC doesn't actually specify any of that, AvaticaStatement.cancel() 
> does not close the Statement, and it's not clear whether SQLLine expects the 
> above interpretation or not.



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

Reply via email to