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


The following commit(s) were added to refs/heads/ignite-14972 by this push:
     new 84407b0ac wip ClientStatement
84407b0ac is described below

commit 84407b0acae1a8a8a8ccb378bd78f28b558c497c
Author: Pavel Tupitsyn <[email protected]>
AuthorDate: Mon May 30 17:34:21 2022 +0300

    wip ClientStatement
---
 .../internal/client/sql/ClientStatement.java       | 65 +++++++++++++++++++---
 .../client/sql/ClientStatementBuilder.java         |  5 ++
 2 files changed, 63 insertions(+), 7 deletions(-)

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 b15eb38c0..a615f494f 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
@@ -17,45 +17,96 @@
 
 package org.apache.ignite.internal.client.sql;
 
+import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import org.apache.ignite.sql.Statement;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 class ClientStatement implements Statement {
+    /** */
+    private final String query;
+
+    /** */
+    private final String defaultSchema;
+
+    /** */
+    private final boolean prepared;
+
+    /** */
+    private final long queryTimeoutMs;
+
+    /** */
+    private final int pageSize;
+
+    /** */
+    private final Map<String, Object> properties;
+
+    @SuppressWarnings("AssignmentOrReturnOfFieldWithMutableType")
+    public ClientStatement(
+            String query,
+            String defaultSchema,
+            boolean prepared,
+            long queryTimeoutMs,
+            int pageSize,
+            Map<String, Object> properties) {
+        this.query = query;
+        this.defaultSchema = defaultSchema;
+        this.prepared = prepared;
+        this.queryTimeoutMs = queryTimeoutMs;
+        this.pageSize = pageSize;
+        this.properties = properties;
+    }
+
     @Override
     public @NotNull String query() {
-        return null;
+        return query;
     }
 
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
-        return 0;
+        Objects.requireNonNull(timeUnit);
+
+        return timeUnit.convert(queryTimeoutMs, TimeUnit.MILLISECONDS);
     }
 
     @Override
     public String defaultSchema() {
-        return null;
+        return defaultSchema;
     }
 
     @Override
     public int pageSize() {
-        return 0;
+        return pageSize;
     }
 
     @Override
     public boolean prepared() {
-        return false;
+        return prepared;
     }
 
     @Override
     public @Nullable Object property(@NotNull String name) {
-        return null;
+        return properties.get(name);
     }
 
     @Override
     public StatementBuilder toBuilder() {
-        return null;
+        var builder = new ClientStatementBuilder()
+                .query(query)
+                .defaultSchema(defaultSchema)
+                .prepared(prepared)
+                .queryTimeout(queryTimeoutMs, TimeUnit.MILLISECONDS)
+                .pageSize(pageSize);
+
+        if (properties != null) {
+            for (var entry : properties.entrySet()) {
+                builder.property(entry.getKey(), entry.getValue());
+            }
+        }
+
+        return builder;
     }
 
     @Override
diff --git 
a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
 
b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
index 7eb6afe8d..f630be66b 100644
--- 
a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
+++ 
b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.client.sql;
 
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import org.apache.ignite.sql.Statement;
 import org.apache.ignite.sql.Statement.StatementBuilder;
@@ -60,11 +61,15 @@ class ClientStatementBuilder implements 
Statement.StatementBuilder {
 
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
+        Objects.requireNonNull(timeUnit);
+
         return timeUnit.convert(queryTimeoutMs, TimeUnit.MILLISECONDS);
     }
 
     @Override
     public StatementBuilder queryTimeout(long timeout, @NotNull TimeUnit 
timeUnit) {
+        Objects.requireNonNull(timeUnit);
+
         queryTimeoutMs = TimeUnit.MILLISECONDS.convert(timeout, timeUnit);
 
         return this;

Reply via email to