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/26 07:08:10 UTC
[ignite-3] branch ignite-14972 updated: wip ClientSqlExecuteRequest
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 b5421481a wip ClientSqlExecuteRequest
b5421481a is described below
commit b5421481aba4b2d6fc11317e7da56ed62f942261
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Thu May 26 10:08:03 2022 +0300
wip ClientSqlExecuteRequest
---
.../ignite/client/handler/ItClientHandlerTest.java | 3 +-
.../ignite/client/handler/ClientHandlerModule.java | 11 ++++--
.../handler/ClientInboundMessageHandler.java | 12 ++++++-
.../requests/sql/ClientSqlExecuteRequest.java | 41 ++++++++++++++++++++++
.../ignite/client/TestClientHandlerModule.java | 3 +-
.../java/org/apache/ignite/client/TestServer.java | 3 +-
.../org/apache/ignite/internal/app/IgniteImpl.java | 3 +-
7 files changed, 69 insertions(+), 7 deletions(-)
diff --git a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
index 27cefc547..94bbd7e1f 100644
--- a/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
+++ b/modules/client-handler/src/integrationTest/java/org/apache/ignite/client/handler/ItClientHandlerTest.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage
import org.apache.ignite.internal.sql.engine.QueryProcessor;
import org.apache.ignite.network.ClusterService;
import org.apache.ignite.network.NettyBootstrapFactory;
+import org.apache.ignite.sql.IgniteSql;
import org.apache.ignite.table.manager.IgniteTables;
import org.apache.ignite.tx.IgniteTransactions;
import org.junit.jupiter.api.AfterEach;
@@ -218,7 +219,7 @@ public class ItClientHandlerTest {
Mockito.when(clusterService.topologyService().localMember().name()).thenReturn("consistent-id");
var module = new ClientHandlerModule(mock(QueryProcessor.class), mock(IgniteTables.class), mock(IgniteTransactions.class), registry,
- mock(IgniteCompute.class), clusterService, bootstrapFactory);
+ mock(IgniteCompute.class), clusterService, bootstrapFactory, mock(IgniteSql.class));
module.start();
diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
index f79a754f5..c85c3d7c1 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
@@ -41,6 +41,7 @@ import org.apache.ignite.lang.IgniteInternalException;
import org.apache.ignite.lang.IgniteLogger;
import org.apache.ignite.network.ClusterService;
import org.apache.ignite.network.NettyBootstrapFactory;
+import org.apache.ignite.sql.IgniteSql;
import org.apache.ignite.table.manager.IgniteTables;
import org.apache.ignite.tx.IgniteTransactions;
@@ -60,6 +61,9 @@ public class ClientHandlerModule implements IgniteComponent {
/** Ignite transactions API. */
private final IgniteTransactions igniteTransactions;
+ /** Ignite SQL API. */
+ private final IgniteSql sql;
+
/** Netty channel. */
private volatile Channel channel;
@@ -93,7 +97,8 @@ public class ClientHandlerModule implements IgniteComponent {
ConfigurationRegistry registry,
IgniteCompute igniteCompute,
ClusterService clusterService,
- NettyBootstrapFactory bootstrapFactory) {
+ NettyBootstrapFactory bootstrapFactory,
+ IgniteSql sql) {
assert igniteTables != null;
assert registry != null;
assert queryProcessor != null;
@@ -108,6 +113,7 @@ public class ClientHandlerModule implements IgniteComponent {
this.clusterService = clusterService;
this.registry = registry;
this.bootstrapFactory = bootstrapFactory;
+ this.sql = sql;
}
/** {@inheritDoc} */
@@ -185,7 +191,8 @@ public class ClientHandlerModule implements IgniteComponent {
queryProcessor,
configuration,
igniteCompute,
- clusterService));
+ clusterService,
+ sql));
}
})
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, configuration.connectTimeout());
diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java
index 62a2a7dd5..c97a2c7d7 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java
@@ -38,6 +38,7 @@ import org.apache.ignite.client.handler.requests.jdbc.ClientJdbcQueryMetadataReq
import org.apache.ignite.client.handler.requests.jdbc.ClientJdbcSchemasMetadataRequest;
import org.apache.ignite.client.handler.requests.jdbc.ClientJdbcTableMetadataRequest;
import org.apache.ignite.client.handler.requests.jdbc.JdbcMetadataCatalog;
+import org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest;
import org.apache.ignite.client.handler.requests.table.ClientSchemasGetRequest;
import org.apache.ignite.client.handler.requests.table.ClientTableGetRequest;
import org.apache.ignite.client.handler.requests.table.ClientTableIdDoesNotExistException;
@@ -77,6 +78,7 @@ import org.apache.ignite.lang.IgniteInternalCheckedException;
import org.apache.ignite.lang.IgniteLogger;
import org.apache.ignite.network.ClusterNode;
import org.apache.ignite.network.ClusterService;
+import org.apache.ignite.sql.IgniteSql;
import org.apache.ignite.table.manager.IgniteTables;
import org.apache.ignite.tx.IgniteTransactions;
@@ -109,6 +111,9 @@ public class ClientInboundMessageHandler extends ChannelInboundHandlerAdapter {
/** Cluster. */
private final ClusterService clusterService;
+ /** SQL. */
+ private final IgniteSql sql;
+
/** Context. */
private ClientContext clientContext;
@@ -128,7 +133,8 @@ public class ClientInboundMessageHandler extends ChannelInboundHandlerAdapter {
QueryProcessor processor,
ClientConnectorView configuration,
IgniteCompute compute,
- ClusterService clusterService) {
+ ClusterService clusterService,
+ IgniteSql sql) {
assert igniteTables != null;
assert igniteTransactions != null;
assert processor != null;
@@ -141,6 +147,7 @@ public class ClientInboundMessageHandler extends ChannelInboundHandlerAdapter {
this.configuration = configuration;
this.compute = compute;
this.clusterService = clusterService;
+ this.sql = sql;
jdbcQueryEventHandler = new JdbcQueryEventHandlerImpl(processor, new JdbcMetadataCatalog(igniteTables));
}
@@ -430,6 +437,9 @@ public class ClientInboundMessageHandler extends ChannelInboundHandlerAdapter {
case ClientOp.CLUSTER_GET_NODES:
return ClientClusterGetNodesRequest.process(out, clusterService);
+ case ClientOp.SQL_EXEC:
+ return ClientSqlExecuteRequest.process(in, out, sql);
+
default:
throw new IgniteException("Unexpected operation code: " + opCode);
}
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
new file mode 100644
index 000000000..96e05fa56
--- /dev/null
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.client.handler.requests.sql;
+
+import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.client.proto.ClientMessagePacker;
+import org.apache.ignite.internal.client.proto.ClientMessageUnpacker;
+import org.apache.ignite.sql.IgniteSql;
+
+/**
+ * Executes and SQL query.
+ */
+public class ClientSqlExecuteRequest {
+ /**
+ * Processes the request.
+ *
+ * @param in Unpacker.
+ * @param out Packer.
+ * @param sql SQL API.
+ * @return Future.
+ */
+ public static CompletableFuture<Void> process(ClientMessageUnpacker in, ClientMessagePacker out, IgniteSql sql) {
+ // TODO:
+ return null;
+ }
+}
diff --git a/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java b/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
index 467d1ffe6..1238cd7cd 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/TestClientHandlerModule.java
@@ -163,7 +163,8 @@ public class TestClientHandlerModule implements IgniteComponent {
mock(QueryProcessor.class),
configuration,
compute,
- clusterService));
+ clusterService,
+ null));
}
})
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, configuration.connectTimeout());
diff --git a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
index 1f0f63a5c..d69d4e127 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/TestServer.java
@@ -131,7 +131,8 @@ public class TestServer implements AutoCloseable {
cfg,
compute,
clusterService,
- bootstrapFactory
+ bootstrapFactory,
+ null
);
module.start();
diff --git a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 4becd794c..49209f783 100644
--- a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -324,7 +324,8 @@ public class IgniteImpl implements Ignite {
nodeCfgMgr.configurationRegistry(),
compute,
clusterSvc,
- nettyBootstrapFactory
+ nettyBootstrapFactory,
+ null // TODO
);
new ConfigurationHttpHandlers(nodeCfgMgr, clusterCfgMgr).registerHandlers(restComponent);