You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/08/14 10:30:22 UTC
[12/50] ignite git commit: Added last page to the response.
Added last page to the response.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f7afc0dc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f7afc0dc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f7afc0dc
Branch: refs/heads/ignite-5991-6019
Commit: f7afc0dc7ae3954aaf55d5ef1fa6e28afc974011
Parents: a7ac59f
Author: devozerov <vo...@gridgain.com>
Authored: Thu Aug 10 16:23:08 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Aug 10 16:23:08 2017 +0300
----------------------------------------------------------------------
.../messages/GridQueryNextPageResponse.java | 35 ++++++++++++++++++--
.../query/h2/twostep/GridMapQueryExecutor.java | 6 ++--
2 files changed, 37 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f7afc0dc/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
index fe8b34a..16ec9e3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/messages/GridQueryNextPageResponse.java
@@ -67,6 +67,8 @@ public class GridQueryNextPageResponse implements Message {
/** */
private AffinityTopologyVersion retry;
+ private boolean last;
+
/**
* For {@link Externalizable}.
*/
@@ -83,9 +85,10 @@ public class GridQueryNextPageResponse implements Message {
* @param cols Number of columns in row.
* @param vals Values for rows in this page added sequentially.
* @param plainRows Not marshalled rows for local node.
+ * @param last Last page flag.
*/
public GridQueryNextPageResponse(long qryReqId, int segmentId, int qry, int page, int allRows, int cols,
- Collection<Message> vals, Collection<?> plainRows) {
+ Collection<Message> vals, Collection<?> plainRows, boolean last) {
assert vals != null ^ plainRows != null;
assert cols > 0 : cols;
@@ -97,6 +100,7 @@ public class GridQueryNextPageResponse implements Message {
this.cols = cols;
this.vals = vals;
this.plainRows = plainRows;
+ this.last = last;
}
/**
@@ -220,6 +224,11 @@ public class GridQueryNextPageResponse implements Message {
writer.incrementState();
+ case 8:
+ if (!writer.writeBoolean("last", last))
+ return false;
+
+ writer.incrementState();
}
return true;
@@ -296,6 +305,14 @@ public class GridQueryNextPageResponse implements Message {
return false;
reader.incrementState();
+
+ case 8:
+ last = reader.readBoolean("last");
+
+ if (!reader.isLastRead())
+ return false;
+
+ reader.incrementState();
}
return reader.afterMessageRead(GridQueryNextPageResponse.class);
@@ -308,7 +325,7 @@ public class GridQueryNextPageResponse implements Message {
/** {@inheritDoc} */
@Override public byte fieldsCount() {
- return 8;
+ return 9;
}
/**
@@ -325,6 +342,20 @@ public class GridQueryNextPageResponse implements Message {
this.retry = retry;
}
+ /**
+ * @return Last page flag.
+ */
+ public boolean last() {
+ return last;
+ }
+
+ /**
+ * @param last Last page flag.
+ */
+ public void last(boolean last) {
+ this.last = last;
+ }
+
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(GridQueryNextPageResponse.class, this,
http://git-wip-us.apache.org/repos/asf/ignite/blob/f7afc0dc/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index e717367..ca978e2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -732,7 +732,8 @@ public class GridMapQueryExecutor {
page == 0 ? res.rowCount() : -1,
res.columnCount(),
loc ? null : toMessages(rows, new ArrayList<Message>(res.columnCount())),
- loc ? rows : null);
+ loc ? rows : null,
+ last);
if (loc)
h2.reduceQueryExecutor().onMessage(ctx.localNodeId(), msg);
@@ -758,7 +759,8 @@ public class GridMapQueryExecutor {
GridQueryNextPageResponse msg = new GridQueryNextPageResponse(reqId, segmentId,
/*qry*/0, /*page*/0, /*allRows*/0, /*cols*/1,
loc ? null : Collections.<Message>emptyList(),
- loc ? Collections.<Value[]>emptyList() : null);
+ loc ? Collections.<Value[]>emptyList() : null,
+ false);
msg.retry(h2.readyTopologyVersion());