You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by pa...@apache.org on 2015/02/26 02:25:21 UTC
drill git commit: DRILL-1378: Ctrl-C to cancel a query that has not
returned with the first result set.
Repository: drill
Updated Branches:
refs/heads/master f7ef5ec78 -> 471013836
DRILL-1378: Ctrl-C to cancel a query that has not returned with the first result set.
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/47101383
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/47101383
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/47101383
Branch: refs/heads/master
Commit: 471013836419185d51a2d57bf5b89c4087053255
Parents: f7ef5ec
Author: Parth Chandra <pc...@maprtech.com>
Authored: Wed Feb 25 09:56:12 2015 -0800
Committer: Parth Chandra <pc...@maprtech.com>
Committed: Wed Feb 25 17:24:54 2015 -0800
----------------------------------------------------------------------
.../java/org/apache/drill/jdbc/DrillResultSet.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/47101383/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
index 88a6c6d..77b2c37 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
@@ -76,6 +76,20 @@ public class DrillResultSet extends AvaticaResultSet {
listener.close();
}
+ @Override
+ public boolean next() throws SQLException {
+ // Next may be called after close has been called (for example after a user cancel) which in turn
+ // sets the cursor to null. So we must check before we call next.
+ // TODO: handle next() after close is called in the Avatica code.
+ if(super.cursor!=null){
+ return super.next();
+ }else{
+ return false;
+ }
+
+ }
+
+
@Override protected DrillResultSet execute() throws SQLException{
// Call driver's callback. It is permitted to throw a RuntimeException.
DrillConnectionImpl connection = (DrillConnectionImpl) statement.getConnection();
@@ -200,6 +214,9 @@ public class DrillResultSet extends AvaticaResultSet {
qrb.getData().release();
}
}
+ // close may be called before the first result is received and the main thread is blocked waiting
+ // for the result. In that case we want to unblock the main thread.
+ latch.countDown();
completed = true;
}