This is an automated email from the ASF dual-hosted git repository.

amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 2dd365ea79 IGNITE-22681 Get rid of Session mention in AI3  (#4188)
2dd365ea79 is described below

commit 2dd365ea79eee8ef7699f917317f920d428ae396
Author: Andrew V. Mashenkov <[email protected]>
AuthorDate: Fri Aug 9 11:00:13 2024 +0300

    IGNITE-22681 Get rid of Session mention in AI3  (#4188)
---
 .../administrators-guide/handling-exceptions.adoc  | 22 ++++-----
 docs/_docs/developers-guide/clients/java.adoc      |  2 +-
 docs/_docs/quick-start/embedded-mode.adoc          |  4 +-
 .../main/java/org/apache/ignite/sql/IgniteSql.java |  2 +-
 .../src/main/java/org/apache/ignite/sql/README.md  | 12 +++--
 .../main/java/org/apache/ignite/sql/Statement.java |  2 +-
 modules/placement-driver/build.gradle              |  1 +
 .../ItPrimaryReplicaChoiceTest.java                |  2 +-
 .../ItSchemaForwardCompatibilityTest.java          |  2 +-
 .../ItSchemaSyncAndImplicitTransactionsTest.java   |  2 +-
 .../schemasync/ItSchemaSyncAndReplicationTest.java |  2 +-
 .../schemasync/ItSchemaSyncMultiNodeTest.java      |  2 +-
 .../schemasync/ItSchemaSyncSingleNodeTest.java     |  2 +-
 .../ignite/internal/table/ItDurableFinishTest.java |  2 +-
 .../partition/ItAbstractPartitionManagerTest.java  |  2 +-
 .../org/apache/ignite/internal/SessionUtils.java   | 52 ----------------------
 .../internal/sql/engine/util/SqlTestUtils.java     | 28 ++++++++++++
 .../raftsnapshot/ItTableRaftSnapshotsTest.java     |  2 +-
 .../ignite/internal/rebalance/ItRebalanceTest.java |  2 +-
 .../internal/table/ItOperationRetryTest.java       |  2 +-
 .../table/ItTransactionPrimaryChangeTest.java      |  2 +-
 .../internal/table/ItTransactionRecoveryTest.java  |  2 +-
 .../internal/table/ItTxResourcesVacuumTest.java    |  2 +-
 modules/transactions/build.gradle                  |  1 +
 .../tx/readonly/ItReadOnlyTxInPastTest.java        |  2 +-
 25 files changed, 63 insertions(+), 93 deletions(-)

diff --git a/docs/_docs/administrators-guide/handling-exceptions.adoc 
b/docs/_docs/administrators-guide/handling-exceptions.adoc
index 3a9a65479e..937ddbdb74 100644
--- a/docs/_docs/administrators-guide/handling-exceptions.adoc
+++ b/docs/_docs/administrators-guide/handling-exceptions.adoc
@@ -73,19 +73,15 @@ When the exception happens, Ignite 3 provides a UUID of the 
specific exception,
 |===
 |Exception     |Description
 
-|`IGN-SQL-1`|Failed to read a page after last existing one.
-|`IGN-SQL-2`|Failed to read response from a query that does not return rows.
-|`IGN-SQL-3`|Schema not found error.
-|`IGN-SQL-4`|Cursor is already closed error.
-|`IGN-SQL-5`|Statement parsing error. SQL string is not grammatically valid.
-|`IGN-SQL-6`|Statement validation error.SQL string is not semantically valid 
or contains prohibited operations.
-|`IGN-SQL-7`|Constraint violation error, for example, primary key violation.
-|`IGN-SQL-8`|Statement got cancelled.
-|`IGN-SQL-9`|Runtime error. Usually caused an SQL error, for example numeric 
overflow.
-|`IGN-SQL-10`|Planning timed out without finding any valid plan.
-|`IGN-SQL-11`|Operation got rejected because SQL session was closed.
-|`IGN-SQL-12`|SQL engine was unable to map query on current cluster topology. 
Most likely, the partition or view is not available because all nodes 
containing it are offline.
-|`IGN-SQL-13`|Execution of transaction control statement inside an external 
transaction is forbidden.
+|`IGN-SQL-1`|Failed to read response from a query that does not return rows.
+|`IGN-SQL-2`|Schema not found error.
+|`IGN-SQL-3`|Statement parsing error. SQL string is not grammatically valid.
+|`IGN-SQL-4`|Statement validation error.SQL string is not semantically valid 
or contains prohibited operations.
+|`IGN-SQL-5`|Constraint violation error, for example, primary key violation.
+|`IGN-SQL-6`|Statement got cancelled.
+|`IGN-SQL-7`|Runtime error. Usually caused an SQL error, for example numeric 
overflow.
+|`IGN-SQL-8`|SQL engine was unable to map query on current cluster topology. 
Most likely, the partition or view is not available because all nodes 
containing it are offline.
+|`IGN-SQL-9`|Execution of transaction control statement inside an external 
transaction is forbidden.
 |===
 
 == Meta Storage Exceptions
diff --git a/docs/_docs/developers-guide/clients/java.adoc 
b/docs/_docs/developers-guide/clients/java.adoc
index 13fbceff83..bda4d567ce 100644
--- a/docs/_docs/developers-guide/clients/java.adoc
+++ b/docs/_docs/developers-guide/clients/java.adoc
@@ -93,7 +93,7 @@ String script = ""
                 + "CREATE TABLE IF NOT EXISTS Person (id int primary key, 
city_id int, name varchar, age int, company varchar);"
                 + "INSERT INTO Person (1,3, John, 43, Sample)";
 
-ignite.sql().createSession().executeScript(script);
+ignite.sql().executeScript(script);
 ----
 --
 
diff --git a/docs/_docs/quick-start/embedded-mode.adoc 
b/docs/_docs/quick-start/embedded-mode.adoc
index 5f2544c8f0..8086fe8dc9 100644
--- a/docs/_docs/quick-start/embedded-mode.adoc
+++ b/docs/_docs/quick-start/embedded-mode.adoc
@@ -103,15 +103,13 @@ For example, here is how you can create a new table by 
using an SQL API:
 
 [source, java]
 ----
-try (ResultSet rs = ignite.sql().createSession().execute(null,
+try (ResultSet rs = ignite.sql().execute(null,
         "CREATE TABLE CREATE TABLE IF NOT EXISTS Person (id int primary 
key,city_id int,name varchar,age int,company varchar)")
 ) {
     // no-op
 }
 ----
 
-NOTE: Session is closable, but it is safe to skip `close()` method for DDL and 
DML queries, as they do not keep cursor open.
-
 More examples of working with Ignite can be found in the 
link:https://github.com/apache/ignite-3/tree/main/examples[examples] repository.
 
 == Next Steps
diff --git a/modules/api/src/main/java/org/apache/ignite/sql/IgniteSql.java 
b/modules/api/src/main/java/org/apache/ignite/sql/IgniteSql.java
index 7000090724..d2beea304d 100644
--- a/modules/api/src/main/java/org/apache/ignite/sql/IgniteSql.java
+++ b/modules/api/src/main/java/org/apache/ignite/sql/IgniteSql.java
@@ -37,7 +37,7 @@ public interface IgniteSql {
 
     /**
      * Creates an SQL statement builder, which provides query-specific 
settings. 
-     * These settings override the session defaults when the statement is 
executed.
+     * These settings override the query execution context defaults when the 
statement is executed.
      *
      * @return A new statement builder.
      */
diff --git a/modules/api/src/main/java/org/apache/ignite/sql/README.md 
b/modules/api/src/main/java/org/apache/ignite/sql/README.md
index 2a628cdfdb..0b28e83fbf 100644
--- a/modules/api/src/main/java/org/apache/ignite/sql/README.md
+++ b/modules/api/src/main/java/org/apache/ignite/sql/README.md
@@ -1,13 +1,11 @@
 #Apache Ignite SQL API
 
 ##Overview
-[IgniteSql]('IgniteSql') interface is an entry point for SQL query execution 
and provide method for creating [SQL session](Session.java) 
-and [SQL statement](Statement.java).
+[IgniteSql]('IgniteSql') interface is an entry point for SQL query execution 
and methods for running queries in sync, async or reactive 
+ways and provide method for creating [SQL statement](Statement.java).
  
-An SQL session provide methods for running queries in sync, async and reactive 
ways and holds a context that queries will be executed against
-(e.g. default query timeout, or some hints, which may affects SQL query 
execution flow, and SQL extension/plugin specific hints).
-   
-SQL statement object represents an SQL query text with the context that 
overrides the session defaults.
+An SQL statement holds a context that queries will be executed against (e.g. 
default query timeout, or some hints, which may affects 
+SQL query execution flow, and SQL extension/plugin specific hints).
 
 The result of SQL query is represented with [ResultSet](ResultSet.java), 
[AsyncResultSet](./async/AsyncResultSet.java),
 and [ReactiveResultSet](./reactive/ReactiveResultSet.java) classes, which 
provides the result itself and metadata for it.
@@ -20,7 +18,7 @@ find this approach easier understanding and using rather than 
reactive way.
 ##Reactive query execution
 Reactive methods provide reactive primitives of Java Flow API for building 
reactive flows.
  
-Note: These primitives may be hard to use "as is". Thus it is expected users 
will use some 3-rd party reactive framework for their purpose.   
+Note: These primitives may be hard to use "as is". Thus it is expected users 
will use some 3-rd party reactive framework for their purpose. 
 
 ## Query execution optimization
 TBD: cover "query plan caching" topic.
diff --git a/modules/api/src/main/java/org/apache/ignite/sql/Statement.java 
b/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
index 11e6dd29b3..389436aa3d 100644
--- a/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
+++ b/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
@@ -77,7 +77,7 @@ public interface Statement {
 
     /**
      * Statement builder provides methods for building a statement object, 
which represents a query and holds query-specific 
-     * settings that overrides the session defaults.
+     * settings that overrides the query execution context defaults.
      */
     interface StatementBuilder {
         /**
diff --git a/modules/placement-driver/build.gradle 
b/modules/placement-driver/build.gradle
index 3b7debbdf5..b4034a5be4 100644
--- a/modules/placement-driver/build.gradle
+++ b/modules/placement-driver/build.gradle
@@ -66,6 +66,7 @@ dependencies {
     integrationTestImplementation(testFixtures(project(':ignite-storage-api')))
     
integrationTestImplementation(testFixtures(project(':ignite-distribution-zones')))
     integrationTestImplementation(testFixtures(project(':ignite-runner')))
+    integrationTestImplementation(testFixtures(project(':ignite-sql-engine')))
     integrationTestImplementation(testFixtures(project(':ignite-replicator')))
     integrationTestImplementation(testFixtures(project(':ignite-metrics:')))
     integrationTestImplementation(testFixtures(project(':ignite-raft')))
diff --git 
a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ItPrimaryReplicaChoiceTest.java
 
b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ItPrimaryReplicaChoiceTest.java
index 269d926085..1718628f4a 100644
--- 
a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ItPrimaryReplicaChoiceTest.java
+++ 
b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/ItPrimaryReplicaChoiceTest.java
@@ -19,9 +19,9 @@ package org.apache.ignite.internal.placementdriver;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.bypassingThreadAssertions;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaForwardCompatibilityTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaForwardCompatibilityTest.java
index 3cfdd08f2c..c6322032e4 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaForwardCompatibilityTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaForwardCompatibilityTest.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.schemasync;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.asserts.CompletableFutureAssert.assertWillThrow;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsString;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndImplicitTransactionsTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndImplicitTransactionsTest.java
index 061d5a0b20..6a1217ed22 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndImplicitTransactionsTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndImplicitTransactionsTest.java
@@ -21,7 +21,7 @@ import static java.util.concurrent.CompletableFuture.runAsync;
 import static java.util.function.Function.identity;
 import static java.util.stream.Collectors.toList;
 import static java.util.stream.Collectors.toMap;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
 
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndReplicationTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndReplicationTest.java
index 622dbe6be9..8ca53456a7 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndReplicationTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncAndReplicationTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.ignite.internal.schemasync;
 
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableManager;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willSucceedIn;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncMultiNodeTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncMultiNodeTest.java
index 36b37346a1..a6710e0c55 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncMultiNodeTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncMultiNodeTest.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.schemasync;
 import static java.util.concurrent.CompletableFuture.runAsync;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.test.WatchListenerInhibitor.metastorageEventsInhibitor;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willTimeoutIn;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncSingleNodeTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncSingleNodeTest.java
index 90e4b701ea..685eb8a018 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncSingleNodeTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/schemasync/ItSchemaSyncSingleNodeTest.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.internal.schemasync;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.instanceOf;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItDurableFinishTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItDurableFinishTest.java
index 929e46a5fb..8f482f4e25 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItDurableFinishTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItDurableFinishTest.java
@@ -20,10 +20,10 @@ package org.apache.ignite.internal.table;
 import static java.util.Arrays.asList;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.bypassingThreadAssertions;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/partition/ItAbstractPartitionManagerTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/partition/ItAbstractPartitionManagerTest.java
index 8ca8096487..afe378df66 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/partition/ItAbstractPartitionManagerTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/partition/ItAbstractPartitionManagerTest.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.table.partition;
 
 import static java.util.concurrent.CompletableFuture.allOf;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static org.apache.ignite.internal.table.TableRow.tuple;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
diff --git 
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/SessionUtils.java
 
b/modules/runner/src/testFixtures/java/org/apache/ignite/internal/SessionUtils.java
deleted file mode 100644
index 9905b3bf51..0000000000
--- 
a/modules/runner/src/testFixtures/java/org/apache/ignite/internal/SessionUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.internal;
-
-import org.apache.ignite.sql.IgniteSql;
-import org.apache.ignite.sql.ResultSet;
-import org.apache.ignite.tx.Transaction;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Utils to work with {@link Session}.
- */
-public class SessionUtils {
-    /**
-     * Executes an update on a sql, possibly in a transaction.
-     *
-     * @param query SQL query to execute.
-     * @param sql Session on which to execute.
-     * @param transaction Transaction in which to execute the update, or 
{@code null} if the update should
-     *     be executed n an implicit transaction.
-     */
-    public static void executeUpdate(String query, IgniteSql sql, @Nullable 
Transaction transaction) {
-        try (ResultSet<?> ignored = sql.execute(transaction, query)) {
-            // Do nothing, just adhere to the syntactic ceremony...
-        }
-    }
-
-    /**
-     * Executes an update on a sql in an implicit transaction.
-     *
-     * @param query SQL query to execute.
-     * @param sql Session on which to execute.
-     */
-    public static void executeUpdate(String query, IgniteSql sql) {
-        executeUpdate(query, sql, null);
-    }
-}
diff --git 
a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java
 
b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java
index 5dd6a82fd3..855019bdb8 100644
--- 
a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java
+++ 
b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/SqlTestUtils.java
@@ -60,9 +60,13 @@ import org.apache.ignite.internal.sql.engine.type.UuidType;
 import org.apache.ignite.lang.ErrorGroup;
 import org.apache.ignite.lang.ErrorGroups;
 import org.apache.ignite.sql.ColumnType;
+import org.apache.ignite.sql.IgniteSql;
+import org.apache.ignite.sql.ResultSet;
 import org.apache.ignite.sql.SqlException;
+import org.apache.ignite.tx.Transaction;
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.StringDescription;
+import org.jetbrains.annotations.Nullable;
 import org.junit.jupiter.api.function.Executable;
 
 /**
@@ -387,4 +391,28 @@ public class SqlTestUtils {
                 throw new IllegalArgumentException("Unknown type " + 
columnType);
         }
     }
+
+    /**
+     * Executes an update on a sql, possibly in a transaction.
+     *
+     * @param query SQL query to execute.
+     * @param sql Session on which to execute.
+     * @param transaction Transaction in which to execute the update, or 
{@code null} if the update should
+     *     be executed in an implicit transaction.
+     */
+    public static void executeUpdate(String query, IgniteSql sql, @Nullable 
Transaction transaction) {
+        try (ResultSet<?> ignored = sql.execute(transaction, query)) {
+            // Do nothing, just adhere to the syntactic ceremony...
+        }
+    }
+
+    /**
+     * Executes an update on a sql in an implicit transaction.
+     *
+     * @param query SQL query to execute.
+     * @param sql Session on which to execute.
+     */
+    public static void executeUpdate(String query, IgniteSql sql) {
+        executeUpdate(query, sql, null);
+    }
 }
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java
index 23a05c3bb2..dd5ff820f4 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/raftsnapshot/ItTableRaftSnapshotsTest.java
@@ -19,12 +19,12 @@ package org.apache.ignite.internal.raftsnapshot;
 
 import static java.util.stream.Collectors.toList;
 import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static 
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIMEM_PROFILE_NAME;
 import static 
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
 import static 
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_ROCKSDB_PROFILE_NAME;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
 import static org.apache.ignite.internal.raft.util.OptimizedMarshaller.NO_POOL;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.getFieldValue;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willSucceedIn;
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
index ecf77eb130..b2e33b008e 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
@@ -17,10 +17,10 @@
 
 package org.apache.ignite.internal.rebalance;
 
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
 import static 
org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.partitionAssignments;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static org.apache.ignite.internal.testframework.IgniteTestUtils.await;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willThrow;
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItOperationRetryTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItOperationRetryTest.java
index b0a0ca9469..eda0c2bc2c 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItOperationRetryTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItOperationRetryTest.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.internal.table;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.storage.pagememory.configuration.PageMemoryStorageEngineLocalConfigurationModule.DEFAULT_PROFILE_NAME;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionPrimaryChangeTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionPrimaryChangeTest.java
index ab81610af0..5be8c7043b 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionPrimaryChangeTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionPrimaryChangeTest.java
@@ -18,10 +18,10 @@
 package org.apache.ignite.internal.table;
 
 import static java.util.stream.Collectors.toList;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static 
org.apache.ignite.internal.TestDefaultProfilesNames.DEFAULT_AIPERSIST_PROFILE_NAME;
 import static org.apache.ignite.internal.TestWrappers.unwrapIgniteTransaction;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static 
org.apache.ignite.internal.tx.test.ItTransactionTestUtils.waitAndGetPrimaryReplica;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionRecoveryTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionRecoveryTest.java
index 8d43943ccc..6b753e4d3f 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionRecoveryTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTransactionRecoveryTest.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.table;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static org.apache.ignite.internal.TestWrappers.unwrapTableImpl;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.bypassingThreadAssertions;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
 import static 
org.apache.ignite.internal.testframework.asserts.CompletableFutureAssert.assertWillThrow;
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTxResourcesVacuumTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTxResourcesVacuumTest.java
index 5ba0b25ff9..ac507fa205 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTxResourcesVacuumTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItTxResourcesVacuumTest.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.internal.table;
 
 import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
 import static 
org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static org.apache.ignite.internal.table.NodeUtils.transferPrimary;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.runAsync;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.runInExecutor;
diff --git a/modules/transactions/build.gradle 
b/modules/transactions/build.gradle
index ac8c8276dd..727ec4af26 100644
--- a/modules/transactions/build.gradle
+++ b/modules/transactions/build.gradle
@@ -56,6 +56,7 @@ dependencies {
     integrationTestImplementation project(':ignite-api')
     integrationTestImplementation(testFixtures(project(':ignite-core')))
     
integrationTestImplementation(testFixtures(project(':ignite-transactions')))
+    integrationTestImplementation(testFixtures(project(':ignite-sql-engine')))
     integrationTestImplementation(testFixtures(project(':ignite-runner')))
 
     testFixturesImplementation project(':ignite-configuration')
diff --git 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/readonly/ItReadOnlyTxInPastTest.java
 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/readonly/ItReadOnlyTxInPastTest.java
index e03cf24b7f..28492b82c7 100644
--- 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/readonly/ItReadOnlyTxInPastTest.java
+++ 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/readonly/ItReadOnlyTxInPastTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.tx.readonly;
 
-import static org.apache.ignite.internal.SessionUtils.executeUpdate;
+import static 
org.apache.ignite.internal.sql.engine.util.SqlTestUtils.executeUpdate;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 

Reply via email to