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 14:41:06 UTC

[ignite-3] branch ignite-14972 updated: wip ClientStatement, ClientStatementBuilder

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 8dc58e297 wip ClientStatement, ClientStatementBuilder
8dc58e297 is described below

commit 8dc58e2979adc9218971139de243e8c227fa7a75
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Mon May 30 17:40:49 2022 +0300

    wip ClientStatement, ClientStatementBuilder
---
 .../internal/client/sql/ClientStatement.java       | 23 +++++++++++++-
 .../client/sql/ClientStatementBuilder.java         | 37 ++++++++++++++++++++--
 2 files changed, 56 insertions(+), 4 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 a615f494f..6648fd0fc 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
@@ -24,6 +24,9 @@ import org.apache.ignite.sql.Statement;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+/**
+ * Client SQL statement.
+ */
 class ClientStatement implements Statement {
     /** */
     private final String query;
@@ -43,6 +46,16 @@ class ClientStatement implements Statement {
     /** */
     private final Map<String, Object> properties;
 
+    /**
+     * Constructor.
+     *
+     * @param query Query.
+     * @param defaultSchema Default schema.
+     * @param prepared Prepared.
+     * @param queryTimeoutMs Timeout
+     * @param pageSize Page size.
+     * @param properties Properties.
+     */
     @SuppressWarnings("AssignmentOrReturnOfFieldWithMutableType")
     public ClientStatement(
             String query,
@@ -59,11 +72,13 @@ class ClientStatement implements Statement {
         this.properties = properties;
     }
 
+    /** {@inheritDoc} */
     @Override
     public @NotNull String query() {
         return query;
     }
 
+    /** {@inheritDoc} */
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
         Objects.requireNonNull(timeUnit);
@@ -71,26 +86,31 @@ class ClientStatement implements Statement {
         return timeUnit.convert(queryTimeoutMs, TimeUnit.MILLISECONDS);
     }
 
+    /** {@inheritDoc} */
     @Override
     public String defaultSchema() {
         return defaultSchema;
     }
 
+    /** {@inheritDoc} */
     @Override
     public int pageSize() {
         return pageSize;
     }
 
+    /** {@inheritDoc} */
     @Override
     public boolean prepared() {
         return prepared;
     }
 
+    /** {@inheritDoc} */
     @Override
     public @Nullable Object property(@NotNull String name) {
         return properties.get(name);
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder toBuilder() {
         var builder = new ClientStatementBuilder()
@@ -109,8 +129,9 @@ class ClientStatement implements Statement {
         return builder;
     }
 
+    /** {@inheritDoc} */
     @Override
     public void close() throws Exception {
-
+        // No-op.
     }
 }
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 f630be66b..37ecddbc2 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,8 @@
 
 package org.apache.ignite.internal.client.sql;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import org.apache.ignite.sql.Statement;
@@ -25,21 +27,31 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 class ClientStatementBuilder implements Statement.StatementBuilder {
+    /** */
+    private final Map<String, Object> properties = new HashMap<>();
+
+    /** */
     private String query;
 
+    /** */
     private String defaultSchema;
 
+    /** */
     private boolean prepared;
 
+    /** */
     private long queryTimeoutMs;
 
+    /** */
     private int pageSize;
 
+    /** {@inheritDoc} */
     @Override
     public @NotNull String query() {
         return query;
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder query(String sql) {
         query = sql;
@@ -47,11 +59,13 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public boolean prepared() {
         return prepared;
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder prepared(boolean prepared) {
         this.prepared = prepared;
@@ -59,6 +73,7 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
         Objects.requireNonNull(timeUnit);
@@ -66,6 +81,7 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return timeUnit.convert(queryTimeoutMs, TimeUnit.MILLISECONDS);
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder queryTimeout(long timeout, @NotNull TimeUnit timeUnit) {
         Objects.requireNonNull(timeUnit);
@@ -75,11 +91,13 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public String defaultSchema() {
         return defaultSchema;
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder defaultSchema(@NotNull String schema) {
         defaultSchema = schema;
@@ -87,11 +105,13 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public int pageSize() {
         return pageSize;
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder pageSize(int pageSize) {
         this.pageSize = pageSize;
@@ -99,18 +119,29 @@ class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public @Nullable Object property(@NotNull String name) {
-        return null;
+        return properties.get(name);
     }
 
+    /** {@inheritDoc} */
     @Override
     public StatementBuilder property(@NotNull String name, @Nullable Object value) {
-        return null;
+        properties.put(name, value);
+
+        return this;
     }
 
+    /** {@inheritDoc} */
     @Override
     public Statement build() {
-        return null;
+        return new ClientStatement(
+                query,
+                defaultSchema,
+                prepared,
+                queryTimeoutMs,
+                pageSize,
+                new HashMap<>(properties));
     }
 }