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;