Repository: incubator-drill Updated Branches: refs/heads/master 33c28f624 -> 3ea8eb510
DRILL-1073: Include intermediate fragments when initializing remainingFragmentCount Ignore QueryState.COMPLETED messages in jdbc. This was causing the Query Complete message to get sent before the query had actually completed. Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/8a22910f Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/8a22910f Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/8a22910f Branch: refs/heads/master Commit: 8a22910f2aa1ea933e122357f52e13b68801d2b6 Parents: 33c28f6 Author: Steven Phillips <sphill...@maprtech.com> Authored: Tue Jun 24 19:21:03 2014 -0700 Committer: Jacques Nadeau <jacq...@apache.org> Committed: Wed Jun 25 14:33:55 2014 -0700 ---------------------------------------------------------------------- .../java/org/apache/drill/exec/work/foreman/QueryManager.java | 2 +- .../src/main/java/org/apache/drill/jdbc/DrillResultSet.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/8a22910f/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java index faa5578..f0c1ede 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java @@ -86,7 +86,7 @@ public class QueryManager implements FragmentStatusListener{ UserClientConnection rootClient, List<PlanFragment> leafFragments, List<PlanFragment> intermediateFragments) throws ExecutionSetupException{ logger.debug("Setting up fragment runs."); - remainingFragmentCount.set(leafFragments.size()+1); + remainingFragmentCount.set(intermediateFragments.size() + leafFragments.size() + 1); assert queryId == rootFragment.getHandle().getQueryId(); workBus = bee.getContext().getWorkBus(); http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/8a22910f/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 594e3ff..61fca61 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 @@ -31,6 +31,7 @@ import net.hydromatic.avatica.AvaticaStatement; import org.apache.drill.exec.client.DrillClient; import org.apache.drill.exec.proto.UserBitShared.QueryId; +import org.apache.drill.exec.proto.UserBitShared.QueryResult.QueryState; import org.apache.drill.exec.proto.UserBitShared.QueryType; import org.apache.drill.exec.record.RecordBatchLoader; import org.apache.drill.exec.rpc.RpcException; @@ -129,6 +130,11 @@ public class DrillResultSet extends AvaticaResultSet { public void resultArrived(QueryResultBatch result, ConnectionThrottle throttle) { logger.debug("Result arrived {}", result); + if (result.getHeader().hasQueryState() && result.getHeader().getQueryState() == QueryState.COMPLETED && result.getHeader().getRowCount() == 0) { + result.release(); + return; + } + // if we're in a closed state, just release the message. if (closed) { result.release();