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;