drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-3640) Drill JDBC driver support Statement.setQueryTimeout(int)
Date Tue, 07 Nov 2017 18:52:00 GMT

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

ASF GitHub Bot commented on DRILL-3640:

Github user kkhatua commented on a diff in the pull request:

    --- Diff: exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java ---
    @@ -376,6 +415,19 @@ synchronized void cleanup() {
    +  //Set the cursor's timeout in seconds
    --- End diff --
    We do get the timeout value from the Statement (Ref: https://github.com/kkhatua/drill/blob/a008707c7b97ea95700ab0f2eb5182d779a9bcb3/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java#L372
    However, the Statement is referred to by the ResultSet object as well, to get a handle
of the timer object. During testing, I found that there is a possibility that the DrillCursor
completes fetching all batches, but a slow client would call ResultSet.next() slowly and time
out. The ResultSet object has no reference to the timer, except via the Statement object.
    There is a bigger problem that this block of code fixes. During iteration, we don't want
to be able to change the timeout period. Hence, the DrillCursor (invoked by the _first_ `ResultSet.next()`
call) will be initialized and set the timer to start ticking.Thereafter, any attempt to change
the timeout can be ignored.

> Drill JDBC driver support Statement.setQueryTimeout(int)
> --------------------------------------------------------
>                 Key: DRILL-3640
>                 URL: https://issues.apache.org/jira/browse/DRILL-3640
>             Project: Apache Drill
>          Issue Type: New Feature
>          Components: Client - JDBC
>    Affects Versions: 1.2.0
>            Reporter: Chun Chang
>            Assignee: Kunal Khatua
>             Fix For: 1.12.0
> It would be nice if we have this implemented. Run away queries can be automatically canceled
by setting the timeout. 
> java.sql.SQLFeatureNotSupportedException: Setting network timeout is not supported.
> 	at org.apache.drill.jdbc.impl.DrillStatementImpl.setQueryTimeout(DrillStatementImpl.java:152)

This message was sent by Atlassian JIRA

View raw message