You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2022/05/30 19:35:37 UTC
[ignite-3] 01/03: wip propagate arguments
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 <pt...@apache.org>
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() {