diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConnector.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConnector.java index 87cfdaeab9a2..1a0dbf151ed1 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConnector.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeConnector.java @@ -40,7 +40,6 @@ import java.util.Optional; import java.util.Set; -import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.trino.spi.transaction.IsolationLevel.READ_COMMITTED; import static io.trino.spi.transaction.IsolationLevel.checkConnectorSupports; @@ -193,7 +192,6 @@ public Iterable getEventListeners() public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly, boolean autoCommit) { checkConnectorSupports(READ_COMMITTED, isolationLevel); - verify(autoCommit, "Catalog only supports writes using autocommit: DeltaLake"); ConnectorTransactionHandle transaction = new HiveTransactionHandle(true); transactionManager.begin(transaction); return transaction; diff --git a/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java b/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java index 7a2c6381047c..5d0b2c58fad3 100644 --- a/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java +++ b/testing/trino-testing/src/main/java/io/trino/testing/BaseConnectorTest.java @@ -492,6 +492,16 @@ public void testSelectAll() assertQuery("SELECT * FROM orders"); } + @Test + public void testSelectInTransaction() + { + inTransaction(session -> { + assertQuery(session, "SELECT nationkey, name, regionkey FROM nation"); + assertQuery(session, "SELECT regionkey, name FROM region"); + assertQuery(session, "SELECT nationkey, name, regionkey FROM nation"); + }); + } + /** * Test interactions between optimizer (including CBO), scheduling and connector metadata APIs. */ @@ -2359,6 +2369,22 @@ protected String errorMessageForInsertIntoNotNullColumn(String columnName) throw new UnsupportedOperationException("This method should be overridden"); } + @Test + public void testInsertInTransaction() + { + skipTestUnless(hasBehavior(SUPPORTS_INSERT)); + skipTestUnless(hasBehavior(SUPPORTS_MULTI_STATEMENT_WRITES)); // covered by testWriteNotAllowedInTransaction + + try (TestTable table = new TestTable( + getQueryRunner()::execute, + "test_tx_insert", + "(a bigint)")) { + String tableName = table.getName(); + inTransaction(session -> assertUpdate(session, "INSERT INTO " + tableName + " VALUES 42", 1)); + assertQuery("TABLE " + tableName, "VALUES 42"); + } + } + @Test public void testDelete() {