[ 
https://issues.apache.org/jira/browse/DRILL-2837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Barclay (Drill) updated DRILL-2837:
------------------------------------------
    Description: 
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.


  was:
It is not clear exactly what JDBC's Statement.cancel() method is supposed to do.

The Javadoc method description for cancel() says only:

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




The JDBC PDF specification 


It seems reasonable to think that calling calling() on a Statement causes any 
associated query that has not already completed to be canceled, causes any 
associated ResultSet that is not already closed to be closed, and causes the 
statement to be closed.

In particular, it doesn't say whether the Statement object is closed or that 
any ResultSet is closed (and doesn't actually say that the query is canceled).





However, 


> Resolve 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