This is an automated email from the ASF dual-hosted git repository. ptupitsyn pushed a commit to branch ignite-14972 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit c6873dc6cfc39400a9cd4e1cae296b6ca7a3badc Author: Pavel Tupitsyn <[email protected]> AuthorDate: Mon May 30 22:32:49 2022 +0300 wip propagate arguments --- .../ignite/internal/client/sql/ClientSession.java | 40 ++++++++++++++-------- .../internal/client/sql/ClientStatement.java | 20 +++++++++++ 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java index e45c95867..b690df8a1 100644 --- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java +++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java @@ -20,19 +20,18 @@ package org.apache.ignite.internal.client.sql; import static org.apache.ignite.internal.client.ClientUtils.sync; import static org.apache.ignite.internal.client.table.ClientTable.writeTx; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Flow.Publisher; import java.util.concurrent.TimeUnit; +import org.apache.ignite.internal.client.PayloadOutputChannel; import org.apache.ignite.internal.client.ReliableChannel; import org.apache.ignite.internal.client.proto.ClientOp; import org.apache.ignite.sql.BatchedArguments; import org.apache.ignite.sql.ResultSet; import org.apache.ignite.sql.Session; -import org.apache.ignite.sql.SqlRow; import org.apache.ignite.sql.Statement; import org.apache.ignite.sql.async.AsyncResultSet; import org.apache.ignite.sql.reactive.ReactiveResultSet; @@ -126,16 +125,7 @@ public class ClientSession implements Session { w.out().packObject(defaultSchema); w.out().packObject(defaultTimeout); - if (properties == null) { - w.out().packMapHeader(0); - } else { - w.out().packMapHeader(properties.size()); - - for (Entry<String, Object> entry : properties.entrySet()) { - w.out().packString(entry.getKey()); - w.out().packObjectWithType(entry.getValue()); - } - } + packProperties(w, properties); w.out().packObject(clientStatement.defaultSchema()); w.out().packObject(clientStatement.pageSizeNullable()); @@ -143,8 +133,17 @@ public class ClientSession implements Session { w.out().packObject(clientStatement.queryTimeoutNullable()); w.out().packBoolean(clientStatement.prepared()); - // TODO: Pack statement properties. - w.out().packMapHeader(0); + packProperties(w, clientStatement.properties()); + + if (arguments == null) { + w.out().packArrayHeader(0); + } else { + w.out().packArrayHeader(arguments.length); + + for (int i = 0; i < arguments.length; i++) { + w.out().packObjectWithType(arguments[i]); + } + } }, r -> new ClientAsyncResultSet(r.in())); } @@ -257,4 +256,17 @@ public class ClientSession implements Session { public SessionBuilder toBuilder() { return null; } + + private static void packProperties(PayloadOutputChannel w, Map<String, Object> props) { + if (props == null) { + w.out().packMapHeader(0); + } else { + w.out().packMapHeader(props.size()); + + for (Entry<String, Object> entry : props.entrySet()) { + w.out().packString(entry.getKey()); + w.out().packObjectWithType(entry.getValue()); + } + } + } } diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java index fa5973b67..d61b10d44 100644 --- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java +++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java @@ -88,6 +88,11 @@ class ClientStatement implements Statement { return timeUnit.convert(queryTimeoutMs, TimeUnit.MILLISECONDS); } + /** + * Gets the query timeout as nullable. + * + * @return Query timeout. + */ public Long queryTimeoutNullable() { return queryTimeoutMs; } @@ -104,6 +109,11 @@ class ClientStatement implements Statement { return pageSize; } + /** + * Gets the page size as nullable. + * + * @return Page size. + */ public Integer pageSizeNullable() { return pageSize; } @@ -120,6 +130,16 @@ class ClientStatement implements Statement { return properties.get(name); } + /** + * Gets the properties map. + * + * @return Properties. + */ + @SuppressWarnings("AssignmentOrReturnOfFieldWithMutableType") + public Map<String, Object> properties() { + return properties; + } + /** {@inheritDoc} */ @Override public StatementBuilder toBuilder() {
