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 <[email protected]> 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; + } }
