|
@@ -10,6 +10,7 @@ import org.elasticsearch.action.ActionRequestValidationException;
|
|
|
import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
|
import org.elasticsearch.xcontent.ConstructingObjectParser;
|
|
|
+import org.elasticsearch.xcontent.ParseField;
|
|
|
import org.elasticsearch.xcontent.XContentParser;
|
|
|
import org.elasticsearch.xpack.sql.proto.Mode;
|
|
|
import org.elasticsearch.xpack.sql.proto.RequestInfo;
|
|
@@ -24,12 +25,16 @@ import static org.elasticsearch.xpack.sql.action.AbstractSqlQueryRequest.CLIENT_
|
|
|
import static org.elasticsearch.xpack.sql.action.AbstractSqlQueryRequest.CURSOR;
|
|
|
import static org.elasticsearch.xpack.sql.action.AbstractSqlQueryRequest.MODE;
|
|
|
import static org.elasticsearch.xpack.sql.action.AbstractSqlQueryRequest.VERSION;
|
|
|
+import static org.elasticsearch.xpack.sql.proto.CoreProtocol.BINARY_COMMUNICATION;
|
|
|
+import static org.elasticsearch.xpack.sql.proto.CoreProtocol.BINARY_FORMAT_NAME;
|
|
|
|
|
|
/**
|
|
|
* Request to clean all SQL resources associated with the cursor
|
|
|
*/
|
|
|
public class SqlClearCursorRequest extends AbstractSqlRequest {
|
|
|
|
|
|
+ static final ParseField BINARY_FORMAT = new ParseField(BINARY_FORMAT_NAME);
|
|
|
+
|
|
|
private static final ConstructingObjectParser<SqlClearCursorRequest, Void> PARSER =
|
|
|
// here the position in "objects" is the same as the fields parser declarations below
|
|
|
new ConstructingObjectParser<>(SqlClearCursorAction.NAME, objects -> {
|
|
@@ -43,9 +48,11 @@ public class SqlClearCursorRequest extends AbstractSqlRequest {
|
|
|
PARSER.declareString(optionalConstructorArg(), MODE);
|
|
|
PARSER.declareString(optionalConstructorArg(), CLIENT_ID);
|
|
|
PARSER.declareString(optionalConstructorArg(), VERSION);
|
|
|
+ PARSER.declareBoolean(SqlClearCursorRequest::binaryCommunication, BINARY_FORMAT);
|
|
|
}
|
|
|
|
|
|
private String cursor;
|
|
|
+ private Boolean binaryCommunication = BINARY_COMMUNICATION;
|
|
|
|
|
|
public SqlClearCursorRequest() {}
|
|
|
|
|
@@ -80,12 +87,23 @@ public class SqlClearCursorRequest extends AbstractSqlRequest {
|
|
|
public SqlClearCursorRequest(StreamInput in) throws IOException {
|
|
|
super(in);
|
|
|
cursor = in.readString();
|
|
|
+ binaryCommunication = in.readOptionalBoolean();
|
|
|
+ }
|
|
|
+
|
|
|
+ public SqlClearCursorRequest binaryCommunication(Boolean binaryCommunication) {
|
|
|
+ this.binaryCommunication = binaryCommunication;
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Boolean binaryCommunication() {
|
|
|
+ return this.binaryCommunication;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void writeTo(StreamOutput out) throws IOException {
|
|
|
super.writeTo(out);
|
|
|
out.writeString(cursor);
|
|
|
+ out.writeOptionalBoolean(binaryCommunication);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -94,12 +112,12 @@ public class SqlClearCursorRequest extends AbstractSqlRequest {
|
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
|
if (super.equals(o) == false) return false;
|
|
|
SqlClearCursorRequest that = (SqlClearCursorRequest) o;
|
|
|
- return Objects.equals(cursor, that.cursor);
|
|
|
+ return Objects.equals(cursor, that.cursor) && Objects.equals(binaryCommunication, that.binaryCommunication);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public int hashCode() {
|
|
|
- return Objects.hash(super.hashCode(), cursor);
|
|
|
+ return Objects.hash(super.hashCode(), cursor, binaryCommunication);
|
|
|
}
|
|
|
|
|
|
public static SqlClearCursorRequest fromXContent(XContentParser parser) {
|