You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2017/04/10 00:39:05 UTC
calcite-avatica git commit: [CALCITE-1353] Convert
first_frame_max_size to an int32
Repository: calcite-avatica
Updated Branches:
refs/heads/master d961f4d60 -> 4a91a9e99
[CALCITE-1353] Convert first_frame_max_size to an int32
A uint64 is wrong because -1 is a valid value and Java can only
handle a max of 2*^2, not 2^64, elements.
Closes apache/calcite-avatica#5
Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite-avatica/commit/4a91a9e9
Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica/tree/4a91a9e9
Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica/diff/4a91a9e9
Branch: refs/heads/master
Commit: 4a91a9e99a8f703f6e11228701b2a912bc90ae8f
Parents: d961f4d
Author: Josh Elser <el...@apache.org>
Authored: Thu Apr 6 19:37:37 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Sun Apr 9 20:38:34 2017 -0400
----------------------------------------------------------------------
.../apache/calcite/avatica/proto/Requests.java | 188 ++++++++++++++-----
.../apache/calcite/avatica/remote/Service.java | 23 ++-
core/src/main/protobuf/requests.proto | 3 +-
.../avatica/remote/ExecuteRequestTest.java | 78 ++++++++
4 files changed, 236 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/4a91a9e9/core/src/main/java/org/apache/calcite/avatica/proto/Requests.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/avatica/proto/Requests.java b/core/src/main/java/org/apache/calcite/avatica/proto/Requests.java
index 8e10849..60bac81 100644
--- a/core/src/main/java/org/apache/calcite/avatica/proto/Requests.java
+++ b/core/src/main/java/org/apache/calcite/avatica/proto/Requests.java
@@ -10822,17 +10822,26 @@ public final class Requests {
/**
* <pre>
- * The maximum number of rows to return in the first Frame
+ * Deprecated, use the signed int instead.
* </pre>
*
- * <code>optional uint64 first_frame_max_size = 3;</code>
+ * <code>optional uint64 deprecated_first_frame_max_size = 3;</code>
*/
- long getFirstFrameMaxSize();
+ long getDeprecatedFirstFrameMaxSize();
/**
* <code>optional bool has_parameter_values = 4;</code>
*/
boolean getHasParameterValues();
+
+ /**
+ * <pre>
+ * The maximum number of rows to return in the first Frame
+ * </pre>
+ *
+ * <code>optional int32 first_frame_max_size = 5;</code>
+ */
+ int getFirstFrameMaxSize();
}
/**
* <pre>
@@ -10851,8 +10860,9 @@ public final class Requests {
}
private ExecuteRequest() {
parameterValues_ = java.util.Collections.emptyList();
- firstFrameMaxSize_ = 0L;
+ deprecatedFirstFrameMaxSize_ = 0L;
hasParameterValues_ = false;
+ firstFrameMaxSize_ = 0;
}
@java.lang.Override
@@ -10904,7 +10914,7 @@ public final class Requests {
}
case 24: {
- firstFrameMaxSize_ = input.readUInt64();
+ deprecatedFirstFrameMaxSize_ = input.readUInt64();
break;
}
case 32: {
@@ -10912,6 +10922,11 @@ public final class Requests {
hasParameterValues_ = input.readBool();
break;
}
+ case 40: {
+
+ firstFrameMaxSize_ = input.readInt32();
+ break;
+ }
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -10995,17 +11010,17 @@ public final class Requests {
return parameterValues_.get(index);
}
- public static final int FIRST_FRAME_MAX_SIZE_FIELD_NUMBER = 3;
- private long firstFrameMaxSize_;
+ public static final int DEPRECATED_FIRST_FRAME_MAX_SIZE_FIELD_NUMBER = 3;
+ private long deprecatedFirstFrameMaxSize_;
/**
* <pre>
- * The maximum number of rows to return in the first Frame
+ * Deprecated, use the signed int instead.
* </pre>
*
- * <code>optional uint64 first_frame_max_size = 3;</code>
+ * <code>optional uint64 deprecated_first_frame_max_size = 3;</code>
*/
- public long getFirstFrameMaxSize() {
- return firstFrameMaxSize_;
+ public long getDeprecatedFirstFrameMaxSize() {
+ return deprecatedFirstFrameMaxSize_;
}
public static final int HAS_PARAMETER_VALUES_FIELD_NUMBER = 4;
@@ -11017,6 +11032,19 @@ public final class Requests {
return hasParameterValues_;
}
+ public static final int FIRST_FRAME_MAX_SIZE_FIELD_NUMBER = 5;
+ private int firstFrameMaxSize_;
+ /**
+ * <pre>
+ * The maximum number of rows to return in the first Frame
+ * </pre>
+ *
+ * <code>optional int32 first_frame_max_size = 5;</code>
+ */
+ public int getFirstFrameMaxSize() {
+ return firstFrameMaxSize_;
+ }
+
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
@@ -11035,12 +11063,15 @@ public final class Requests {
for (int i = 0; i < parameterValues_.size(); i++) {
output.writeMessage(2, parameterValues_.get(i));
}
- if (firstFrameMaxSize_ != 0L) {
- output.writeUInt64(3, firstFrameMaxSize_);
+ if (deprecatedFirstFrameMaxSize_ != 0L) {
+ output.writeUInt64(3, deprecatedFirstFrameMaxSize_);
}
if (hasParameterValues_ != false) {
output.writeBool(4, hasParameterValues_);
}
+ if (firstFrameMaxSize_ != 0) {
+ output.writeInt32(5, firstFrameMaxSize_);
+ }
}
public int getSerializedSize() {
@@ -11056,14 +11087,18 @@ public final class Requests {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, parameterValues_.get(i));
}
- if (firstFrameMaxSize_ != 0L) {
+ if (deprecatedFirstFrameMaxSize_ != 0L) {
size += com.google.protobuf.CodedOutputStream
- .computeUInt64Size(3, firstFrameMaxSize_);
+ .computeUInt64Size(3, deprecatedFirstFrameMaxSize_);
}
if (hasParameterValues_ != false) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(4, hasParameterValues_);
}
+ if (firstFrameMaxSize_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(5, firstFrameMaxSize_);
+ }
memoizedSize = size;
return size;
}
@@ -11087,10 +11122,12 @@ public final class Requests {
}
result = result && getParameterValuesList()
.equals(other.getParameterValuesList());
- result = result && (getFirstFrameMaxSize()
- == other.getFirstFrameMaxSize());
+ result = result && (getDeprecatedFirstFrameMaxSize()
+ == other.getDeprecatedFirstFrameMaxSize());
result = result && (getHasParameterValues()
== other.getHasParameterValues());
+ result = result && (getFirstFrameMaxSize()
+ == other.getFirstFrameMaxSize());
return result;
}
@@ -11109,12 +11146,14 @@ public final class Requests {
hash = (37 * hash) + PARAMETER_VALUES_FIELD_NUMBER;
hash = (53 * hash) + getParameterValuesList().hashCode();
}
- hash = (37 * hash) + FIRST_FRAME_MAX_SIZE_FIELD_NUMBER;
+ hash = (37 * hash) + DEPRECATED_FIRST_FRAME_MAX_SIZE_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
- getFirstFrameMaxSize());
+ getDeprecatedFirstFrameMaxSize());
hash = (37 * hash) + HAS_PARAMETER_VALUES_FIELD_NUMBER;
hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
getHasParameterValues());
+ hash = (37 * hash) + FIRST_FRAME_MAX_SIZE_FIELD_NUMBER;
+ hash = (53 * hash) + getFirstFrameMaxSize();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@@ -11250,10 +11289,12 @@ public final class Requests {
} else {
parameterValuesBuilder_.clear();
}
- firstFrameMaxSize_ = 0L;
+ deprecatedFirstFrameMaxSize_ = 0L;
hasParameterValues_ = false;
+ firstFrameMaxSize_ = 0;
+
return this;
}
@@ -11292,8 +11333,9 @@ public final class Requests {
} else {
result.parameterValues_ = parameterValuesBuilder_.build();
}
- result.firstFrameMaxSize_ = firstFrameMaxSize_;
+ result.deprecatedFirstFrameMaxSize_ = deprecatedFirstFrameMaxSize_;
result.hasParameterValues_ = hasParameterValues_;
+ result.firstFrameMaxSize_ = firstFrameMaxSize_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@@ -11365,12 +11407,15 @@ public final class Requests {
}
}
}
- if (other.getFirstFrameMaxSize() != 0L) {
- setFirstFrameMaxSize(other.getFirstFrameMaxSize());
+ if (other.getDeprecatedFirstFrameMaxSize() != 0L) {
+ setDeprecatedFirstFrameMaxSize(other.getDeprecatedFirstFrameMaxSize());
}
if (other.getHasParameterValues() != false) {
setHasParameterValues(other.getHasParameterValues());
}
+ if (other.getFirstFrameMaxSize() != 0) {
+ setFirstFrameMaxSize(other.getFirstFrameMaxSize());
+ }
onChanged();
return this;
}
@@ -11755,40 +11800,40 @@ public final class Requests {
return parameterValuesBuilder_;
}
- private long firstFrameMaxSize_ ;
+ private long deprecatedFirstFrameMaxSize_ ;
/**
* <pre>
- * The maximum number of rows to return in the first Frame
+ * Deprecated, use the signed int instead.
* </pre>
*
- * <code>optional uint64 first_frame_max_size = 3;</code>
+ * <code>optional uint64 deprecated_first_frame_max_size = 3;</code>
*/
- public long getFirstFrameMaxSize() {
- return firstFrameMaxSize_;
+ public long getDeprecatedFirstFrameMaxSize() {
+ return deprecatedFirstFrameMaxSize_;
}
/**
* <pre>
- * The maximum number of rows to return in the first Frame
+ * Deprecated, use the signed int instead.
* </pre>
*
- * <code>optional uint64 first_frame_max_size = 3;</code>
+ * <code>optional uint64 deprecated_first_frame_max_size = 3;</code>
*/
- public Builder setFirstFrameMaxSize(long value) {
+ public Builder setDeprecatedFirstFrameMaxSize(long value) {
- firstFrameMaxSize_ = value;
+ deprecatedFirstFrameMaxSize_ = value;
onChanged();
return this;
}
/**
* <pre>
- * The maximum number of rows to return in the first Frame
+ * Deprecated, use the signed int instead.
* </pre>
*
- * <code>optional uint64 first_frame_max_size = 3;</code>
+ * <code>optional uint64 deprecated_first_frame_max_size = 3;</code>
*/
- public Builder clearFirstFrameMaxSize() {
+ public Builder clearDeprecatedFirstFrameMaxSize() {
- firstFrameMaxSize_ = 0L;
+ deprecatedFirstFrameMaxSize_ = 0L;
onChanged();
return this;
}
@@ -11818,6 +11863,44 @@ public final class Requests {
onChanged();
return this;
}
+
+ private int firstFrameMaxSize_ ;
+ /**
+ * <pre>
+ * The maximum number of rows to return in the first Frame
+ * </pre>
+ *
+ * <code>optional int32 first_frame_max_size = 5;</code>
+ */
+ public int getFirstFrameMaxSize() {
+ return firstFrameMaxSize_;
+ }
+ /**
+ * <pre>
+ * The maximum number of rows to return in the first Frame
+ * </pre>
+ *
+ * <code>optional int32 first_frame_max_size = 5;</code>
+ */
+ public Builder setFirstFrameMaxSize(int value) {
+
+ firstFrameMaxSize_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <pre>
+ * The maximum number of rows to return in the first Frame
+ * </pre>
+ *
+ * <code>optional int32 first_frame_max_size = 5;</code>
+ */
+ public Builder clearFirstFrameMaxSize() {
+
+ firstFrameMaxSize_ = 0;
+ onChanged();
+ return this;
+ }
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return this;
@@ -16432,23 +16515,24 @@ public final class Requests {
"/\n\026CloseConnectionRequest\022\025\n\rconnection_" +
"id\030\001 \001(\t\"Y\n\025ConnectionSyncRequest\022\025\n\rcon" +
"nection_id\030\001 \001(\t\022)\n\nconn_props\030\002 \001(\0132\025.C" +
- "onnectionProperties\"\236\001\n\016ExecuteRequest\022)" +
+ "onnectionProperties\"\307\001\n\016ExecuteRequest\022)" +
"\n\017statementHandle\030\001 \001(\0132\020.StatementHandl" +
"e\022%\n\020parameter_values\030\002 \003(\0132\013.TypedValue" +
- "\022\034\n\024first_frame_max_size\030\003 \001(\004\022\034\n\024has_pa" +
- "rameter_values\030\004 \001(\010\"m\n\022SyncResultsReque" +
- "st\022\025\n\rconnection_id\030\001 \001(\t\022\024\n\014statement_i",
- "d\030\002 \001(\r\022\032\n\005state\030\003 \001(\0132\013.QueryState\022\016\n\006o" +
- "ffset\030\004 \001(\004\"&\n\rCommitRequest\022\025\n\rconnecti" +
- "on_id\030\001 \001(\t\"(\n\017RollbackRequest\022\025\n\rconnec" +
- "tion_id\030\001 \001(\t\"b\n\035PrepareAndExecuteBatchR" +
- "equest\022\025\n\rconnection_id\030\001 \001(\t\022\024\n\014stateme" +
- "nt_id\030\002 \001(\r\022\024\n\014sql_commands\030\003 \003(\t\"4\n\013Upd" +
- "ateBatch\022%\n\020parameter_values\030\001 \003(\0132\013.Typ" +
- "edValue\"a\n\023ExecuteBatchRequest\022\025\n\rconnec" +
- "tion_id\030\001 \001(\t\022\024\n\014statement_id\030\002 \001(\r\022\035\n\007u" +
- "pdates\030\003 \003(\0132\014.UpdateBatchB\"\n org.apache",
- ".calcite.avatica.protob\006proto3"
+ "\022\'\n\037deprecated_first_frame_max_size\030\003 \001(" +
+ "\004\022\034\n\024has_parameter_values\030\004 \001(\010\022\034\n\024first" +
+ "_frame_max_size\030\005 \001(\005\"m\n\022SyncResultsRequ",
+ "est\022\025\n\rconnection_id\030\001 \001(\t\022\024\n\014statement_" +
+ "id\030\002 \001(\r\022\032\n\005state\030\003 \001(\0132\013.QueryState\022\016\n\006" +
+ "offset\030\004 \001(\004\"&\n\rCommitRequest\022\025\n\rconnect" +
+ "ion_id\030\001 \001(\t\"(\n\017RollbackRequest\022\025\n\rconne" +
+ "ction_id\030\001 \001(\t\"b\n\035PrepareAndExecuteBatch" +
+ "Request\022\025\n\rconnection_id\030\001 \001(\t\022\024\n\014statem" +
+ "ent_id\030\002 \001(\r\022\024\n\014sql_commands\030\003 \003(\t\"4\n\013Up" +
+ "dateBatch\022%\n\020parameter_values\030\001 \003(\0132\013.Ty" +
+ "pedValue\"a\n\023ExecuteBatchRequest\022\025\n\rconne" +
+ "ction_id\030\001 \001(\t\022\024\n\014statement_id\030\002 \001(\r\022\035\n\007",
+ "updates\030\003 \003(\0132\014.UpdateBatchB\"\n org.apach" +
+ "e.calcite.avatica.protob\006proto3"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@@ -16564,7 +16648,7 @@ public final class Requests {
internal_static_ExecuteRequest_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_ExecuteRequest_descriptor,
- new java.lang.String[] { "StatementHandle", "ParameterValues", "FirstFrameMaxSize", "HasParameterValues", });
+ new java.lang.String[] { "StatementHandle", "ParameterValues", "DeprecatedFirstFrameMaxSize", "HasParameterValues", "FirstFrameMaxSize", });
internal_static_SyncResultsRequest_descriptor =
getDescriptor().getMessageTypes().get(16);
internal_static_SyncResultsRequest_fieldAccessorTable = new
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/4a91a9e9/core/src/main/java/org/apache/calcite/avatica/remote/Service.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/avatica/remote/Service.java b/core/src/main/java/org/apache/calcite/avatica/remote/Service.java
index 786d07a..bcbc557 100644
--- a/core/src/main/java/org/apache/calcite/avatica/remote/Service.java
+++ b/core/src/main/java/org/apache/calcite/avatica/remote/Service.java
@@ -1002,9 +1002,15 @@ public interface Service {
class ExecuteRequest extends Request {
private static final FieldDescriptor STATEMENT_HANDLE_DESCRIPTOR = Requests.ExecuteRequest.
getDescriptor().findFieldByNumber(Requests.ExecuteRequest.STATEMENTHANDLE_FIELD_NUMBER);
+ private static final FieldDescriptor DEPRECATED_FIRST_FRAME_MAX_SIZE_DESCRIPTOR =
+ Requests.ExecuteRequest.getDescriptor().findFieldByNumber(
+ Requests.ExecuteRequest.DEPRECATED_FIRST_FRAME_MAX_SIZE_FIELD_NUMBER);
+ private static final FieldDescriptor FIRST_FRAME_MAX_SIZE_DESCRIPTOR = Requests.ExecuteRequest.
+ getDescriptor().findFieldByNumber(
+ Requests.ExecuteRequest.FIRST_FRAME_MAX_SIZE_FIELD_NUMBER);
public final Meta.StatementHandle statementHandle;
public final List<TypedValue> parameterValues;
- public final long maxRowCount;
+ public final int maxRowCount;
ExecuteRequest() {
statementHandle = null;
@@ -1016,7 +1022,7 @@ public interface Service {
public ExecuteRequest(
@JsonProperty("statementHandle") Meta.StatementHandle statementHandle,
@JsonProperty("parameterValues") List<TypedValue> parameterValues,
- @JsonProperty("maxRowCount") long maxRowCount) {
+ @JsonProperty("maxRowCount") int maxRowCount) {
this.statementHandle = statementHandle;
this.parameterValues = parameterValues;
this.maxRowCount = maxRowCount;
@@ -1043,7 +1049,16 @@ public interface Service {
}
}
- return new ExecuteRequest(statementHandle, values, msg.getFirstFrameMaxSize());
+ // Default int value
+ int maxFrameSize = 0;
+ if (msg.hasField(FIRST_FRAME_MAX_SIZE_DESCRIPTOR)) {
+ maxFrameSize = msg.getFirstFrameMaxSize();
+ } else if (msg.hasField(DEPRECATED_FIRST_FRAME_MAX_SIZE_DESCRIPTOR)) {
+ // Truncate the long as an int
+ maxFrameSize = (int) msg.getDeprecatedFirstFrameMaxSize();
+ }
+
+ return new ExecuteRequest(statementHandle, values, maxFrameSize);
}
@Override Requests.ExecuteRequest serialize() {
@@ -1066,6 +1081,8 @@ public interface Service {
builder.setHasParameterValues(false);
}
+ // Set the old and new field
+ builder.setDeprecatedFirstFrameMaxSize(maxRowCount);
builder.setFirstFrameMaxSize(maxRowCount);
return builder.build();
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/4a91a9e9/core/src/main/protobuf/requests.proto
----------------------------------------------------------------------
diff --git a/core/src/main/protobuf/requests.proto b/core/src/main/protobuf/requests.proto
index 228be27..1e2c334 100644
--- a/core/src/main/protobuf/requests.proto
+++ b/core/src/main/protobuf/requests.proto
@@ -127,8 +127,9 @@ message ConnectionSyncRequest {
message ExecuteRequest {
StatementHandle statementHandle = 1;
repeated TypedValue parameter_values = 2;
- uint64 first_frame_max_size = 3; // The maximum number of rows to return in the first Frame
+ uint64 deprecated_first_frame_max_size = 3; // Deprecated, use the signed int instead.
bool has_parameter_values = 4;
+ int32 first_frame_max_size = 5; // The maximum number of rows to return in the first Frame
}
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/4a91a9e9/core/src/test/java/org/apache/calcite/avatica/remote/ExecuteRequestTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/avatica/remote/ExecuteRequestTest.java b/core/src/test/java/org/apache/calcite/avatica/remote/ExecuteRequestTest.java
new file mode 100644
index 0000000..2c27677
--- /dev/null
+++ b/core/src/test/java/org/apache/calcite/avatica/remote/ExecuteRequestTest.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.calcite.avatica.remote;
+
+import org.apache.calcite.avatica.Meta;
+import org.apache.calcite.avatica.proto.Requests;
+import org.apache.calcite.avatica.remote.Service.ExecuteRequest;
+
+import org.junit.Test;
+
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test class for ExecuteRequest
+ */
+public class ExecuteRequestTest {
+
+ private static final Meta.StatementHandle STATEMENT_HANDLE =
+ new Meta.StatementHandle("cnxn1", 1, null);
+
+ @Test public void testUsesDeprecatedFieldIfPresent() {
+ Requests.ExecuteRequest proto = Requests.ExecuteRequest.newBuilder()
+ .setDeprecatedFirstFrameMaxSize(1).setStatementHandle(STATEMENT_HANDLE.toProto()).build();
+
+ ExecuteRequest request = new ExecuteRequest();
+ request = request.deserialize(proto);
+
+ assertEquals(proto.getDeprecatedFirstFrameMaxSize(), request.maxRowCount);
+ }
+
+ @Test public void testNewFieldOverridesOldField() {
+ Requests.ExecuteRequest proto = Requests.ExecuteRequest.newBuilder()
+ .setDeprecatedFirstFrameMaxSize(1).setFirstFrameMaxSize(2)
+ .setStatementHandle(STATEMENT_HANDLE.toProto()).build();
+
+ ExecuteRequest request = new ExecuteRequest();
+ request = request.deserialize(proto);
+
+ assertEquals(proto.getFirstFrameMaxSize(), request.maxRowCount);
+ }
+
+ @Test public void testNewFieldIsUsed() {
+ Requests.ExecuteRequest proto = Requests.ExecuteRequest.newBuilder()
+ .setFirstFrameMaxSize(2).setStatementHandle(STATEMENT_HANDLE.toProto()).build();
+
+ ExecuteRequest request = new ExecuteRequest();
+ request = request.deserialize(proto);
+
+ assertEquals(proto.getFirstFrameMaxSize(), request.maxRowCount);
+ }
+
+ @Test public void testBothFieldsAreSerialized() {
+ ExecuteRequest request = new ExecuteRequest(STATEMENT_HANDLE,
+ Collections.<TypedValue>emptyList(), 5);
+ Requests.ExecuteRequest proto = request.serialize();
+
+ assertEquals(request.maxRowCount, proto.getDeprecatedFirstFrameMaxSize());
+ assertEquals(request.maxRowCount, proto.getFirstFrameMaxSize());
+ }
+}
+
+// End ExecuteRequestTest.java