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() {