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;
+ }
}