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

[ignite-3] branch ignite-14972 updated (357f71ff4 -> f81b53820)

This is an automated email from the ASF dual-hosted git repository.

ptupitsyn pushed a change to branch ignite-14972
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


    from 357f71ff4 wip testExecuteAsyncDdlDml
     new c6873dc6c wip propagate arguments
     new 91a168d74 wip propagate arguments
     new f81b53820 wip propagate arguments

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../requests/sql/ClientSqlExecuteRequest.java      | 20 ++++++++++-
 .../ignite/internal/client/sql/ClientSession.java  | 40 ++++++++++++++--------
 .../internal/client/sql/ClientStatement.java       | 20 +++++++++++
 .../runner/app/client/ItThinClientSqlTest.java     |  2 +-
 4 files changed, 66 insertions(+), 16 deletions(-)


[ignite-3] 01/03: wip propagate arguments

Posted by pt...@apache.org.
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() {


[ignite-3] 03/03: wip propagate arguments

Posted by pt...@apache.org.
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 f81b53820cebe2f9a29bfe70be7db18d7063a2e0
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Mon May 30 22:35:29 2022 +0300

    wip propagate arguments
---
 .../ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java     | 2 +-
 .../apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

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 bc52a2937..224306b1c 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
@@ -162,7 +162,7 @@ public class ClientSqlExecuteRequest {
     }
 
     private static Object[] readArguments(ClientMessageUnpacker in) {
-        int size = in.unpackInt();
+        int size = in.unpackArrayHeader();
 
         if (size == 0) {
             return ArrayUtils.OBJECT_EMPTY_ARRAY;
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java
index 170ce83e2..bfd7b6f6f 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/client/ItThinClientSqlTest.java
@@ -71,7 +71,7 @@ public class ItThinClientSqlTest extends ItAbstractThinClientTest {
         AsyncResultSet insertRes = session.executeAsync(null, "INSERT INTO TEST VALUES (?, ?)", 1, "hello").join();
 
         assertFalse(insertRes.hasRowSet());
-        assertTrue(insertRes.wasApplied());
+        assertFalse(insertRes.wasApplied());
         assertEquals(1, insertRes.affectedRows());
         assertThrows(NoRowSetExpectedException.class, createRes::currentPage);
     }


[ignite-3] 02/03: wip propagate arguments

Posted by pt...@apache.org.
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;
+    }
 }