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);