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:38 UTC

[ignite-3] 02/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 91a168d74e281dd5243bbe2d8cbca911055f259b
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Mon May 30 22:34:49 2022 +0300

    wip propagate arguments
---
 .../requests/sql/ClientSqlExecuteRequest.java        | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
index 434e200e4..bc52a2937 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
@@ -27,6 +27,7 @@ import org.apache.ignite.client.handler.ClientResource;
 import org.apache.ignite.client.handler.ClientResourceRegistry;
 import org.apache.ignite.internal.client.proto.ClientMessagePacker;
 import org.apache.ignite.internal.client.proto.ClientMessageUnpacker;
+import org.apache.ignite.internal.util.ArrayUtils;
 import org.apache.ignite.lang.IgniteInternalCheckedException;
 import org.apache.ignite.lang.IgniteInternalException;
 import org.apache.ignite.sql.ColumnMetadata;
@@ -56,8 +57,9 @@ public class ClientSqlExecuteRequest {
         var tx = readTx(in, resources);
         Session session = readSession(in, sql);
         Statement statement = readStatement(in, sql);
+        Object[] arguments = readArguments(in);
 
-        return session.executeAsync(tx, statement).thenCompose(asyncResultSet -> {
+        return session.executeAsync(tx, statement, arguments).thenCompose(asyncResultSet -> {
             if (asyncResultSet.hasRowSet() && asyncResultSet.hasMorePages()) {
                 try {
                     long resourceId = resources.put(new ClientResource(asyncResultSet, asyncResultSet::closeAsync));
@@ -158,4 +160,20 @@ public class ClientSqlExecuteRequest {
 
         return statementBuilder.build();
     }
+
+    private static Object[] readArguments(ClientMessageUnpacker in) {
+        int size = in.unpackInt();
+
+        if (size == 0) {
+            return ArrayUtils.OBJECT_EMPTY_ARRAY;
+        }
+
+        var res = new Object[size];
+
+        for (int i = 0; i < size; i++) {
+            res[i] = in.unpackObjectWithType();
+        }
+
+        return res;
+    }
 }